Re: Quick thought - cheaper transparency



On 10 Mar, Michael ROGERS scribbled:
->  Sorry if this is OT, I know this list is not intended for feature requests.
->  
->  But...  :)
->  
->  Here's my idea for "cheaper" transparent terminals - the client sets a
->  property on its top-level window indicating that it would like the window to
->  be transparent (after checking that the WM supports this part of the spec). It
->  sets the window background to ParentRelative (ie transparent). The window
->  manager responds to the hint by setting the background of its frame window to
->  ParentRelative. Result - the client window gets a pseudo-transparent
->  background like the ones currently provided by gnome-terminal, eterm etc,
->  without having to mess around with pixmaps. Of course, if the client wants to
->  shade or colour the background it will have to use pixmaps.
->  
->  Or, if the window manager supports this part of the spec it sets all frame
->  window backgrounds to ParentRelative, and the app just has to check if the
->  feature is supported before using it.

first - under things like xfree 3.9/4.0 it weont help much since
pixmaps get cached - thus doing an XCopArea of a pixmap to another to
re-tile it at a new origina is almost effectively a null-op or most
cards since the bliter is pretty damn fast. infact if you
XFillRectangle the root pixmap into the window with the right offests
it is no more work at all (on synthetic configure ntoify do a repaint
with an XFillRectanlge of the pixmap id set as a property on the root
window used as a pixmap fill with the fill origin set appropriately)

so um.. we can get "around" this problem with just a bit of smart
coding - no extra bits needed in the spec.

->  I'll put together a proper definition of this hint for inclusion in the spec 
->  if nobody objects/finds obvious technical flaws/etc.
->  
->  Michael
->  
->  

-- 
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com     raster@valinux.com
                                    raster@enlightenment.org raster@linux.com
				    raster@zip.com.au



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]