Index: cc/layer_tree_host_impl.cc |
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
index a9f21d27f0805c06015bcf5cadbe87af4afb61a1..a01f821c86a184b9ffbdf2347e27453106810329 100644 |
--- a/cc/layer_tree_host_impl.cc |
+++ b/cc/layer_tree_host_impl.cc |
@@ -31,6 +31,7 @@ |
#include "cc/single_thread_proxy.h" |
#include "cc/software_renderer.h" |
#include "cc/texture_uploader.h" |
+#include "ui/gfx/size_conversions.h" |
#include <algorithm> |
using WebKit::WebTransformationMatrix; |
@@ -297,8 +298,7 @@ void LayerTreeHostImpl::startPageScaleAnimation(const IntSize& targetPosition, b |
IntSize scrollTotal = flooredIntSize(m_rootScrollLayerImpl->scrollPosition() + m_rootScrollLayerImpl->scrollDelta()); |
scrollTotal.scale(m_pinchZoomViewport.pageScaleDelta()); |
float scaleTotal = m_pinchZoomViewport.totalPageScaleFactor(); |
- IntSize scaledContentSize = cc::IntSize(contentSize()); |
- scaledContentSize.scale(m_pinchZoomViewport.pageScaleDelta()); |
+ gfx::Size scaledContentSize = gfx::ToFlooredSize(contentSize().Scale(m_pinchZoomViewport.pageScaleDelta())); |
double startTimeSeconds = (startTime - base::TimeTicks()).InSecondsF(); |
m_pageScaleAnimation = PageScaleAnimation::create(scrollTotal, scaleTotal, cc::IntSize(m_deviceViewportSize), scaledContentSize, startTimeSeconds); |
@@ -1017,7 +1017,7 @@ bool LayerTreeHostImpl::ensureRenderSurfaceLayerList() |
return m_renderSurfaceLayerList.size(); |
} |
-InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(const IntPoint& viewportPoint, InputHandlerClient::ScrollInputType type) |
+InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(const gfx::Point& viewportPoint, InputHandlerClient::ScrollInputType type) |
{ |
TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBegin"); |
@@ -1027,8 +1027,7 @@ InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(const IntPoint& |
if (!ensureRenderSurfaceLayerList()) |
return ScrollIgnored; |
- IntPoint deviceViewportPoint = viewportPoint; |
- deviceViewportPoint.scale(m_deviceScaleFactor, m_deviceScaleFactor); |
+ gfx::PointF deviceViewportPoint = viewportPoint.Scale(m_deviceScaleFactor); |
// First find out which layer was hit from the saved list of visible layers |
// in the most recent frame. |
@@ -1071,15 +1070,14 @@ InputHandlerClient::ScrollStatus LayerTreeHostImpl::scrollBegin(const IntPoint& |
return ScrollIgnored; |
} |
-static FloatSize scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewport, LayerImpl& layerImpl, float scaleFromViewportToScreenSpace, const FloatPoint& viewportPoint, const FloatSize& viewportDelta) |
+static FloatSize scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewport, LayerImpl& layerImpl, float scaleFromViewportToScreenSpace, const gfx::PointF& viewportPoint, const FloatSize& viewportDelta) |
{ |
// Layers with non-invertible screen space transforms should not have passed the scroll hit |
// test in the first place. |
DCHECK(layerImpl.screenSpaceTransform().isInvertible()); |
WebTransformationMatrix inverseScreenSpaceTransform = layerImpl.screenSpaceTransform().inverse(); |
- FloatPoint screenSpacePoint = viewportPoint; |
- screenSpacePoint.scale(scaleFromViewportToScreenSpace, scaleFromViewportToScreenSpace); |
+ gfx::PointF screenSpacePoint = viewportPoint.Scale(scaleFromViewportToScreenSpace); |
FloatSize screenSpaceDelta = viewportDelta; |
screenSpaceDelta.scale(scaleFromViewportToScreenSpace, scaleFromViewportToScreenSpace); |
@@ -1087,9 +1085,9 @@ static FloatSize scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewport, |
// First project the scroll start and end points to local layer space to find the scroll delta |
// in layer coordinates. |
bool startClipped, endClipped; |
- FloatPoint screenSpaceEndPoint = screenSpacePoint + screenSpaceDelta; |
- FloatPoint localStartPoint = cc::FloatPoint(MathUtil::projectPoint(inverseScreenSpaceTransform, screenSpacePoint, startClipped)); |
- FloatPoint localEndPoint = cc::FloatPoint(MathUtil::projectPoint(inverseScreenSpaceTransform, screenSpaceEndPoint, endClipped)); |
+ gfx::PointF screenSpaceEndPoint = screenSpacePoint + screenSpaceDelta; |
+ gfx::PointF localStartPoint = MathUtil::projectPoint(inverseScreenSpaceTransform, screenSpacePoint, startClipped); |
+ gfx::PointF localEndPoint = MathUtil::projectPoint(inverseScreenSpaceTransform, screenSpaceEndPoint, endClipped); |
// In general scroll point coordinates should not get clipped. |
DCHECK(!startClipped); |
@@ -1100,29 +1098,27 @@ static FloatSize scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewport, |
// localStartPoint and localEndPoint are in content space but we want to move them to layer space for scrolling. |
float widthScale = 1 / layerImpl.contentsScaleX(); |
float heightScale = 1 / layerImpl.contentsScaleY(); |
- localStartPoint.scale(widthScale, heightScale); |
- localEndPoint.scale(widthScale, heightScale); |
+ localStartPoint = localStartPoint.Scale(widthScale, heightScale); |
+ localEndPoint = localEndPoint.Scale(widthScale, heightScale); |
// Apply the scroll delta. |
FloatSize previousDelta(layerImpl.scrollDelta()); |
- FloatSize unscrolled = layerImpl.scrollBy(localEndPoint - localStartPoint); |
+ FloatSize unscrolled = layerImpl.scrollBy(cc::FloatSize(localEndPoint - localStartPoint)); |
if (viewport) |
viewport->applyScroll(unscrolled); |
// Get the end point in the layer's content space so we can apply its screenSpaceTransform. |
- FloatPoint actualLocalEndPoint = localStartPoint + layerImpl.scrollDelta() - previousDelta; |
- gfx::PointF actualLocalContentEndPoint = actualLocalEndPoint; |
- actualLocalContentEndPoint = actualLocalContentEndPoint.Scale(1 / widthScale, 1 / heightScale); |
+ gfx::PointF actualLocalEndPoint = localStartPoint + layerImpl.scrollDelta() - previousDelta; |
+ gfx::PointF actualLocalContentEndPoint = actualLocalEndPoint.Scale(1 / widthScale, 1 / heightScale); |
// Calculate the applied scroll delta in viewport space coordinates. |
- FloatPoint actualScreenSpaceEndPoint = cc::FloatPoint(MathUtil::mapPoint(layerImpl.screenSpaceTransform(), actualLocalContentEndPoint, endClipped)); |
+ gfx::PointF actualScreenSpaceEndPoint = MathUtil::mapPoint(layerImpl.screenSpaceTransform(), actualLocalContentEndPoint, endClipped); |
DCHECK(!endClipped); |
if (endClipped) |
return FloatSize(); |
- FloatPoint actualViewportEndPoint = actualScreenSpaceEndPoint; |
- actualViewportEndPoint.scale(1 / scaleFromViewportToScreenSpace, 1 / scaleFromViewportToScreenSpace); |
- return actualViewportEndPoint - viewportPoint; |
+ gfx::PointF actualViewportEndPoint = actualScreenSpaceEndPoint.Scale(1 / scaleFromViewportToScreenSpace); |
+ return cc::FloatSize(actualViewportEndPoint - viewportPoint); |
} |
static FloatSize scrollLayerWithLocalDelta(LayerImpl& layerImpl, const FloatSize& localDelta) |
@@ -1132,7 +1128,7 @@ static FloatSize scrollLayerWithLocalDelta(LayerImpl& layerImpl, const FloatSize |
return layerImpl.scrollDelta() - previousDelta; |
} |
-void LayerTreeHostImpl::scrollBy(const IntPoint& viewportPoint, const IntSize& scrollDelta) |
+void LayerTreeHostImpl::scrollBy(const gfx::Point& viewportPoint, const IntSize& scrollDelta) |
{ |
TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBy"); |
if (!m_currentlyScrollingLayerImpl) |