XRender/Xcomposite semantics (issues?)

Carsten Haitzler (The Rasterman) raster at rasterman.com
Thu Mar 9 00:45:29 PST 2006


On Wed, 08 Mar 2006 23:15:24 -0800 Keith Packard <keithp at keithp.com> babbled:

> On Thu, 2006-03-09 at 11:17 +0900, Carsten Haitzler wrote:
> 
> > now this brings up a big fat ugly problem... what IF the wm wants to
> > have an argb FRAME (a window border design with alpha) but a CLIENT is
> > old-school and non ARGB. all "child" windows of an ARGB window have
> > their alpha channel basically not filled in solid automatically - this
> > leads to some problems if a wm ever wants to do this. it REQUIRES the
> > client to realise its frame is ARGB before mapping - in fact creating
> > its window, so it can also be ARGB and fill dst alpha right.
> 
> The client is free to create an RGB window. When that is placed within
> an ARGB window, the server will automatically redirect it to a pixmap
> separate from the frame and paint frame contents with the client window
> as it changes. This 'should' work, although you can see that it won't be
> stunningly efficient.

hmm - it does? (redirect to a SEPARATE pixmap?) i was doing code for just this. parent frame window (an immediate child of root) was ARGB, 1 child of the frame was RGB (default visual/colormap) 1 child was ARGB. the ARGB contents drew correctly. the RGB contents drew using whatever residual pixel data was in the alpha byte for the pixmap. the alpha wasn't filled in. (xcompmgr) the wm wasn't doing anything special here with the RGB frame or xcomposite. what dawned on me was how this could "not work" in perfectly naive situations - and i was wondering iof the drivers/x implementation should expand draws to RGB children of a ARGB ancestor to have alpha as 0xff?

> The best approach we've found so far is for the wm to be the same as the
> cm (composite manager), and to paint the frame right onto the desktop
> without reparenting the client windows at all. That way it gets whatever
> semantics it wants for the frame contents, and gets to do whatever it
> wants with window contents as well.

sure - this way works as the wm knows the client window is or is nor argb and just ends up drawing it all. i am talking about the more traditional re-parent... :)

> -- 
> keith.packard at intel.com
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster at rasterman.com
裸好多
Tokyo, Japan (東京 日本)



More information about the xorg mailing list