Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Side by Side Diff: cc/pinch_zoom_viewport.h

Issue 12045002: Delete zoomed_viewport_offset_ and its users. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add imports for DisabledTest and rebase to 179449 Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/layer_tree_impl.cc ('k') | cc/pinch_zoom_viewport.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_PINCH_ZOOM_VIEWPORT_H_ 5 #ifndef CC_PINCH_ZOOM_VIEWPORT_H_
6 #define CC_PINCH_ZOOM_VIEWPORT_H_ 6 #define CC_PINCH_ZOOM_VIEWPORT_H_
7 7
8 #include "cc/cc_export.h" 8 #include "cc/cc_export.h"
9 #include "ui/gfx/rect.h" 9 #include "ui/gfx/rect.h"
10 #include "ui/gfx/transform.h" 10 #include "ui/gfx/transform.h"
11 11
12 namespace cc { 12 namespace cc {
13 13
14 // PinchZoomViewport models the bounds and offset of the viewport that is used
15 // during a pinch-zoom operation. It tracks the layout-space dimensions of the
16 // viewport before any applied scale, and then tracks the layout-space
17 // coordinates of the viewport respecting the pinch settings.
18 class CC_EXPORT PinchZoomViewport { 14 class CC_EXPORT PinchZoomViewport {
19 public: 15 public:
20 PinchZoomViewport(); 16 PinchZoomViewport();
21 17
22 float total_page_scale_factor() const { 18 float total_page_scale_factor() const {
23 return page_scale_factor_ * page_scale_delta_; 19 return page_scale_factor_ * page_scale_delta_;
24 } 20 }
25 21
26 void set_page_scale_factor(float factor) { page_scale_factor_ = factor; } 22 void set_page_scale_factor(float factor) { page_scale_factor_ = factor; }
27 float page_scale_factor() const { return page_scale_factor_; } 23 float page_scale_factor() const { return page_scale_factor_; }
(...skipping 12 matching lines...) Expand all
40 36
41 void set_device_scale_factor(float factor) { device_scale_factor_ = factor; } 37 void set_device_scale_factor(float factor) { device_scale_factor_ = factor; }
42 float device_scale_factor() const { return device_scale_factor_; } 38 float device_scale_factor() const { return device_scale_factor_; }
43 39
44 // Returns true if the passed parameters were different from those previously 40 // Returns true if the passed parameters were different from those previously
45 // cached. 41 // cached.
46 bool SetPageScaleFactorAndLimits(float page_scale_factor, 42 bool SetPageScaleFactorAndLimits(float page_scale_factor,
47 float min_page_scale_factor, 43 float min_page_scale_factor,
48 float max_page_scale_factor); 44 float max_page_scale_factor);
49 45
50 // Returns the zoomed viewport in layout space. The rect's position is an
51 // offset from the root layer's scroll position (therefore, zero if fully
52 // zoomed out).
53 gfx::RectF ZoomedViewport() const;
54
55 const gfx::Vector2dF& zoomed_viewport_offset() const {
56 return zoomed_viewport_offset_;
57 }
58
59 void set_layout_viewport_size(const gfx::SizeF& size) { 46 void set_layout_viewport_size(const gfx::SizeF& size) {
60 layout_viewport_size_ = size; 47 layout_viewport_size_ = size;
61 } 48 }
62 // We need to store device_viewport_size separately because in mobile 49 // We need to store device_viewport_size separately because in mobile
63 // fixed-layout mode, there is not necessarily a simple mapping between layout 50 // fixed-layout mode, there is not necessarily a simple mapping between layout
64 // viewport size and device viewport size. 51 // viewport size and device viewport size.
65 void set_device_viewport_size(const gfx::SizeF& size) { 52 void set_device_viewport_size(const gfx::SizeF& size) {
66 device_viewport_size_ = size; 53 device_viewport_size_ = size;
67 } 54 }
68 55
69 // Apply the scroll offset in layout space to the offset of the pinch-zoom 56 // The implTransform applies the page scale transformation.
70 // viewport. The viewport cannot be scrolled outside of the layout viewport
71 // bounds. Returns the component of the scroll that is un-applied due to this
72 // constraint.
73 gfx::Vector2dF ApplyScroll(const gfx::Vector2dF);
74
75 // The implTransform goes from the origin of the unzoomedDeviceViewport to the
76 // origin of the zoomedDeviceViewport.
77 // 57 //
78 // implTransform = S[pageScale] * Tr[-zoomedDeviceViewportOffset] 58 // implTransform = S[pageScaleFactor] * S[pageScaleDelta]
79 gfx::Transform ImplTransform(bool page_scale_pinch_zoom_enabled) const; 59 gfx::Transform ImplTransform(bool page_scale_pinch_zoom_enabled) const;
80 60
81 private: 61 private:
82 float page_scale_factor_; 62 float page_scale_factor_;
83 float page_scale_delta_; 63 float page_scale_delta_;
84 float sent_page_scale_delta_; 64 float sent_page_scale_delta_;
85 float max_page_scale_factor_; 65 float max_page_scale_factor_;
86 float min_page_scale_factor_; 66 float min_page_scale_factor_;
87 float device_scale_factor_; 67 float device_scale_factor_;
88 68
89 gfx::Vector2dF zoomed_viewport_offset_;
90 gfx::SizeF layout_viewport_size_; 69 gfx::SizeF layout_viewport_size_;
91 gfx::SizeF device_viewport_size_; 70 gfx::SizeF device_viewport_size_;
92 }; 71 };
93 72
94 } // namespace cc 73 } // namespace cc
95 74
96 #endif // CC_PINCH_ZOOM_VIEWPORT_H_ 75 #endif // CC_PINCH_ZOOM_VIEWPORT_H_
OLDNEW
« no previous file with comments | « cc/layer_tree_impl.cc ('k') | cc/pinch_zoom_viewport.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698