I've been pecking away attempting to track down why the current wine build won't run Starcraft. When it starts up I get the effect that I playfully refer to as the TSOD (Technicolor Screen Of Death).
What I've found is that if all of the references to gdi_display in X11DRV_DDHAL_SetPalEntries( ) are replaced with thread_display( ) then it actually starts up and looks pretty good. However, the keyboard and mouse don't work so this is at best a partial fix. I'm pretty sure that this is on the right track since X11DRV_XF86DGA2_CreatePalette( ) uses thread_display( ) to make the palette that is eventually given to X11DRV_DDHAL_SetPalEntries( ).
The only other function in dlls/x11drv/x11ddraw.c that uses gdi_display is X11DRV_DDHAL_DestroyPalette( ). Should thread_display( ) be used there also?
How is gdi_display related to the display returned by thread_display( )? Both are used in quite a few places but they're obviously not the same thing.
Can anybody give me some hints on what might be happening with the keyboard and mouse?
Thanks much,
ges