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
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
