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

Side by Side Diff: cc/scrollbar_layer_impl.cc

Issue 12297009: cc: SolidColorQuad-based scrollbars for Android [M25] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Switch from margin to thickness 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
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/scrollbar_layer_impl.h" 5 #include "cc/scrollbar_layer_impl.h"
6 6
7 #include "cc/layer_tree_impl.h" 7 #include "cc/layer_tree_impl.h"
8 #include "cc/layer_tree_settings.h"
8 #include "cc/quad_sink.h" 9 #include "cc/quad_sink.h"
9 #include "cc/scrollbar_animation_controller.h" 10 #include "cc/scrollbar_animation_controller.h"
11 #include "cc/solid_color_draw_quad.h"
10 #include "cc/texture_draw_quad.h" 12 #include "cc/texture_draw_quad.h"
11 #include "ui/gfx/rect_conversions.h" 13 #include "ui/gfx/rect_conversions.h"
12 14
13 using WebKit::WebRect; 15 using WebKit::WebRect;
14 using WebKit::WebScrollbar; 16 using WebKit::WebScrollbar;
15 17
16 namespace cc { 18 namespace cc {
17 19
18 scoped_ptr<ScrollbarLayerImpl> ScrollbarLayerImpl::create(LayerTreeImpl* treeImp l, int id, scoped_ptr<ScrollbarGeometryFixedThumb> geometry) 20 scoped_ptr<ScrollbarLayerImpl> ScrollbarLayerImpl::create(LayerTreeImpl* treeImp l, int id, scoped_ptr<ScrollbarGeometryFixedThumb> geometry)
19 { 21 {
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 gfx::Rect contentBoundsRect(gfx::Point(), contentBounds()); 146 gfx::Rect contentBoundsRect(gfx::Point(), contentBounds());
145 147
146 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQ uadState()); 148 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQ uadState());
147 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); 149 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData);
148 150
149 WebRect thumbRect, backTrackRect, foreTrackRect; 151 WebRect thumbRect, backTrackRect, foreTrackRect;
150 m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), ba ckTrackRect, thumbRect, foreTrackRect); 152 m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), ba ckTrackRect, thumbRect, foreTrackRect);
151 if (!m_geometry->hasThumb(&m_scrollbar)) 153 if (!m_geometry->hasThumb(&m_scrollbar))
152 thumbRect = WebRect(); 154 thumbRect = WebRect();
153 155
156 if (layerTreeImpl()->settings().solidColorScrollbars) {
157 int thicknessOverride = layerTreeImpl()->settings().solidColorScrollbarT hickness;
158 if (thicknessOverride != -1) {
jamesr 2013/02/19 20:21:58 where does -1 come from? when would it make sense
aelias_OOO_until_Jul13 2013/02/20 00:01:16 It would make sense if you just want to use the de
159 if (m_scrollbar.orientation() == WebScrollbar::Vertical)
160 thumbRect.width = thicknessOverride;
161 else
162 thumbRect.height = thicknessOverride;
163 }
164 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect));
165 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
166 quad->SetNew(sharedQuadState, quadRect, layerTreeImpl()->settings().soli dColorScrollbarColor);
167 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData);
168 return;
169 }
170
154 if (m_thumbResourceId && !thumbRect.isEmpty()) { 171 if (m_thumbResourceId && !thumbRect.isEmpty()) {
155 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect)); 172 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect));
156 gfx::Rect opaqueRect; 173 gfx::Rect opaqueRect;
157 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 174 const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
158 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); 175 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create();
159 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p remultipledAlpha, uvTopLeft, uvBottomRight, opacity, flipped); 176 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p remultipledAlpha, uvTopLeft, uvBottomRight, opacity, flipped);
160 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); 177 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData);
161 } 178 }
162 179
163 if (!m_backTrackResourceId) 180 if (!m_backTrackResourceId)
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 { 289 {
273 return m_owner->m_isCustomScrollbar; 290 return m_owner->m_isCustomScrollbar;
274 } 291 }
275 292
276 const char* ScrollbarLayerImpl::layerTypeAsString() const 293 const char* ScrollbarLayerImpl::layerTypeAsString() const
277 { 294 {
278 return "ScrollbarLayer"; 295 return "ScrollbarLayer";
279 } 296 }
280 297
281 } // namespace cc 298 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698