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_impl.h" | 5 #include "cc/scrollbar_layer_impl.h" |
6 | 6 |
7 #include "cc/quad_sink.h" | 7 #include "cc/quad_sink.h" |
8 #include "cc/scrollbar_animation_controller.h" | 8 #include "cc/scrollbar_animation_controller.h" |
9 #include "cc/texture_draw_quad.h" | 9 #include "cc/texture_draw_quad.h" |
10 #include "ui/gfx/rect_conversions.h" | 10 #include "ui/gfx/rect_conversions.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); | 90 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); |
91 | 91 |
92 WebRect thumbRect, backTrackRect, foreTrackRect; | 92 WebRect thumbRect, backTrackRect, foreTrackRect; |
93 m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), ba
ckTrackRect, thumbRect, foreTrackRect); | 93 m_geometry->splitTrack(&m_scrollbar, m_geometry->trackRect(&m_scrollbar), ba
ckTrackRect, thumbRect, foreTrackRect); |
94 if (!m_geometry->hasThumb(&m_scrollbar)) | 94 if (!m_geometry->hasThumb(&m_scrollbar)) |
95 thumbRect = WebRect(); | 95 thumbRect = WebRect(); |
96 | 96 |
97 if (m_thumbResourceId && !thumbRect.isEmpty()) { | 97 if (m_thumbResourceId && !thumbRect.isEmpty()) { |
98 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect)); | 98 gfx::Rect quadRect(scrollbarLayerRectToContentRect(thumbRect)); |
99 gfx::Rect opaqueRect; | 99 gfx::Rect opaqueRect; |
100 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::create(sharedQuadSta
te, quadRect, opaqueRect, m_thumbResourceId, premultipledAlpha, uvRect, flipped)
; | 100 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
| 101 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p
remultipledAlpha, uvRect, flipped); |
101 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | 102 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
102 } | 103 } |
103 | 104 |
104 if (!m_backTrackResourceId) | 105 if (!m_backTrackResourceId) |
105 return; | 106 return; |
106 | 107 |
107 // We only paint the track in two parts if we were given a texture for the f
orward track part. | 108 // We only paint the track in two parts if we were given a texture for the f
orward track part. |
108 if (m_foreTrackResourceId && !foreTrackRect.isEmpty()) { | 109 if (m_foreTrackResourceId && !foreTrackRect.isEmpty()) { |
109 gfx::Rect quadRect(scrollbarLayerRectToContentRect(foreTrackRect)); | 110 gfx::Rect quadRect(scrollbarLayerRectToContentRect(foreTrackRect)); |
110 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); | 111 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); |
111 quadSink.append(TextureDrawQuad::create(sharedQuadState, quadRect, opaqu
eRect, m_foreTrackResourceId, premultipledAlpha, toUVRect(foreTrackRect, boundsR
ect), flipped).PassAs<DrawQuad>(), appendQuadsData); | 112 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
| 113 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_foreTrackResourceI
d, premultipledAlpha, toUVRect(foreTrackRect, boundsRect), flipped); |
| 114 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
112 } | 115 } |
113 | 116 |
114 // Order matters here: since the back track texture is being drawn to the en
tire contents rect, we must append it after the thumb and | 117 // Order matters here: since the back track texture is being drawn to the en
tire contents rect, we must append it after the thumb and |
115 // fore track quads. The back track texture contains (and displays) the butt
ons. | 118 // fore track quads. The back track texture contains (and displays) the butt
ons. |
116 if (!contentBoundsRect.IsEmpty()) { | 119 if (!contentBoundsRect.IsEmpty()) { |
117 gfx::Rect quadRect(contentBoundsRect); | 120 gfx::Rect quadRect(contentBoundsRect); |
118 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); | 121 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); |
119 quadSink.append(TextureDrawQuad::create(sharedQuadState, quadRect, opaqu
eRect, m_backTrackResourceId, premultipledAlpha, uvRect, flipped).PassAs<DrawQua
d>(), appendQuadsData); | 122 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
| 123 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_backTrackResourceI
d, premultipledAlpha, uvRect, flipped); |
| 124 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
120 } | 125 } |
121 } | 126 } |
122 | 127 |
123 void ScrollbarLayerImpl::didLoseContext() | 128 void ScrollbarLayerImpl::didLoseContext() |
124 { | 129 { |
125 m_backTrackResourceId = 0; | 130 m_backTrackResourceId = 0; |
126 m_foreTrackResourceId = 0; | 131 m_foreTrackResourceId = 0; |
127 m_thumbResourceId = 0; | 132 m_thumbResourceId = 0; |
128 } | 133 } |
129 | 134 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 { | 211 { |
207 return m_owner->m_isCustomScrollbar; | 212 return m_owner->m_isCustomScrollbar; |
208 } | 213 } |
209 | 214 |
210 const char* ScrollbarLayerImpl::layerTypeAsString() const | 215 const char* ScrollbarLayerImpl::layerTypeAsString() const |
211 { | 216 { |
212 return "ScrollbarLayer"; | 217 return "ScrollbarLayer"; |
213 } | 218 } |
214 | 219 |
215 } // namespace cc | 220 } // namespace cc |
OLD | NEW |