summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderObject.cpp
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2009-06-10 16:48:35 -0400
committerMike Reed <reed@google.com>2009-06-11 10:26:06 -0400
commit353e1e16ed060c0ea11f2dea6dea8b565ac71533 (patch)
tree02d0e35aa82c733ad6834b133ecceac0222733b6 /WebCore/rendering/RenderObject.cpp
parent5f95030b683afa83909e9de4ac8ba908ca15112c (diff)
downloadexternal_webkit-353e1e16ed060c0ea11f2dea6dea8b565ac71533.zip
external_webkit-353e1e16ed060c0ea11f2dea6dea8b565ac71533.tar.gz
external_webkit-353e1e16ed060c0ea11f2dea6dea8b565ac71533.tar.bz2
speedup some common matrix operations, to be submitted back
Diffstat (limited to 'WebCore/rendering/RenderObject.cpp')
-rw-r--r--WebCore/rendering/RenderObject.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/WebCore/rendering/RenderObject.cpp b/WebCore/rendering/RenderObject.cpp
index bb98c9f..a9f6693 100644
--- a/WebCore/rendering/RenderObject.cpp
+++ b/WebCore/rendering/RenderObject.cpp
@@ -1703,11 +1703,22 @@ void RenderObject::mapAbsoluteToLocalPoint(bool fixed, bool useTransforms, Trans
TransformationMatrix RenderObject::transformFromContainer(const RenderObject* containerObject, const IntSize& offsetInContainer) const
{
TransformationMatrix containerTransform;
+#ifdef ANDROID_FASTER_MATRIX
+ RenderLayer* layer;
+ const double tx = offsetInContainer.width();
+ const double ty = offsetInContainer.height();
+ if (hasLayer() && (layer = toRenderBox(this)->layer()) && layer->transform()) {
+ containerTransform = layer->currentTransform();
+ containerTransform.translateRight(tx, ty);
+ } else
+ containerTransform.translate(tx, ty);
+#else
containerTransform.translate(offsetInContainer.width(), offsetInContainer.height());
RenderLayer* layer;
if (hasLayer() && (layer = toRenderBox(this)->layer()) && layer->transform())
containerTransform.multLeft(layer->currentTransform());
-
+#endif
+
#if ENABLE(3D_RENDERING)
if (containerObject && containerObject->style()->hasPerspective()) {
// Perpsective on the container affects us, so we have to factor it in here.