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

Side by Side Diff: cc/layers/scrollbar_layer_impl.cc

Issue 21555004: Scrollbar Layer revert (Closed) Base URL: https://src.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 4 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/layers/scrollbar_layer_impl.h ('k') | cc/layers/scrollbar_layer_unittest.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 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/layers/scrollbar_layer_impl.h" 5 #include "cc/layers/scrollbar_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "cc/animation/scrollbar_animation_controller.h" 9 #include "cc/animation/scrollbar_animation_controller.h"
10 #include "cc/layers/layer.h" 10 #include "cc/layers/layer.h"
(...skipping 13 matching lines...) Expand all
24 return make_scoped_ptr(new ScrollbarLayerImpl(tree_impl, 24 return make_scoped_ptr(new ScrollbarLayerImpl(tree_impl,
25 id, 25 id,
26 orientation)); 26 orientation));
27 } 27 }
28 28
29 ScrollbarLayerImpl::ScrollbarLayerImpl( 29 ScrollbarLayerImpl::ScrollbarLayerImpl(
30 LayerTreeImpl* tree_impl, 30 LayerTreeImpl* tree_impl,
31 int id, 31 int id,
32 ScrollbarOrientation orientation) 32 ScrollbarOrientation orientation)
33 : LayerImpl(tree_impl, id), 33 : LayerImpl(tree_impl, id),
34 track_ui_resource_id_(0), 34 track_resource_id_(0),
35 thumb_ui_resource_id_(0), 35 thumb_resource_id_(0),
36 current_pos_(0.f), 36 current_pos_(0.f),
37 maximum_(0), 37 maximum_(0),
38 thumb_thickness_(0), 38 thumb_thickness_(0),
39 thumb_length_(0), 39 thumb_length_(0),
40 track_start_(0), 40 track_start_(0),
41 track_length_(0), 41 track_length_(0),
42 orientation_(orientation), 42 orientation_(orientation),
43 vertical_adjust_(0.f), 43 vertical_adjust_(0.f),
44 visible_to_total_length_ratio_(1.f), 44 visible_to_total_length_ratio_(1.f),
45 scroll_layer_id_(Layer::INVALID_ID), 45 scroll_layer_id_(Layer::INVALID_ID),
(...skipping 16 matching lines...) Expand all
62 LayerImpl::PushPropertiesTo(layer); 62 LayerImpl::PushPropertiesTo(layer);
63 63
64 ScrollbarLayerImpl* scrollbar_layer = static_cast<ScrollbarLayerImpl*>(layer); 64 ScrollbarLayerImpl* scrollbar_layer = static_cast<ScrollbarLayerImpl*>(layer);
65 65
66 scrollbar_layer->set_thumb_thickness(thumb_thickness_); 66 scrollbar_layer->set_thumb_thickness(thumb_thickness_);
67 scrollbar_layer->set_thumb_length(thumb_length_); 67 scrollbar_layer->set_thumb_length(thumb_length_);
68 scrollbar_layer->set_track_start(track_start_); 68 scrollbar_layer->set_track_start(track_start_);
69 scrollbar_layer->set_track_length(track_length_); 69 scrollbar_layer->set_track_length(track_length_);
70 scrollbar_layer->set_is_overlay_scrollbar(is_overlay_scrollbar_); 70 scrollbar_layer->set_is_overlay_scrollbar(is_overlay_scrollbar_);
71 71
72 scrollbar_layer->set_track_ui_resource_id(track_ui_resource_id_); 72 scrollbar_layer->set_track_resource_id(track_resource_id_);
73 scrollbar_layer->set_thumb_ui_resource_id(thumb_ui_resource_id_); 73 scrollbar_layer->set_thumb_resource_id(thumb_resource_id_);
74 } 74 }
75 75
76 bool ScrollbarLayerImpl::WillDraw(DrawMode draw_mode, 76 bool ScrollbarLayerImpl::WillDraw(DrawMode draw_mode,
77 ResourceProvider* resource_provider) { 77 ResourceProvider* resource_provider) {
78 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE && 78 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE &&
79 !layer_tree_impl()->settings().solid_color_scrollbars) 79 !layer_tree_impl()->settings().solid_color_scrollbars)
80 return false; 80 return false;
81 return LayerImpl::WillDraw(draw_mode, resource_provider); 81 return LayerImpl::WillDraw(draw_mode, resource_provider);
82 } 82 }
83 83
(...skipping 15 matching lines...) Expand all
99 if (layer_tree_impl()->settings().solid_color_scrollbars) { 99 if (layer_tree_impl()->settings().solid_color_scrollbars) {
100 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); 100 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
101 quad->SetNew(shared_quad_state, 101 quad->SetNew(shared_quad_state,
102 thumb_quad_rect, 102 thumb_quad_rect,
103 layer_tree_impl()->settings().solid_color_scrollbar_color, 103 layer_tree_impl()->settings().solid_color_scrollbar_color,
104 false); 104 false);
105 quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data); 105 quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
106 return; 106 return;
107 } 107 }
108 108
109 ResourceProvider::ResourceId thumb_resource_id = 109 if (thumb_resource_id_ && !thumb_quad_rect.IsEmpty()) {
110 layer_tree_impl()->ResourceIdForUIResource(thumb_ui_resource_id_);
111 ResourceProvider::ResourceId track_resource_id =
112 layer_tree_impl()->ResourceIdForUIResource(track_ui_resource_id_);
113
114 if (thumb_resource_id && !thumb_quad_rect.IsEmpty()) {
115 gfx::Rect opaque_rect; 110 gfx::Rect opaque_rect;
116 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 111 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
117 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); 112 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create();
118 quad->SetNew(shared_quad_state, 113 quad->SetNew(shared_quad_state,
119 thumb_quad_rect, 114 thumb_quad_rect,
120 opaque_rect, 115 opaque_rect,
121 thumb_resource_id, 116 thumb_resource_id_,
122 premultipled_alpha, 117 premultipled_alpha,
123 uv_top_left, 118 uv_top_left,
124 uv_bottom_right, 119 uv_bottom_right,
125 SK_ColorTRANSPARENT, 120 SK_ColorTRANSPARENT,
126 opacity, 121 opacity,
127 flipped); 122 flipped);
128 quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data); 123 quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
129 } 124 }
130 125
131 gfx::Rect track_quad_rect = content_bounds_rect; 126 if (!track_resource_id_)
132 if (track_resource_id && !track_quad_rect.IsEmpty()) { 127 return;
133 gfx::Rect opaque_rect(contents_opaque() ? track_quad_rect : gfx::Rect()); 128
129 // Order matters here: since the back track texture is being drawn to the
130 // entire contents rect, we must append it after the thumb and fore track
131 // quads. The back track texture contains (and displays) the buttons.
132 if (!content_bounds_rect.IsEmpty()) {
133 gfx::Rect quad_rect(content_bounds_rect);
134 gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect());
134 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 135 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
135 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); 136 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create();
136 quad->SetNew(shared_quad_state, 137 quad->SetNew(shared_quad_state,
137 track_quad_rect, 138 quad_rect,
138 opaque_rect, 139 opaque_rect,
139 track_resource_id, 140 track_resource_id_,
140 premultipled_alpha, 141 premultipled_alpha,
141 uv_top_left, 142 uv_top_left,
142 uv_bottom_right, 143 uv_bottom_right,
143 SK_ColorTRANSPARENT, 144 SK_ColorTRANSPARENT,
144 opacity, 145 opacity,
145 flipped); 146 flipped);
146 quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data); 147 quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
147 } 148 }
148 } 149 }
149 150
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 thumb_rect = gfx::RectF(thumb_offset, vertical_adjust_, 254 thumb_rect = gfx::RectF(thumb_offset, vertical_adjust_,
254 thumb_length, thumb_thickness_); 255 thumb_length, thumb_thickness_);
255 } else { 256 } else {
256 thumb_rect = gfx::RectF(0.f, thumb_offset, 257 thumb_rect = gfx::RectF(0.f, thumb_offset,
257 thumb_thickness_, thumb_length); 258 thumb_thickness_, thumb_length);
258 } 259 }
259 260
260 return ScrollbarLayerRectToContentRect(thumb_rect); 261 return ScrollbarLayerRectToContentRect(thumb_rect);
261 } 262 }
262 263
264 void ScrollbarLayerImpl::DidLoseOutputSurface() {
265 track_resource_id_ = 0;
266 thumb_resource_id_ = 0;
267 }
268
263 const char* ScrollbarLayerImpl::LayerTypeAsString() const { 269 const char* ScrollbarLayerImpl::LayerTypeAsString() const {
264 return "cc::ScrollbarLayerImpl"; 270 return "cc::ScrollbarLayerImpl";
265 } 271 }
266 272
267 } // namespace cc 273 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/scrollbar_layer_impl.h ('k') | cc/layers/scrollbar_layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698