[Webkit-unassigned] [Bug 34214] HostWindow repaint and friends need a refactor

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 2 10:52:22 PST 2010


https://bugs.webkit.org/show_bug.cgi?id=34214





--- Comment #7 from Dave Hyatt <hyatt at apple.com>  2010-02-02 10:52:21 PST ---
(From update of attachment 47534)
I don't like some of the names chosen here.  I don't think they're very clear.

There are basically eight combinations for the repaint method.

The operations that are interesting in repaint are:
(1) Adding a dirty region to the backing store (contentChanged = true).
(2) Adding a dirty region to your native window (repaintContentOnly = false)
(3) Painting immediately (immediate = true) (which either means updating the
backing store synchronously or updating the native window synchronously)

Thus the following operations are possible (both synchronous and asynchronous):

(1) Add a dirty region to the backing store and invalidate it (contentChanged =
true, repaintContentOnly = true)
(2) Invalidate a portion of the window (contentChanged = false,
repaintContentOnly = false)
(3) Add a dirty region to the backing store and invalidate both the backing
store and the window (contentChanged = true, repaintContentOnly = false)
(4) Do nothing (contentChanged = false, repaintContentOnly = true).  Nonsense
option.

So now we're down to six options. I think the way to break this up is to
separate repainting of contents from just invalidating the window.

Here are my suggestions:

virtual void invalidateContents(const IntRect& updateRect, bool immediate =
false);
    This method covers (1) above, both the synchronous and asynchronous case.

virtual void invalidateWindow(const IntRect& updateRect, bool immediate =
false);
    This method covers (2) above, both the synchronous and asynchronous case.

virtual void invalidateContentsAndWindow(const IntRect& updateRect, bool
immediate = false);
    This method covers (3) above, both the synchronous and asynchronous case.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list