[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