In article <[EMAIL PROTECTED]>,
 Michael Sweet <[EMAIL PROTECTED]> wrote:

> > Does this mean that every widget should create an independent x drawable 
> > to take advantage of the compositing manager?
> 
> Please, no.  That's the old Xt model and was one of the reasons it
> was so slow.

If you don't use compositing that way (which is not something I'm 
recommending anyway: I don't like theming in general), then the 
compositing extension is useless within the theme engine itself. And if 
you don't perform bitmap caching, then damaging a semitransparent widget 
will trigger a redraw-cascade up to the first opaque widget (in most 
cases this will be the top window).

Hierarchical caching tend to waste a lot of memory; that's why the 
compositing extension, by the most part, just sucks up a lot of ram 
while slowing down everything. To speed up the redraw-cascade, we should 
probably extend draw() with another virtual parent draw(Fl_Rect), that 
allows a narrow region to be redrawn - much like X11 does. Not very 
useful and needlessly complex for normal widgets, but I guess that for a 
pixmap engine where you just need to draw images this can be done.

Carbon (and Photon, by the way), allows, for each widget, a "indipendent 
drawable" option to be set. The programmer can chose were to put the 
burden: memory (independent, composite-enabled widget) or cpu 
(redraw-cascade up to the next composited widget).

I like this approach best.

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to