Bug 63555

Summary: [Qt] GraphicsContext::clipToImageBuffer does not support scale transformation
Product: WebKit Reporter: Igor Trindade Oliveira <igor.oliveira>
Component: Layout and RenderingAssignee: Igor Trindade Oliveira <igor.oliveira>
Status: RESOLVED FIXED    
Severity: Normal CC: kling, webkit.review.bot
Priority: P3 Keywords: Qt, QtTriaged
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch
kling: review-
Patch none

Igor Trindade Oliveira
Reported 2011-06-28 13:10:43 PDT
Qt implementation of GraphicsContext::clipToImageBuffer calls internally ImageBuffer::clip. ImageBuffer::clip creates a alphaMask and push it in TransparencyLayer. However if GraphicsContext does a scale transformation the alphaMask is not scaled.
Attachments
Patch (2.05 KB, patch)
2011-06-28 13:17 PDT, Igor Trindade Oliveira
kling: review-
Patch (2.90 KB, patch)
2011-06-29 06:52 PDT, Igor Trindade Oliveira
no flags
Igor Trindade Oliveira
Comment 1 2011-06-28 13:17:09 PDT
Created attachment 98963 [details] Patch Proposed patch.
Andreas Kling
Comment 2 2011-06-28 14:32:38 PDT
Comment on attachment 98963 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=98963&action=review > Source/WebCore/ChangeLog:10 > + No new tests. (OOPS!) Oops indeed! The commit-queue will choke on this line, replace it with one of these three: 1) Tests: list of tests that exercise this change... 2) No new tests because... 3) Awkward silence. > Source/WebCore/platform/graphics/qt/ImageBufferQt.cpp:167 > + QRectF deviceClip = context->platformContext()->transform().mapRect(floatRect); > + if (alphaMask.width() != deviceClip.width() || alphaMask.height() != deviceClip.height()) > + alphaMask = alphaMask.scaled(deviceClip.width(), deviceClip.height()); We should do this in GraphicsContext::pushTransparencyLayerInternal() instead, then we avoid doing mapRect() twice, and ImageBuffer doesn't need to know about any painter transforms.
Igor Trindade Oliveira
Comment 3 2011-06-29 06:52:48 PDT
Created attachment 99082 [details] Patch Proposed patch. Update ChangeLog and move scale complexity to GraphicsContext::pushTransparencyLayerInternal.
WebKit Review Bot
Comment 4 2011-06-29 08:55:38 PDT
The commit-queue encountered the following flaky tests while processing attachment 99082 [details]: http/tests/media/video-cancel-load.html bug 56797 (authors: annacc@chromium.org, eric.carlson@apple.com, jamesr@chromium.org, and vrk@chromium.org) The commit-queue is continuing to process your patch.
WebKit Review Bot
Comment 5 2011-06-29 08:57:05 PDT
Comment on attachment 99082 [details] Patch Clearing flags on attachment: 99082 Committed r90020: <http://trac.webkit.org/changeset/90020>
WebKit Review Bot
Comment 6 2011-06-29 08:57:09 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.