On Mon, May 01, 2006 at 12:19:47PM +0100, Huw Davies wrote:
Yeah, I think the problem is the flags we return. Adding PFD_GENERIC_FORMAT if we don't set PFD_GENERIC_ACCELERATED helps. But then we run into the opengl in a child window bug...
Yes, this 'patch' helps it to start:
Index: dlls/x11drv/opengl.c =================================================================== RCS file: /home/wine/wine/dlls/x11drv/opengl.c,v retrieving revision 1.26 diff -u -r1.26 opengl.c --- dlls/x11drv/opengl.c 27 Mar 2006 11:30:29 -0000 1.26 +++ dlls/x11drv/opengl.c 1 May 2006 12:11:14 -0000 @@ -384,7 +384,7 @@ ppfd->nVersion = 1;
/* These flags are always the same... */ - ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; + ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_GENERIC_FORMAT; /* Now the flags extracted from the Visual */
wine_tsx11_lock();
I looked at the 'code' (ahem :-) ) and it seems that it checks either for 'PFD_GENERIC_FORMAT' / 'PFD_GENERIC_ACCELERATED' flags depending on some internal arguments. It loops multiple times on the pixel formats but the only one it seems to like are the one that are supposedly reported by the un-accelerated reference driver (so if you installed an ICD you are out of luck). I did not find out though why it does not like our accelerated ones though.
Note that it does not start either on my WinXP Pro laptop so well, I guess this is an application which is VERY picky on the pixel formats it likes and I hope it will be fixed in a forthcoming patch to the application :-)
A 'work-around' for Wine would be report twice the number of visuals, one set 'generic' and the other 'accelerated' (but well, as some applications like SeriousSam check for these bits too, no idea if they would like it).
Lionel