Title: [87407] trunk/Source/WebCore
Revision
87407
Author
[email protected]
Date
2011-05-26 11:46:57 -0700 (Thu, 26 May 2011)

Log Message

2011-05-26  Emil A Eklund  <[email protected]>

        Reviewed by Eric Seidel.

        Change RenderObject to use FloatPoint::scale and FloatQuad::scale
        https://bugs.webkit.org/show_bug.cgi?id=61497

        Covered by existing test.

        * platform/graphics/FloatQuad.h:
        (WebCore::FloatQuad::scale):
        * rendering/RenderObject.h:
        (WebCore::adjustFloatQuadForAbsoluteZoom):
        (WebCore::adjustFloatRectForAbsoluteZoom):
        (WebCore::adjustFloatQuadForPageScale):
        (WebCore::adjustFloatRectForPageScale):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (87406 => 87407)


--- trunk/Source/WebCore/ChangeLog	2011-05-26 18:43:40 UTC (rev 87406)
+++ trunk/Source/WebCore/ChangeLog	2011-05-26 18:46:57 UTC (rev 87407)
@@ -1,3 +1,20 @@
+2011-05-26  Emil A Eklund  <[email protected]>
+
+        Reviewed by Eric Seidel.
+
+        Change RenderObject to use FloatPoint::scale and FloatQuad::scale
+        https://bugs.webkit.org/show_bug.cgi?id=61497
+
+        Covered by existing test.
+
+        * platform/graphics/FloatQuad.h:
+        (WebCore::FloatQuad::scale):
+        * rendering/RenderObject.h:
+        (WebCore::adjustFloatQuadForAbsoluteZoom):
+        (WebCore::adjustFloatRectForAbsoluteZoom):
+        (WebCore::adjustFloatQuadForPageScale):
+        (WebCore::adjustFloatRectForPageScale):
+
 2011-05-26  Alexis Menard  <[email protected]>
 
         Unreviewed build fix for Qt and QuickTime backend.

Modified: trunk/Source/WebCore/platform/graphics/FloatQuad.h (87406 => 87407)


--- trunk/Source/WebCore/platform/graphics/FloatQuad.h	2011-05-26 18:43:40 UTC (rev 87406)
+++ trunk/Source/WebCore/platform/graphics/FloatQuad.h	2011-05-26 18:46:57 UTC (rev 87407)
@@ -110,6 +110,14 @@
         m_p4.move(dx, dy);
     }
 
+    void scale(float dx, float dy)
+    {
+        m_p1.scale(dx, dy);
+        m_p2.scale(dx, dy);
+        m_p3.scale(dx, dy);
+        m_p4.scale(dx, dy);
+    }
+
 private:
     FloatPoint m_p1;
     FloatPoint m_p2;

Modified: trunk/Source/WebCore/rendering/RenderObject.h (87406 => 87407)


--- trunk/Source/WebCore/rendering/RenderObject.h	2011-05-26 18:43:40 UTC (rev 87406)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2011-05-26 18:46:57 UTC (rev 87407)
@@ -1076,57 +1076,30 @@
     return adjustForAbsoluteZoom(value, renderer->style());
 }
 
-inline FloatPoint adjustFloatPointForAbsoluteZoom(const FloatPoint& point, RenderObject* renderer)
-{
-    // The result here is in floats, so we don't need the truncation hack from the integer version above.
-    float zoomFactor = renderer->style()->effectiveZoom();
-    if (zoomFactor == 1)
-        return point;
-    return FloatPoint(point.x() / zoomFactor, point.y() / zoomFactor);
-}
-
 inline void adjustFloatQuadForAbsoluteZoom(FloatQuad& quad, RenderObject* renderer)
 {
-    quad.setP1(adjustFloatPointForAbsoluteZoom(quad.p1(), renderer));
-    quad.setP2(adjustFloatPointForAbsoluteZoom(quad.p2(), renderer));
-    quad.setP3(adjustFloatPointForAbsoluteZoom(quad.p3(), renderer));
-    quad.setP4(adjustFloatPointForAbsoluteZoom(quad.p4(), renderer));
+    float zoom = renderer->style()->effectiveZoom();
+    if (zoom != 1)
+        quad.scale(1 / zoom, 1 / zoom);
 }
 
 inline void adjustFloatRectForAbsoluteZoom(FloatRect& rect, RenderObject* renderer)
 {
-    RenderStyle* style = renderer->style();
-    rect.setX(adjustFloatForAbsoluteZoom(rect.x(), style));
-    rect.setY(adjustFloatForAbsoluteZoom(rect.y(), style));
-    rect.setWidth(adjustFloatForAbsoluteZoom(rect.width(), style));
-    rect.setHeight(adjustFloatForAbsoluteZoom(rect.height(), style));
+    float zoom = renderer->style()->effectiveZoom();
+    if (zoom != 1)
+        rect.scale(1 / zoom, 1 / zoom);
 }
 
-inline FloatPoint adjustFloatPointForPageScale(const FloatPoint& point, float pageScale)
-{
-    if (pageScale == 1)
-        return point;
-    return FloatPoint(point.x() / pageScale, point.y() / pageScale);
-}
-
 inline void adjustFloatQuadForPageScale(FloatQuad& quad, float pageScale)
 {
-    if (pageScale == 1)
-        return;
-    quad.setP1(adjustFloatPointForPageScale(quad.p1(), pageScale));
-    quad.setP2(adjustFloatPointForPageScale(quad.p2(), pageScale));
-    quad.setP3(adjustFloatPointForPageScale(quad.p3(), pageScale));
-    quad.setP4(adjustFloatPointForPageScale(quad.p4(), pageScale));
+    if (pageScale != 1)
+        quad.scale(1 / pageScale, 1 / pageScale);
 }
 
 inline void adjustFloatRectForPageScale(FloatRect& rect, float pageScale)
 {
-    if (pageScale == 1)
-        return;
-    rect.setX(rect.x() / pageScale);
-    rect.setY(rect.y() / pageScale);
-    rect.setWidth(rect.width() / pageScale);
-    rect.setHeight(rect.height() / pageScale);
+    if (pageScale != 1)
+        rect.scale(1 / pageScale, 1 / pageScale);
 }
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to