opengl windows bugged placement on compositing
Roland Plüss
roland at rptd.ch
Thu Jan 9 04:29:17 PST 2014
On 01/09/2014 07:59 AM, Thomas Lübking wrote:
> On Donnerstag, 9. Januar 2014 02:29:59 CEST, Roland Plüss wrote:
>> It looks thus as if the GL rendering output area lags behind the window
>> position/size change as if the Compositor does apply the X event to the
>> X window but swallows the update to the GL rendering and the next time a
>> window X event is send this old change is applied to GL although the
>> window is now again somewhere else. Could it be the compositor "forgets"
>> to tell GL about the X window change?
>
> At very best only if "the compositor" selects events for the window
> before it's reparented and forgets to unselect them when it's embedded.
> The event selection is however performed by kwin regardless of the
> compositing.
>
> You could perform a crosstest with another compositor (eg.
> xcompmgr/compton - assuming the issue also exists with kwin xrender
> compositing) on the one hand and (since you'll have KDE around)
> http://kde-apps.org/content/show.php?content=157471 (to rule out the
> parenting window which might be the more likely source (how do you
> read its resizes - XEvent handling on the parenting window directly or
> by some client API?) of this behavior.
>
> Cheers,
> Thomas
Unfortunately this is a huge hack there. NPAPI does not send you XEvents
nor does it otherwise tell you anything. As far as I see it you would
have to add javascript/browser event listeners and feed that into your
plugin. Since that's not an option I let the engine event loop run every
frame update. This is not ideal since you have then two event loops
running but I know from others having done so two and it worked. Besides
the input is properly gobbled up this way by the engine. To test I
captured also a key-press on which I set the window position or
unmap/map the window manually. Even with spamming this the window didn't
get fixed so it's not an X Event randomly swallowed by one of the event
loops. It's definitely a more deep problem. When I activate firebug for
example the plugin window is partially hidden. Nevertheless the GL
rendering draws into the full window neglecting the clipped region.
Something utterly confuses the compositor there. I'll though try out if
this event handling is incorrectly selected. In the FOX case I did reset
the window handling since FOX expects widgets to have certain window
properties. I'll try this here too. Maybe it helps.
--
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.x.org/archives/xorg/attachments/20140109/e415ac39/attachment-0001.pgp>
More information about the xorg
mailing list