Re: [AD] ex_multisample

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


On Sun, 2009-02-15 at 18:49 +0100, Milan Mimica wrote:
> Elias Pschernig wrote:
> > 
> > Anyway, I guess we should copy the visual selection of AllegroGL. The
> > problem is that it is very complex, using a scoring system I never
> > understood - but without it, the require/suggested doesn't make sense of
> > course, right now you can only require multisample, not suggest it.
> 
> Done it for WGL. The internal visual selection API is platform independent, all 
> you have to do is to convert each visual into platform independent format (fill 
> the ALLEGRO_EXTRA_DISPLAY_SETTINGS structure) and pass it to the scorer, which 
> will compare it to the one that the user requested. Function 
> select_pixel_format() from src/win/wgl_disp.c is a good reference of how to do 
> it, and AGL has all the code.
> 

Nice.

> I can do this for GLX too, but it may take a week or a month.

*If* I feel like working on this before you do, I'll ask first in IRC if
you already started so there won't be a collision - but likely I'll
leave it to you :)

> 
> There are some ambiguities in the API now:
> 
> al_set_new_display_flags(ALLEGRO_SINGLEBUFFER) is the same as 
> al_set_display_option(ALLEGRO_DOUBLEBUFFERED, 0, ALLEGRO_REQUIRE).
> 
> al_set_new_display_format(ALLEGRO_SOME_FORMAT) is the same as
> al_set_display_option(ALLEGRO_RED_SIZE, r, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_GREEN_SIZE, g, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_BLUE_SIZE, b, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_ALPHA_SIZE, a, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_RED_SHIFT, rs, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_GREEN_SHIFT, gs, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_BLUE_SHIFT, bs, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_ALPHA_SHIFT, as, ALLEGRO_REQUIRE);
> al_set_display_option(ALLEGRO_COLOR_SIZE, s, ALLEGRO_REQUIRE);
> 
> I say we keep both variants and specify that al_set_display_option() is intended 
> for advanced users.

Not sure. Both requesting a single buffer or the exact pixel layout
(without for example even knowing which RGB order will be better
supported by the driver) seem quite advanced.

> 
> Also I think this functions should have a "new" in their name, like this:
> void al_set_new_display_option(option, value, importance);
> int  al_get_new_display_option(option, *importance) //maybe not even necessary
> int  al_get_display_option(option); //returns an option of the current display
> So the the user can find out whether his SUGGESTion was accepted or not.
> 

I agree.

-- 
Elias Pschernig <elias@xxxxxxxxxx>





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/