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

eric at webkit.org eric at webkit.org
Wed Dec 22 11:51:20 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit c3acb445d515dd04c7c10d5f226f1d701896cbdc
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Aug 10 00:25:18 2010 +0000

    2010-08-09  Nat Duca  <nduca at chromium.org>
    
            Reviewed by Dimitri Glazkov.
    
            [chromium] Blue line visible at the right hand side of the window with accelerated compositor
            https://bugs.webkit.org/show_bug.cgi?id=43748
    
            Correct the ortho projection matrix for the root layer, which was
            too large by 0.5px in both width and height. For even view sizes,
            this would cause the viewport to appear 1 pixel too small.
    
            Fixing this requires removal of several 0.5 correction factors
            that were previously added to compensate for the too-large viewport.
    
            Finally, compute the translation for the root layer quad using
            floating point rather than integer arithmetic. This avoids us losing
            a key half-pixel of translation when the width of the window is odd.
    
            To test, size window to even/odd dimensions. No blue line should be visible.
    
            * platform/graphics/chromium/LayerRendererChromium.cpp:
            (WebCore::LayerRendererChromium::drawLayers):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65020 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 3efcff9..fbfbabe 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2010-08-09  Nat Duca  <nduca at chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        [chromium] Blue line visible at the right hand side of the window with accelerated compositor
+        https://bugs.webkit.org/show_bug.cgi?id=43748
+
+        Correct the ortho projection matrix for the root layer, which was
+        too large by 0.5px in both width and height. For even view sizes,
+        this would cause the viewport to appear 1 pixel too small.
+
+        Fixing this requires removal of several 0.5 correction factors
+        that were previously added to compensate for the too-large viewport.
+
+        Finally, compute the translation for the root layer quad using
+        floating point rather than integer arithmetic. This avoids us losing
+        a key half-pixel of translation when the width of the window is odd.
+
+        To test, size window to even/odd dimensions. No blue line should be visible.
+
+        * platform/graphics/chromium/LayerRendererChromium.cpp:
+        (WebCore::LayerRendererChromium::drawLayers):
+
 2010-08-09  Ryosuke Niwa  <rniwa at webkit.org>
 
         Reviewed by Justin Garcia.
diff --git a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
index 89d8907..15acfa5 100644
--- a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
+++ b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
@@ -333,7 +333,7 @@ void LayerRendererChromium::drawLayers(const IntRect& updateRect, const IntRect&
         m_rootLayerTextureWidth = visibleRect.width();
         m_rootLayerTextureHeight = visibleRect.height();
 
-        m_projectionMatrix = orthoMatrix(0, visibleRectWidth + 0.5, visibleRectHeight + 0.5, 0, -1000, 1000);
+        m_projectionMatrix = orthoMatrix(0, visibleRectWidth, visibleRectHeight, 0, -1000, 1000);
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_rootLayerTextureWidth, m_rootLayerTextureHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 
         checkGLError();
@@ -391,8 +391,8 @@ void LayerRendererChromium::drawLayers(const IntRect& updateRect, const IntRect&
 #error "Need to implement for your platform."
 #endif
 
-        scrolledLayerMatrix.translate3d((int)floorf(0.5 * visibleRect.width() + 0.5) - scrollDelta.x(),
-            (int)floorf(0.5 * visibleRect.height() + 0.5) + scaleFactor * scrollDelta.y(), 0);
+        scrolledLayerMatrix.translate3d((int)floorf(0.5 * visibleRect.width()) - scrollDelta.x(),
+            (int)floorf(0.5 * visibleRect.height()) + scaleFactor * scrollDelta.y(), 0);
         scrolledLayerMatrix.scale3d(1, -1, 1);
 
         // Switch shaders to avoid RGB swizzling.
@@ -457,7 +457,7 @@ void LayerRendererChromium::drawLayers(const IntRect& updateRect, const IntRect&
     glUniform1i(m_samplerLocation, 0);
     checkGLError();
     TransformationMatrix layerMatrix;
-    layerMatrix.translate3d(visibleRect.width() / 2, visibleRect.height() / 2, 0);
+    layerMatrix.translate3d(visibleRect.width() * 0.5f, visibleRect.height() * 0.5f, 0);
     drawTexturedQuad(layerMatrix, visibleRect.width(), visibleRect.height(), 1);
     checkGLError();
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list