summaryrefslogtreecommitdiffstats
path: root/cc/page_scale_animation.h
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-05 20:46:13 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-05 20:46:13 +0000
commitc9c1ebe24790fb34fa9f0704b7963cea511c6f2a (patch)
treefdd43e025e44ae4d9515ebe03a3e4c54f7133d51 /cc/page_scale_animation.h
parent6e3d7e7d274a3e8347e49910ab6f873f37e15989 (diff)
downloadchromium_src-c9c1ebe24790fb34fa9f0704b7963cea511c6f2a.zip
chromium_src-c9c1ebe24790fb34fa9f0704b7963cea511c6f2a.tar.gz
chromium_src-c9c1ebe24790fb34fa9f0704b7963cea511c6f2a.tar.bz2
cc: Remove all remaining use of WebCore Rect/Point/Size types from the compositor.
This change removes all IntPoint/FloatRect/IntSize/etc from the compositor. There remains an indirect dependency on these types through the WebCore::Region class, which we wrap but need to replace. However, the wrapper there hides the WebCore types inside it, so there are now no references to the types from anywhere else in the compositor. I went back and forth on how to deal with scroll "positions". The name suggested that they should be Points, and that the deltas should be Vectors. However this lent itself to super awkward math at times. In the end, it was much cleaner to make all scroll "positions" into scroll "offsets" and represent everything as Vectors. Covered by existing tests; no change in behaviour. R=enne BUG=147395 Relanding: https://codereview.chromium.org/11367080/ Review URL: https://codereview.chromium.org/11366089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166027 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/page_scale_animation.h')
-rw-r--r--cc/page_scale_animation.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/cc/page_scale_animation.h b/cc/page_scale_animation.h
index 5f4bbac..c4c2940 100644
--- a/cc/page_scale_animation.h
+++ b/cc/page_scale_animation.h
@@ -6,7 +6,8 @@
#define CC_PAGE_SCALE_ANIMATION_H_
#include "base/memory/scoped_ptr.h"
-#include "IntSize.h"
+#include "ui/gfx/size.h"
+#include "ui/gfx/vector2d.h"
namespace cc {
@@ -19,7 +20,7 @@ public:
// Construct with the starting page scale and scroll offset (which is in
// pageScaleStart space). The window size is the user-viewable area
// in pixels.
- static scoped_ptr<PageScaleAnimation> create(const IntSize& scrollStart, float pageScaleStart, const gfx::Size& windowSize, const gfx::Size& contentSize, double startTime);
+ static scoped_ptr<PageScaleAnimation> create(gfx::Vector2d scrollStart, float pageScaleStart, const gfx::Size& windowSize, const gfx::Size& contentSize, double startTime);
~PageScaleAnimation();
// The following methods initialize the animation. Call one of them
@@ -27,16 +28,16 @@ public:
// Zoom while explicitly specifying the top-left scroll position. The
// scroll offset is in finalPageScale coordinates.
- void zoomTo(const IntSize& finalScroll, float finalPageScale, double duration);
+ void zoomTo(gfx::Vector2d finalScroll, float finalPageScale, double duration);
// Zoom based on a specified onscreen anchor, which will remain at the same
// position on the screen throughout the animation. The anchor is in local
// space relative to scrollStart.
- void zoomWithAnchor(const IntSize& anchor, float finalPageScale, double duration);
+ void zoomWithAnchor(gfx::Vector2d anchor, float finalPageScale, double duration);
// Call these functions while the animation is in progress to output the
// current state.
- IntSize scrollOffsetAtTime(double time) const;
+ gfx::Vector2d scrollOffsetAtTime(double time) const;
float pageScaleAtTime(double time) const;
bool isAnimationCompleteAtTime(double time) const;
@@ -45,25 +46,25 @@ public:
double startTime() const { return m_startTime; }
double duration() const { return m_duration; }
double endTime() const { return m_startTime + m_duration; }
- const IntSize& finalScrollOffset() const { return m_scrollEnd; }
+ gfx::Vector2d finalScrollOffset() const { return m_scrollEnd; }
float finalPageScale() const { return m_pageScaleEnd; }
protected:
- PageScaleAnimation(const IntSize& scrollStart, float pageScaleStart, const gfx::Size& windowSize, const gfx::Size& contentSize, double startTime);
+ PageScaleAnimation(gfx::Vector2d scrollStart, float pageScaleStart, const gfx::Size& windowSize, const gfx::Size& contentSize, double startTime);
private:
float progressRatioForTime(double time) const;
- IntSize scrollOffsetAtRatio(float ratio) const;
+ gfx::Vector2d scrollOffsetAtRatio(float ratio) const;
float pageScaleAtRatio(float ratio) const;
- IntSize m_scrollStart;
+ gfx::Vector2d m_scrollStart;
float m_pageScaleStart;
gfx::Size m_windowSize;
gfx::Size m_contentSize;
bool m_anchorMode;
- IntSize m_anchor;
- IntSize m_scrollEnd;
+ gfx::Vector2d m_anchor;
+ gfx::Vector2d m_scrollEnd;
float m_pageScaleEnd;
double m_startTime;