[webkit-reviews] review granted: [Bug 70789] Optimize canvas fills / drawImage when covering entire canvas : [Attachment 113422] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Nov 3 08:29:35 PDT 2011


Stephen White <senorblanco at chromium.org> has granted Ben Wells
<benwells at chromium.org>'s request for review:
Bug 70789: Optimize canvas fills / drawImage when covering entire canvas
https://bugs.webkit.org/show_bug.cgi?id=70789

Attachment 113422: Patch
https://bugs.webkit.org/attachment.cgi?id=113422&action=review

------- Additional Comments from Stephen White <senorblanco at chromium.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=113422&action=review


Looks good.  Thanks for implementing this!  r=me

> Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1566
> +    Path transformedPath;
> +    transformedPath.addRect(rect);
> +    transformedPath.transform(state().m_transform);
> +
> +    IntRect canvasRect(0, 0, canvas()->width(), canvas()->height());
> +    return transformedPath.contains(canvasRect.minXMinYCorner()) &&
transformedPath.contains(canvasRect.minXMaxYCorner())
> +	   && transformedPath.contains(canvasRect.maxXMinYCorner()) &&
transformedPath.contains(canvasRect.maxXMaxYCorner());

This looks fine, but I'm wondering if it would be easier to use FloatQuad:

FloatQuad quad(rect);
FloatQuad canvasQuad(FloatRect(0, 0, canvas->width(), canvas->height()));
return state().m_transform.mapQuad(quad).containsQuad(canvasQuad);

OTOH, I've never actually tried it, so feel free to go with what you've already
got.


More information about the webkit-reviews mailing list