OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "content/browser/android/overscroll_glow.h" | 5 #include "content/browser/android/overscroll_glow.h" |
6 | 6 |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
9 #include "cc/layers/image_layer.h" | 9 #include "cc/layers/image_layer.h" |
10 #include "content/browser/android/edge_effect.h" | 10 #include "content/browser/android/edge_effect.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 gfx::Vector2dF ZeroSmallComponents(gfx::Vector2dF vector) { | 58 gfx::Vector2dF ZeroSmallComponents(gfx::Vector2dF vector) { |
59 if (IsApproxZero(vector.x())) | 59 if (IsApproxZero(vector.x())) |
60 vector.set_x(0); | 60 vector.set_x(0); |
61 if (IsApproxZero(vector.y())) | 61 if (IsApproxZero(vector.y())) |
62 vector.set_y(0); | 62 vector.set_y(0); |
63 return vector; | 63 return vector; |
64 } | 64 } |
65 | 65 |
66 } // namespace | 66 } // namespace |
67 | 67 |
68 scoped_ptr<OverscrollGlow> OverscrollGlow::Create(bool enabled) { | 68 scoped_ptr<OverscrollGlow> OverscrollGlow::Create(bool enabled, |
| 69 gfx::SizeF size) { |
69 const SkBitmap& edge = g_overscroll_resources.Get().edge_bitmap(); | 70 const SkBitmap& edge = g_overscroll_resources.Get().edge_bitmap(); |
70 const SkBitmap& glow = g_overscroll_resources.Get().glow_bitmap(); | 71 const SkBitmap& glow = g_overscroll_resources.Get().glow_bitmap(); |
71 if (edge.isNull() || glow.isNull()) | 72 if (edge.isNull() || glow.isNull()) |
72 return scoped_ptr<OverscrollGlow>(); | 73 return scoped_ptr<OverscrollGlow>(); |
73 | 74 |
74 return make_scoped_ptr(new OverscrollGlow(enabled, edge, glow)); | 75 return make_scoped_ptr(new OverscrollGlow(enabled, size, edge, glow)); |
75 } | 76 } |
76 | 77 |
77 void OverscrollGlow::EnsureResources() { | 78 void OverscrollGlow::EnsureResources() { |
78 g_overscroll_resources.Get(); | 79 g_overscroll_resources.Get(); |
79 } | 80 } |
80 | 81 |
81 OverscrollGlow::OverscrollGlow(bool enabled, | 82 OverscrollGlow::OverscrollGlow(bool enabled, |
| 83 gfx::SizeF size, |
82 const SkBitmap& edge, | 84 const SkBitmap& edge, |
83 const SkBitmap& glow) | 85 const SkBitmap& glow) |
84 : enabled_(enabled), | 86 : enabled_(enabled), |
| 87 size_(size), |
85 horizontal_overscroll_enabled_(true), | 88 horizontal_overscroll_enabled_(true), |
86 vertical_overscroll_enabled_(true), | 89 vertical_overscroll_enabled_(true), |
87 root_layer_(cc::Layer::Create()) { | 90 root_layer_(cc::Layer::Create()) { |
88 for (size_t i = 0; i < EdgeEffect::EDGE_COUNT; ++i) { | 91 for (size_t i = 0; i < EdgeEffect::EDGE_COUNT; ++i) { |
89 scoped_refptr<cc::Layer> edge_layer = CreateImageLayer(edge); | 92 scoped_refptr<cc::Layer> edge_layer = CreateImageLayer(edge); |
90 scoped_refptr<cc::Layer> glow_layer = CreateImageLayer(glow); | 93 scoped_refptr<cc::Layer> glow_layer = CreateImageLayer(glow); |
91 root_layer_->AddChild(edge_layer); | 94 root_layer_->AddChild(edge_layer); |
92 root_layer_->AddChild(glow_layer); | 95 root_layer_->AddChild(glow_layer); |
93 edge_effects_[i] = make_scoped_ptr(new EdgeEffect(edge_layer, glow_layer)); | 96 edge_effects_[i] = make_scoped_ptr(new EdgeEffect(edge_layer, glow_layer)); |
94 } | 97 } |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 break; | 265 break; |
263 }; | 266 }; |
264 } | 267 } |
265 | 268 |
266 EdgeEffect* OverscrollGlow::GetOppositeEdge(int edge_index) { | 269 EdgeEffect* OverscrollGlow::GetOppositeEdge(int edge_index) { |
267 return edge_effects_[(edge_index + 2) % EdgeEffect::EDGE_COUNT].get(); | 270 return edge_effects_[(edge_index + 2) % EdgeEffect::EDGE_COUNT].get(); |
268 } | 271 } |
269 | 272 |
270 } // namespace content | 273 } // namespace content |
271 | 274 |
OLD | NEW |