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

Side by Side Diff: cc/pinch_zoom_viewport.cc

Issue 12045002: Delete zoomed_viewport_offset_ and its users. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 11 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
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 #include "cc/pinch_zoom_viewport.h" 5 #include "cc/pinch_zoom_viewport.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 namespace cc { 9 namespace cc {
10 10
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 max_page_scale_factor == max_page_scale_factor_) 43 max_page_scale_factor == max_page_scale_factor_)
44 return false; 44 return false;
45 45
46 min_page_scale_factor_ = min_page_scale_factor; 46 min_page_scale_factor_ = min_page_scale_factor;
47 max_page_scale_factor_ = max_page_scale_factor; 47 max_page_scale_factor_ = max_page_scale_factor;
48 48
49 page_scale_factor_ = page_scale_factor; 49 page_scale_factor_ = page_scale_factor;
50 return true; 50 return true;
51 } 51 }
52 52
53 gfx::RectF PinchZoomViewport::ZoomedViewport() const { 53 gfx::SizeF PinchZoomViewport::LayoutSpaceViewportSize() const {
danakj 2013/01/22 23:42:15 This is just some math. Can you inline in the head
54 gfx::SizeF layout_space_device_viewport_size = gfx::ScaleSize( 54 return gfx::ScaleSize(device_viewport_size_,
55 device_viewport_size_, 55 1 / (device_scale_factor_ * total_page_scale_factor()));
56 1 / (device_scale_factor_ * total_page_scale_factor()));
57 return gfx::RectF(gfx::PointAtOffsetFromOrigin(zoomed_viewport_offset_),
58 layout_space_device_viewport_size);
59 }
60
61 gfx::Vector2dF PinchZoomViewport::ApplyScroll(const gfx::Vector2dF delta) {
62 gfx::Vector2dF overflow;
63 gfx::RectF pinched_bounds = ZoomedViewport() + delta;
64
65 if (pinched_bounds.x() < 0) {
66 overflow.set_x(pinched_bounds.x());
67 pinched_bounds.set_x(0);
68 }
69
70 if (pinched_bounds.y() < 0) {
71 overflow.set_y(pinched_bounds.y());
72 pinched_bounds.set_y(0);
73 }
74
75 if (pinched_bounds.right() > layout_viewport_size_.width()) {
76 overflow.set_x(pinched_bounds.right() - layout_viewport_size_.width());
77 pinched_bounds += gfx::Vector2dF(
78 layout_viewport_size_.width() - pinched_bounds.right(), 0);
79 }
80
81 if (pinched_bounds.bottom() > layout_viewport_size_.height()) {
82 overflow.set_y(pinched_bounds.bottom() - layout_viewport_size_.height());
83 pinched_bounds += gfx::Vector2dF(
84 0, layout_viewport_size_.height() - pinched_bounds.bottom());
85 }
86 zoomed_viewport_offset_ = pinched_bounds.OffsetFromOrigin();
87
88 return overflow;
89 } 56 }
90 57
91 gfx::Transform PinchZoomViewport::ImplTransform( 58 gfx::Transform PinchZoomViewport::ImplTransform(
92 bool page_scale_pinch_zoom_enabled) const { 59 bool page_scale_pinch_zoom_enabled) const {
93 gfx::Transform transform; 60 gfx::Transform transform;
94 transform.Scale(page_scale_delta_, page_scale_delta_); 61 transform.Scale(page_scale_delta_, page_scale_delta_);
95 62
96 // If the pinch state is applied in the impl, then push it to the 63 if (page_scale_pinch_zoom_enabled)
97 // impl transform, otherwise the scale is handled by WebCore.
98 if (page_scale_pinch_zoom_enabled) {
99 transform.Scale(page_scale_factor_, page_scale_factor_); 64 transform.Scale(page_scale_factor_, page_scale_factor_);
100 // The offset needs to be scaled by deviceScaleFactor as this transform
101 // needs to work with physical pixels.
102 gfx::Vector2dF zoomed_device_viewport_offset
103 = gfx::ScaleVector2d(zoomed_viewport_offset_, device_scale_factor_);
104 transform.Translate(-zoomed_device_viewport_offset.x(),
105 -zoomed_device_viewport_offset.y());
106 }
107 65
108 return transform; 66 return transform;
109 } 67 }
110 68
111 } // namespace cc 69 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698