Hi,
The plan is to get all the X-specific opengl code into winex11.drv and to get rid of things like ExtEscape. I also want to avoid using WineGLContext in opengl32.dll as I plan to change this too. A call like SyncCurrentDrawable should in the end be placed inside winex11.drv.
I haven't looked into solutions to the window rendering bug. Based on old discussions solutions are to use pbuffers (but those are 'slow' compared to directly rendering to a window), FBOs, creation of a subwindow and the Scissors hack which you did.
The scissors hack might work correctly for a number of programs but what do you plan to do with glReadPixels and friends?
My work will first consist of routing some remaining wgl calls through gdi32 to winex11.drv. When that is done (which will hopefully be today or else this weekend) I want to get rid of ExtEscape calls and rewrite the WineGLContext code. There's no need for much win32-specific stuff inside winex11.drv
Roderick
This patch override glViewport and glScissor to correctly position and size opengl child windows.
I've only tested this patch with Google Earth and Google Sketchup so I'd like to get some feedback to see if this solves the problem for your application.
Roderick: I realize you're currently reworking opengl32 so let me know if this conflicts with what you are doing.
Thanks,
/Ulrich