WGL: fix WoW screen flickering

Roderick Colenbrander thunderbird2k at gmx.net
Sat Nov 4 15:23:15 CST 2006


This patch fixes the screen flickering issue in WoW as experienced by Nvidia users.

The game WoW uses pbuffers for rendering. When you want to draw the result to the screen you use wglGetPbufferDCARB to get a HDC to which the pbuffer can be associated. The whole issue is that the implementation of this function isn't correct. Right now it calls CreateCompatibleDC to get a MEMDC which is compatible with the one of the pbuffer. This isn't correct as the type should be a standard DC instead of MEMDC. (A pbuffer is created in video memory, not system memory this can be seen on Windows too).

The patch removes CreateCompatibleDC and creates a new DC and associates the pbuffer to this. The call has been split over gdi32/winex11.drv, so that we don't need ExtEscape calls.

For this change the pbuffer emulation code in X11DRV_wglBindTexImageARB had to be disabled as it depends on wglGetPbufferDCARB of which the parameters have changed. Disabling this code isn't a problem as the codepath isn't enabled at the moment and it doesn't work yet.

Roderick Colenbrander
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wgl_wow_fix.patch
Type: text/x-patch
Size: 6184 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20061104/296981ca/wgl_wow_fix.bin

More information about the wine-patches mailing list