Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/scrollbar_layer.h" | 5 #include "cc/scrollbar_layer.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "cc/caching_bitmap_content_layer_updater.h" | 9 #include "cc/caching_bitmap_content_layer_updater.h" |
| 10 #include "cc/layer_painter.h" | 10 #include "cc/layer_painter.h" |
| 11 #include "cc/layer_tree_host.h" | 11 #include "cc/layer_tree_host.h" |
| 12 #include "cc/prioritized_resource.h" | 12 #include "cc/prioritized_resource.h" |
| 13 #include "cc/resource_update_queue.h" | 13 #include "cc/resource_update_queue.h" |
| 14 #include "cc/scrollbar_layer_impl.h" | 14 #include "cc/scrollbar_layer_impl.h" |
| 15 #include "third_party/WebKit/Source/Platform/chromium/public/WebRect.h" | 15 #include "third_party/WebKit/Source/Platform/chromium/public/WebRect.h" |
| 16 #include "ui/gfx/rect_conversions.h" | 16 #include "ui/gfx/rect_conversions.h" |
| 17 | 17 |
| 18 namespace cc { | 18 namespace cc { |
| 19 | 19 |
| 20 scoped_ptr<LayerImpl> ScrollbarLayer::CreateLayerImpl( | 20 scoped_ptr<LayerImpl> ScrollbarLayer::CreateLayerImpl( |
| 21 LayerTreeImpl* tree_impl) { | 21 LayerTreeImpl* tree_impl) { |
| 22 return ScrollbarLayerImpl::Create( | 22 scoped_ptr<LayerImpl> scroll_layer_impl = |
| 23 tree_impl, | 23 ScrollbarLayerImpl::Create( |
| 24 id(), | 24 tree_impl, |
| 25 ScrollbarGeometryFixedThumb::create(make_scoped_ptr(geometry_->clone()))) | 25 id(), |
| 26 .PassAs<LayerImpl>(); | 26 ScrollbarGeometryFixedThumb::create( |
| 27 make_scoped_ptr(geometry_->clone()))).PassAs<LayerImpl>(); | |
| 28 | |
| 29 if (scroll_layer_id_ == Layer::PINCH_ZOOM_ROOT_SCROLL_LAYER_ID) | |
| 30 scroll_layer_impl->ToScrollbarLayer()->SetOpacity(0); | |
|
enne (OOO)
2013/03/12 21:10:08
Why are opacity updates blocked and this is requir
wjmaclean
2013/03/12 22:02:22
The call to "ToScrollbarLayer()" is not necessary,
| |
| 31 | |
| 32 return scroll_layer_impl.Pass(); | |
| 27 } | 33 } |
| 28 | 34 |
| 29 scoped_refptr<ScrollbarLayer> ScrollbarLayer::Create( | 35 scoped_refptr<ScrollbarLayer> ScrollbarLayer::Create( |
| 30 scoped_ptr<WebKit::WebScrollbar> scrollbar, | 36 scoped_ptr<WebKit::WebScrollbar> scrollbar, |
| 31 scoped_ptr<ScrollbarThemePainter> painter, | 37 scoped_ptr<ScrollbarThemePainter> painter, |
| 32 scoped_ptr<WebKit::WebScrollbarThemeGeometry> geometry, | 38 scoped_ptr<WebKit::WebScrollbarThemeGeometry> geometry, |
| 33 int scrollLayerId) { | 39 int scrollLayerId) { |
| 34 return make_scoped_refptr(new ScrollbarLayer(scrollbar.Pass(), | 40 return make_scoped_refptr(new ScrollbarLayer(scrollbar.Pass(), |
| 35 painter.Pass(), | 41 painter.Pass(), |
| 36 geometry.Pass(), | 42 geometry.Pass(), |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 54 ScrollbarLayer::~ScrollbarLayer() {} | 60 ScrollbarLayer::~ScrollbarLayer() {} |
| 55 | 61 |
| 56 void ScrollbarLayer::SetScrollLayerId(int id) { | 62 void ScrollbarLayer::SetScrollLayerId(int id) { |
| 57 if (id == scroll_layer_id_) | 63 if (id == scroll_layer_id_) |
| 58 return; | 64 return; |
| 59 | 65 |
| 60 scroll_layer_id_ = id; | 66 scroll_layer_id_ = id; |
| 61 SetNeedsFullTreeSync(); | 67 SetNeedsFullTreeSync(); |
| 62 } | 68 } |
| 63 | 69 |
| 70 bool ScrollbarLayer::OpacityIsAnimating() const { | |
| 71 return Layer::OpacityIsAnimating() || | |
|
enne (OOO)
2013/03/12 21:10:08
Maybe just return Layer::OpacityIsAnimating || isO
wjmaclean
2013/03/12 22:02:22
Sure, though Clank also uses overlay scrollbars, a
| |
| 72 scroll_layer_id_ == Layer::PINCH_ZOOM_ROOT_SCROLL_LAYER_ID; | |
| 73 } | |
| 74 | |
| 64 WebKit::WebScrollbar::Orientation ScrollbarLayer::Orientation() const { | 75 WebKit::WebScrollbar::Orientation ScrollbarLayer::Orientation() const { |
| 65 return scrollbar_->orientation(); | 76 return scrollbar_->orientation(); |
| 66 } | 77 } |
| 67 | 78 |
| 68 int ScrollbarLayer::MaxTextureSize() { | 79 int ScrollbarLayer::MaxTextureSize() { |
| 69 DCHECK(layer_tree_host()); | 80 DCHECK(layer_tree_host()); |
| 70 return layer_tree_host()->rendererCapabilities().maxTextureSize; | 81 return layer_tree_host()->rendererCapabilities().maxTextureSize; |
| 71 } | 82 } |
| 72 | 83 |
| 73 float ScrollbarLayer::ClampScaleToMaxTextureSize(float scale) { | 84 float ScrollbarLayer::ClampScaleToMaxTextureSize(float scale) { |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 422 thumb_.get(), | 433 thumb_.get(), |
| 423 origin_thumb_rect, | 434 origin_thumb_rect, |
| 424 queue, | 435 queue, |
| 425 stats); | 436 stats); |
| 426 } | 437 } |
| 427 | 438 |
| 428 dirty_rect_ = gfx::RectF(); | 439 dirty_rect_ = gfx::RectF(); |
| 429 } | 440 } |
| 430 | 441 |
| 431 } // namespace cc | 442 } // namespace cc |
| OLD | NEW |