opengl32: Correctly size and position opengl child windows

Ulrich Czekalla ulrich.czekalla at utoronto.ca
Fri Oct 6 08:26:31 CDT 2006


On Fri, Oct 06, 2006 at 01:30:43PM +0200, Roderick Colenbrander wrote:
> 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.
> 

That mean we'll need to push all the internal_gl* calls into 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.

 From our discussions at wineconf we concluded that overriding the various
functions such as glViewport and glScissor will get us there for most
applications. 

The only thing this will not do is handle the case where a child window
overlaps a opengl child window. In this case the best solution is to use a
glX extension that would allow us to provide a clip region to clip the
overlapping child windows. The big question is this really necessary.  How
many applications make use of this? I don't know the answer.

> 
> The scissors hack might work correctly for a number of programs but what do you plan to do with glReadPixels and friends?

Like glViewport and glScissor these also need to be overridden to adjust
the position and frame buffer bounds.

/Ulrich



More information about the wine-devel mailing list