[Bug 2398] OpenGL is only used only on top level windows so child windows get overdrawn

Wine Bugs wine-bugs at winehq.org
Thu Feb 23 07:18:19 CST 2006


http://bugs.winehq.org/show_bug.cgi?id=2398





------- Additional Comments From d.oosterveld at wanadoo.nl  2006-23-02 07:18 -------

I'm using these applications on a laptop with not much such 3d muscle as a
desktop card. I really need these applications to work. I've been poking the
0.9.2 sources to get Luxology Modo to work somewhat properly.

I managed to get the interface and opengl to draw at the same time by simply
disabling the double buffering. This ends up to be pretty cheap solution. The
only problem is positioning the opengl viewports because I don't have the
insight in the x11drv yet to implement:

- Reposition the viewport on every call to glViewport().
- Call glScissor to clip the viewport so it won't overdraw the interface.
- Adapt glClear to stay inside the scissored area.

And you should be done, giving a cheap and easy fix of the problem on
cards/drivers without a funky gl extension ;)

The second (and sane) solution is to use separate X child windows for each
openGL viewport. This can be done when the device context is attached, then you
can make an special exception for child windows with openGL attached. Most
programs use separate X (child) windows to position the openGL viewport because
it's so easy to do. The contents of these openGL subwindows is never draw by
GDI. X applications use the the same solution. But you probably now this ;)

Trying to blit a openGL viewport inside a window means reimplementing part of
the X window system and all driver specific trouble with it making the
implementation unreliable. The first implementation of the WM was very sweet for
this situation and lets X windows handle the complexity of clipping the viewport
and double buffering it.

I'd really like to have the first solution implemented as a switch as a
temporary solution even if it isn't double buffered. This would at least give us
somewhat usable applications.

Thanks.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the wine-bugs mailing list