[Webkit-unassigned] [Bug 45423] [Gtk] Port tiled backing store

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Sep 22 19:43:22 PDT 2010


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





--- Comment #10 from Julien Chaffraix <jchaffraix at webkit.org>  2010-09-22 19:43:22 PST ---
> Looks better. Eventually we need to do something about regions to get us out 
> of this #ifdef jungle. That doesn't have to happen in this patch though.

Noted.

> What license is this? It look like BSD, plus another clause. 
> I feel uncomfortable r+ing a patch with a unique license.

The license used is a 3-clause BSD license. It is not an uncommon license inside WebKit (see a lot of WebCore's files).

> I believe you need to use one of the licenses found in the LICENSE* files in 
> the WebCore directory.

I disagree. Those are provided as examples but there is no agreement on the form of the BSD or LGPL-2.1 licenses used inside the project.

> Also, the block is not formatted like blocks in other files.

Noted, I will see what I can do.

> Please use an early return here.

This form underlines the singleton pattern more IMHO. I am too set up on that so if you really want an early return I am also fine with the early return.

> Isn't it possible to switch to the stippling approach from the link I gave 
> above?

We could, do we want to draw a dotted pattern as opposed to a bigger checker box (8pixels wide) in other port?

> > WebCore/platform/graphics/gtk/TileGtk.cpp:179
> > +    cairo_save(cr);
> > +    cairo_set_source_surface(cr, m_buffer.get(), target.x() - source.x(), target.y() - source.y());
> > +    cairo_rectangle(cr, target.x(), target.y(), target.width(), target.height());
> > +    cairo_fill(cr);
> > +    cairo_restore(cr);
> 
> save/restore are pretty expensive, is it possible to just save the previous source and restore it after the operation?
> 
> > WebKit/gtk/webkit/webkitwebview.cpp:535
> > +    context->save();
> > +    context->translate(-scrollX, -scrollY);
> > +    rect.move(scrollX, scrollY);
> > +    frame->tiledBackingStore()->paint(context, rect);
> > +    context->restore();
> 
> Save and restore are actually pretty expensive. Is it possible to translate > the context back after the operation?

Good catch, the above two save/restore are not required as the caller (expose) already does that.

> > WebKit/gtk/webkit/webkitwebview.cpp:573
> > +                // FIXME:  We should set the backing store viewport earlier than in paint
> 
> Is it possible to fix this now?

Not sure, since we need to hook on all places where the visible rect could change (e.g resize)

> It seems this could just be a helper method in webkitwebview.cpp. The only 
> member your using in ChromeClientGtk is m_webView, which is a local variable 
> in the context you use it.

OK, this will be changed.

The style issues will be taken care of. Thanks for the review!

-- 
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