I'm working on fixing the menus in carmageddon and I have a question.
I have set the DirectDrawRenderer to opengl and it all crashes (where it works under gdi, just displays incorrectly).
Now I traced the problem down to: dlls/wined3d/surface.c d3dfmt_convert_surface
The loop at: http://source.winehq.org/git/wine.git/?a=blob;f=dlls/wined3d/surface.c;h=1f4...
loops over the surface height and width, the only problem is that the surface height appears to be scaled up to the next power of 2.
As carmageddon runs in 320x200 the loop tries to iterate over 320x256 and subsequently crashes with a page fault in winedbg.
Is there anyway to get the original window's dimensions and perhaps feed that to the function & hence loop, instead? Or should I just accept that carmageddon will forever be restricted to the gdi renderer? :P