This problem is nagging me since a long time but recently I could better
nail it down to be a compositing problem on X11. Imagine the following
situation:

You have a window with an OpenGL context for 3D rendering.
You create the window with XCreateWindow and an OpenGL infused visual
(glXChooseVisual).
After creating it you reparent the window into your application
(XReparentWindow).

Now the following happens. The created window turns into a child window
as it should at the right place (at (0,0) under it's new parent). If you
render into it using X11 (XFillRectangle for example) everything is fine
and the window is properly cleared from top-left to bottom-right. If you
render to it now though with OpenGL the rendering is at a totally wrong
place on the screen (in my case somewhere near the upper left screen
corner). I tracked the problem down to be a compositing problem (KDE).
When I run this scenario with compositing enabled the OpenGL window is
anywhere but not in the window where it should be. If I disable
compositing the OpenGL rendering is precisely in the window where it
should be.

Has anybody an idea how this could happen?
Is there some ICCCM stuff I have to set to the window to help
compositors to not mess up like this?
Or do I have to XFlush/XSync at problem places?
Some other problem I might have overlooked?
Is reparenting with compositing a huge problem by itself?

It seems X11 with compositing in particular reacts very badly to
reparenting windows after they have been created.

-- 
Mit freundlichen Grüssen
Plüss Roland

Leader und Head Programmer
- Game: Epsylon ( http://www.indiedb.com/games/epsylon )
- Game Engine: Drag[en]gine ( http://www.indiedb.com/engines/dragengine
, http://dragengine.rptd.ch/wiki )
- Normal Map Generator: DENormGen ( http://epsylon.rptd.ch/denormgen.php )
- Sowie verschiedene Blender Export-Skripts und Game-Tools

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
[email protected]: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Reply via email to