diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-05 20:46:13 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-05 20:46:13 +0000 |
commit | c9c1ebe24790fb34fa9f0704b7963cea511c6f2a (patch) | |
tree | fdd43e025e44ae4d9515ebe03a3e4c54f7133d51 /cc/page_scale_animation.h | |
parent | 6e3d7e7d274a3e8347e49910ab6f873f37e15989 (diff) | |
download | chromium_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.h | 23 |
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; |