gnustep-dev
[Top][All Lists]
Advanced

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

Re: NSBackingStoreNonretained


From: Adam Fedor
Subject: Re: NSBackingStoreNonretained
Date: Thu, 11 Jul 2002 20:46:19 -0600
User-agent: 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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]