From d7fd74bf26582bbf3ba7a80420ea5ebe170be473 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Mon, 21 May 2012 15:49:31 -0700 Subject: Disable transform fudging for merged surfaces Draw transforms are used at painting time for merged surfaces, so they shouldn't be manipulated in the draw path. The fudging isn't necessary for these surfaces in the first place, as merged surfaces are always aligned to pixel coordinates. bug:6156523 Change-Id: I3d954869188008f1a9e35915df893d75b49be6a2 --- Source/WebCore/platform/graphics/android/layers/LayerAndroid.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Source/WebCore/platform/graphics/android/layers') diff --git a/Source/WebCore/platform/graphics/android/layers/LayerAndroid.cpp b/Source/WebCore/platform/graphics/android/layers/LayerAndroid.cpp index 6e88081..182e811 100644 --- a/Source/WebCore/platform/graphics/android/layers/LayerAndroid.cpp +++ b/Source/WebCore/platform/graphics/android/layers/LayerAndroid.cpp @@ -411,9 +411,12 @@ void LayerAndroid::updateGLPositionsAndScale(const TransformationMatrix& parentM -anchorPointZ()); setDrawTransform(localMatrix); - if (m_drawTransform.isIdentityOrTranslation()) { + if (m_drawTransform.isIdentityOrTranslation() + && surface() && surface()->allowTransformFudging()) { // adjust the translation coordinates of the draw transform matrix so // that layers (defined in content coordinates) will align to display/view pixels + + // the surface may not allow fudging if it uses the draw transform at paint time float desiredContentX = round(m_drawTransform.m41() * scale) / scale; float desiredContentY = round(m_drawTransform.m42() * scale) / scale; ALOGV("fudging translation from %f, %f to %f, %f", -- cgit v1.1