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 const float opacity[] = {1, 1, 1, 1}; |
100 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); | 101 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
101 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p
remultipledAlpha, uvRect, flipped); | 102 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_thumbResourceId, p
remultipledAlpha, uvRect, opacity, flipped); |
102 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | 103 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
103 } | 104 } |
104 | 105 |
105 if (!m_backTrackResourceId) | 106 if (!m_backTrackResourceId) |
106 return; | 107 return; |
107 | 108 |
108 // We only paint the track in two parts if we were given a texture for the f
orward track part. | 109 // We only paint the track in two parts if we were given a texture for the f
orward track part. |
109 if (m_foreTrackResourceId && !foreTrackRect.isEmpty()) { | 110 if (m_foreTrackResourceId && !foreTrackRect.isEmpty()) { |
110 gfx::Rect quadRect(scrollbarLayerRectToContentRect(foreTrackRect)); | 111 gfx::Rect quadRect(scrollbarLayerRectToContentRect(foreTrackRect)); |
111 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); | 112 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); |
| 113 const float opacity[] = {1, 1, 1, 1}; |
112 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); | 114 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
113 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_foreTrackResourceI
d, premultipledAlpha, toUVRect(foreTrackRect, boundsRect), flipped); | 115 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_foreTrackResourceI
d, premultipledAlpha, toUVRect(foreTrackRect, boundsRect), opacity, flipped); |
114 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | 116 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
115 } | 117 } |
116 | 118 |
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 | 119 // 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 |
118 // fore track quads. The back track texture contains (and displays) the butt
ons. | 120 // fore track quads. The back track texture contains (and displays) the butt
ons. |
119 if (!contentBoundsRect.IsEmpty()) { | 121 if (!contentBoundsRect.IsEmpty()) { |
120 gfx::Rect quadRect(contentBoundsRect); | 122 gfx::Rect quadRect(contentBoundsRect); |
121 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); | 123 gfx::Rect opaqueRect(contentsOpaque() ? quadRect : gfx::Rect()); |
| 124 const float opacity[] = {1, 1, 1, 1}; |
122 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); | 125 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); |
123 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_backTrackResourceI
d, premultipledAlpha, uvRect, flipped); | 126 quad->SetNew(sharedQuadState, quadRect, opaqueRect, m_backTrackResourceI
d, premultipledAlpha, uvRect, opacity, flipped); |
124 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); | 127 quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData); |
125 } | 128 } |
126 } | 129 } |
127 | 130 |
128 void ScrollbarLayerImpl::didLoseOutputSurface() | 131 void ScrollbarLayerImpl::didLoseOutputSurface() |
129 { | 132 { |
130 m_backTrackResourceId = 0; | 133 m_backTrackResourceId = 0; |
131 m_foreTrackResourceId = 0; | 134 m_foreTrackResourceId = 0; |
132 m_thumbResourceId = 0; | 135 m_thumbResourceId = 0; |
133 } | 136 } |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 { | 214 { |
212 return m_owner->m_isCustomScrollbar; | 215 return m_owner->m_isCustomScrollbar; |
213 } | 216 } |
214 | 217 |
215 const char* ScrollbarLayerImpl::layerTypeAsString() const | 218 const char* ScrollbarLayerImpl::layerTypeAsString() const |
216 { | 219 { |
217 return "ScrollbarLayer"; | 220 return "ScrollbarLayer"; |
218 } | 221 } |
219 | 222 |
220 } // namespace cc | 223 } // namespace cc |
OLD | NEW |