On Sunday 12 August 2007 05:44:31 am Roderick Colenbrander wrote:
pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig,
GLX_DOUBLEBUFFER, &value);
if (value) dwFlags |= PFD_DOUBLEBUFFER;
if (!(ppfd->dwFlags & PFD_DOUBLEBUFFER_DONTCARE) &&
((ppfd->dwFlags^dwFlags) & PFD_DOUBLEBUFFER))
{
TRACE("dbl buffer mismatch for iPixelFormat=%d\n", i+1);
if( (value & PFD_DOUBLEBUFFER) && (ppfd->dwFlags &&
PFD_DOUBLEBUFFER) ) {
This change doesn't look quite right. 'value' will be set to true or false, it won't have the PFD_DOUBLEBUFFER flag set coming from a GLX function. And checking the ppfd->dwFlags should use a single &, not a double &&.
Also, even with those fixes, it'll only attempt to match when the doublebuffer flag is set on both the fbconfig and the wanted pixel format, not if it's unset on both, or if it's supposed to be ignored. As well, the check will preempt the other fields if a doublebuffer match was already found.
Same with the stereo flag.