Re: Cullng drawing depending on visibility events



Around 11 o'clock on Apr 4, Owen Taylor wrote:

> For ultimate efficiency, GTK+ would really like to get
> notification of both additions and subtractions to these
> regions.

I think you can let the X server decide how Rs relates to Rv; any "sane" X 
server will set Rs == Rv most of the time.  The reason we need to be 
careful about visibility events synthesizing expose events is that "weird" 
X servers are free to save bits outside of Rv.  I would not be surprised 
if the cygwin or darwin rootless servers save complete window contents 
given their architecture.

This reduces the problem to maintaining Rs in the client.  We have +Rs 
events today as exposures; having -Rs events (covering events?) would give 
us a way to compute Rs asynchronously.

Another possibility is to use VisibilityNotify events to trigger a more
synchronous process for computing Rs; it's easy to get a complete set of
+Rs events by using ClearArea with Background == None. You would do this on
FullyObscured events to discover what portion of the window was maintained
in backing store while obscured.  This presumes that the server won't
arbitrarily change the value of Rs for a fully-obscured window, which is
not proscribed by the protocol, but seems a "safe bet".

-keith





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