Re: rendering-cleanup-next

On Sat, 2010-09-11 at 11:16 -0400, Havoc Pennington wrote:

> *
> I'm skeptical of removing ability to set window background to None.
> This feature can be important to avoid visual artifacts on X11. The
> API should maybe change to not involve a "NULL" pixmap; conceptually,
> what this means is "window system should not auto-clear or auto-paint
> the background on exposes" - I don't know if any other platform has
> the concept. A new API could be
> gdk_window_set_paint_background(gboolean) rather than set_pixmap(NULL)
> I think d3802ca "Remove calls that try to set GDK_NO_BG on their
> windows" probably results in some things being more ugly.
> (flashing/flicker)
> This almost goes away as an issue if dropping all subwindows, but I
> think setting None on toplevels will still be important sometimes. I
> guess in future-composited-desktop-world this also fades in importance
> but I'm not sure on when/whether/details.

I'm personally a tiny bit uneasy about dropping bg None, as in some
cases its really required to do flicker-free stuff in X. However, with a
modern Gtk+ these situations are quite rare, and I don't think any of
these changes really cause any flicker, since:

1) In practice almost all non-toplevel GdkWindows in a typical Gtk+ app
are client-side (i.e. have no corresponding native window). This means
that mapping them does not make X clear the area to the background, and
there is no flicker.

2) Even for windows with native windows there is often no flicker, as
the X11 gdk backend aggressively set+unsets background None around
things like moves, resizes, maps and reparents in order to not render
anything to the screen until we do the expose.

 Alexander Larsson                                            Red Hat, Inc 
       alexl redhat com            alexander larsson gmail com 
He's a leather-clad ninja jungle king looking for 'the Big One.' She's a 
radical thirtysomething nun living homeless in New York's sewers. They fight 

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