[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373
senorblanco at chromium.org
senorblanco at chromium.org
Wed Apr 7 23:18:11 UTC 2010
The following commit has been merged in the webkit-1.2 branch:
commit df622ebcc56b141871d8a895f45414993a3a6a76
Author: senorblanco at chromium.org <senorblanco at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Nov 2 15:27:16 2009 +0000
This is the WebKit-side change needed to fix canvas.getImageData() for
Chromium. The unpremultiply code in Skia assumes that unpremultiplied
values should be rounded, while CG does not. In addition, the fixed
point inversion used by Skia introduces slight inaccuracies that make
us fail this test. This change brings Chromium in line with
the CG path.
https://bugs.webkit.org/show_bug.cgi?id=30825
Reviewed by Dmitry Titov.
Covered by LayoutTests/fast/canvas/canvas-getImageData.html
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::getImageData):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4ce4f28..0da74fc 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2009-10-27 Stephen White <senorblanco at chromium.org>
+
+ Reviewed by Dmitry Titov.
+
+ This is the WebKit-side change needed to fix canvas.getImageData() for
+ Chromium. The unpremultiply code in Skia assumes that unpremultiplied
+ values should be rounded, while CG does not. In addition, the fixed
+ point inversion used by Skia introduces slight inaccuracies that make
+ us fail this test. This change brings Chromium in line with
+ the CG path.
+ https://bugs.webkit.org/show_bug.cgi?id=30825
+
+ Covered by LayoutTests/fast/canvas/canvas-getImageData.html
+
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::getImageData):
+
2009-11-01 Kelly Norton <knorton at google.com>
Reviewed by Timothy Hatcher.
diff --git a/WebCore/platform/graphics/skia/ImageBufferSkia.cpp b/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
index a5c8926..6f3639c 100644
--- a/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
+++ b/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
@@ -164,11 +164,12 @@ PassRefPtr<ImageData> getImageData(const IntRect& rect, const SkBitmap& bitmap,
for (int x = 0; x < numColumns; ++x) {
unsigned char* destPixel = &destRow[x * 4];
if (multiplied == Unmultiplied) {
- SkColor color = SkPMColorToColor(srcRow[x]);
- destPixel[0] = SkColorGetR(color);
- destPixel[1] = SkColorGetG(color);
- destPixel[2] = SkColorGetB(color);
- destPixel[3] = SkColorGetA(color);
+ SkColor color = srcRow[x];
+ unsigned a = SkColorGetA(color);
+ destPixel[0] = a ? SkColorGetR(color) * 255 / a : 0;
+ destPixel[1] = a ? SkColorGetG(color) * 255 / a : 0;
+ destPixel[2] = a ? SkColorGetB(color) * 255 / a : 0;
+ destPixel[3] = a;
} else {
// Input and output are both pre-multiplied, we just need to re-arrange the
// bytes from the bitmap format to RGBA.
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list