[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

thakis at chromium.org thakis at chromium.org
Wed Dec 22 11:56:40 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b3ac920e024dee2bba6a4abe18c4d92c814bd970
Author: thakis at chromium.org <thakis at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Aug 11 23:14:43 2010 +0000

    2010-08-11  Nico Weber  <thakis at chromium.org>
    
            Reviewed by David Levin.
    
            [chromium/mac]: Fix colors in compositing mode
            https://bugs.webkit.org/show_bug.cgi?id=43823
    
            The textures are drawn by opengl, which doesn't do any color space
            correction -- it assumes everything is in the device color space
            already. Hence, when drawing into the memory that will be uploaded
            as opengl texture, use the device color space.
    
            * platform/graphics/chromium/ImageLayerChromium.cpp:
            (WebCore::ImageLayerChromium::updateTextureContents):
            * platform/graphics/chromium/LayerChromium.cpp:
            (WebCore::LayerChromium::updateTextureContents):
            * platform/graphics/chromium/LayerRendererChromium.cpp:
            (WebCore::LayerRendererChromium::setRootLayerCanvasSize):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65194 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 33e47d9..ffadb20 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-08-11  Nico Weber  <thakis at chromium.org>
+
+        Reviewed by David Levin.
+
+        [chromium/mac]: Fix colors in compositing mode
+        https://bugs.webkit.org/show_bug.cgi?id=43823
+
+        The textures are drawn by opengl, which doesn't do any color space
+        correction -- it assumes everything is in the device color space
+        already. Hence, when drawing into the memory that will be uploaded
+        as opengl texture, use the device color space.
+
+        * platform/graphics/chromium/ImageLayerChromium.cpp:
+        (WebCore::ImageLayerChromium::updateTextureContents):
+        * platform/graphics/chromium/LayerChromium.cpp:
+        (WebCore::LayerChromium::updateTextureContents):
+        * platform/graphics/chromium/LayerRendererChromium.cpp:
+        (WebCore::LayerRendererChromium::setRootLayerCanvasSize):
+
 2010-08-11  Kenneth Russell  <kbr at google.com>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp b/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
index 9f6ee17..3cc7cad 100644
--- a/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp
@@ -114,7 +114,7 @@ void ImageLayerChromium::updateTextureContents(unsigned textureId)
     case kCGColorSpaceModelDeviceN:
         break;
     default:
-        colorSpace.adoptCF(CGColorSpaceCreateWithName(kCGColorSpaceGenericRGBLinear));
+        colorSpace.adoptCF(CGColorSpaceCreateDeviceRGB());
         break;
     }
     RetainPtr<CGContextRef> tempContext(AdoptCF, CGBitmapContextCreate(tempVector.data(),
diff --git a/WebCore/platform/graphics/chromium/LayerChromium.cpp b/WebCore/platform/graphics/chromium/LayerChromium.cpp
index bba65f4..21d8d12 100644
--- a/WebCore/platform/graphics/chromium/LayerChromium.cpp
+++ b/WebCore/platform/graphics/chromium/LayerChromium.cpp
@@ -180,8 +180,7 @@ void LayerChromium::updateTextureContents(unsigned textureId)
     int rowBytes = 4 * dirtyRect.width();
     tempVector.resize(rowBytes * dirtyRect.height());
     memset(tempVector.data(), 0, tempVector.size());
-    // FIXME: unsure whether this is the best color space choice.
-    RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateWithName(kCGColorSpaceGenericRGBLinear));
+    RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateDeviceRGB());
     RetainPtr<CGContextRef> contextCG(AdoptCF, CGBitmapContextCreate(tempVector.data(),
                                                                      dirtyRect.width(), dirtyRect.height(), 8, rowBytes,
                                                                      colorSpace.get(),
diff --git a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
index 15acfa5..2f70efa 100644
--- a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
+++ b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
@@ -255,8 +255,7 @@ void LayerRendererChromium::setRootLayerCanvasSize(const IntSize& size)
     int rowBytes = 4 * size.width();
     m_rootLayerBackingStore.resize(rowBytes * size.height());
     memset(m_rootLayerBackingStore.data(), 0, m_rootLayerBackingStore.size());
-    // FIXME: unsure whether this is the best color space choice.
-    RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateWithName(kCGColorSpaceGenericRGBLinear));
+    RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, CGColorSpaceCreateDeviceRGB());
     m_rootLayerCGContext.adoptCF(CGBitmapContextCreate(m_rootLayerBackingStore.data(),
                                                        size.width(), size.height(), 8, rowBytes,
                                                        colorSpace.get(),

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list