summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-05-21 18:04:15 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-05-21 18:04:15 -0700
commitf282a4d1efb427883fb318127e175a95c6fbac64 (patch)
tree72b43cda371a519b62413d612d8c18ca5133735f
parent13c0becfffb869bb9b66c5e8e44a0792b6ea97c2 (diff)
parent37289e42b769cb9f394964ad318791723bfe50af (diff)
downloadexternal_webkit-f282a4d1efb427883fb318127e175a95c6fbac64.zip
external_webkit-f282a4d1efb427883fb318127e175a95c6fbac64.tar.gz
external_webkit-f282a4d1efb427883fb318127e175a95c6fbac64.tar.bz2
am 37289e42: Merge "Disable transform fudging for merged surfaces" into jb-dev
* commit '37289e42b769cb9f394964ad318791723bfe50af': Disable transform fudging for merged surfaces
-rw-r--r--Source/WebCore/platform/graphics/android/layers/LayerAndroid.cpp5
-rw-r--r--Source/WebCore/platform/graphics/android/rendering/Surface.h4
2 files changed, 8 insertions, 1 deletions
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",
diff --git a/Source/WebCore/platform/graphics/android/rendering/Surface.h b/Source/WebCore/platform/graphics/android/rendering/Surface.h
index 0286259..535d2c1 100644
--- a/Source/WebCore/platform/graphics/android/rendering/Surface.h
+++ b/Source/WebCore/platform/graphics/android/rendering/Surface.h
@@ -64,6 +64,10 @@ public:
bool hasText() { return m_hasText; }
bool isBase();
+ // don't allow transform fudging for merged layers - they need the transform
+ // static at paint time, and are always aligned to 0,0 doc coordinates.
+ bool allowTransformFudging() const { return singleLayer(); }
+
// TilePainter methods
virtual bool paint(SkCanvas* canvas);
virtual float opacity();