[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Thu, 11 Jul 2002 20:46:19 -0600
Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.0rc2) Gecko/20020513
Frederic De Jaeger wrote:
In the current implementation, there are three problems:
- there is no compression of expose events.
I think there is, at least for Nonretained windows. In the backend,
XGServerEvent (case Expose). But perhaps you are talking about a more
extensive version of coalescing events than what is implemented. Or
maybe it's not working correctly?
- when an expose event arrives, all the content of the window is
refreshed instead of the necessary parts.
All the expose rectangles are stored in window->exposedRects, so it
should be simple to NSUnionRect these. The problem here is figuring out
which views need to be redisplayed based on the rect. This can be done
in the front end, but it seems odd to call a front end method from the
backend (even though that's the way it is done now). Perhaps this could
be cleaned up some - or we could define a new AppKit specific event to
handle the expose in the front end.
- when the window is refreshed, it begins by repainting its content
with the background color (which is already done by the Xserver (but
it does it with the wrong color))
X windows allows you to set the default background, although currently
it's setup to do XSetWindowBackgroundPixmap
(XGServerWindow:_createBuffer), which perhaps is wrong.
Then we have the fact that the frontend doesn't know this. Maybe we
should document that all backends need to paint exposed areas in the
windows background color and take this out of the frontend.
Adam Fedor, Digital Optics Corp. | I'm glad I hate spinach, because
http://www.doc.com | if I didn't, I'd eat it, and you
| know how I hate the stuff.