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