[Webkit-unassigned] [Bug 42176] New: Double transformation in CanvasRenderingContext2D::drawImage()

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jul 13 10:29:11 PDT 2010


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

           Summary: Double transformation in
                    CanvasRenderingContext2D::drawImage()
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Other
               URL: http://280slides.com/Editor/
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: jpetsovits at rim.com


CanvasRenderingContext2D::drawImage() contains calls to GraphicsContext::roundToDevicePixels() to transform src and dst rectangles, passing the transformed coordinates to CanvasRenderingContext2D::willDraw() and GraphicsContext::drawImage(). This is wrong, because both willDraw() and drawImage() handle transformations by themselves; especially painting a smaller source area of the image because the final device transformation scales pixels is a really bad idea. The reason it doesn't cause most browsers to break is that most browsers don't have a user-to-device transformation other than the identity matrix.

It does break for Android, and for our RIM port too. Other drawing calls in CanvasRenderingContext2D don't perform this kind of transformation before passing coordinates to willDraw() and the respective drawing function. drawImage() should work alike.

Patch coming below.

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