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 "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "ScrollbarLayerChromium.h" | 7 #include "ScrollbarLayerChromium.h" |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "CCLayerTreeHost.h" | 10 #include "CCLayerTreeHost.h" |
11 #include "CCScrollbarLayerImpl.h" | 11 #include "CCScrollbarLayerImpl.h" |
12 #include "CCTextureUpdateQueue.h" | 12 #include "CCTextureUpdateQueue.h" |
13 #include "LayerPainterChromium.h" | 13 #include "LayerPainterChromium.h" |
14 #include "TraceEvent.h" | 14 #include "TraceEvent.h" |
15 #include <public/WebRect.h> | 15 #include <public/WebRect.h> |
16 | 16 |
17 using WebKit::WebRect; | 17 using WebKit::WebRect; |
18 | 18 |
19 namespace cc { | 19 namespace cc { |
20 | 20 |
21 scoped_ptr<CCLayerImpl> ScrollbarLayerChromium::createCCLayerImpl() | 21 scoped_ptr<CCLayerImpl> ScrollbarLayerChromium::createCCLayerImpl() |
22 { | 22 { |
23 return CCScrollbarLayerImpl::create(id()).PassAs<CCLayerImpl>(); | 23 return CCScrollbarLayerImpl::create(id()).PassAs<CCLayerImpl>(); |
24 } | 24 } |
25 | 25 |
26 scoped_refptr<ScrollbarLayerChromium> ScrollbarLayerChromium::create(PassOwnPtr<
WebKit::WebScrollbar> scrollbar, WebKit::WebScrollbarThemePainter painter, PassO
wnPtr<WebKit::WebScrollbarThemeGeometry> geometry, int scrollLayerId) | 26 scoped_refptr<ScrollbarLayerChromium> ScrollbarLayerChromium::create(scoped_ptr<
WebKit::WebScrollbar> scrollbar, WebKit::WebScrollbarThemePainter painter, scope
d_ptr<WebKit::WebScrollbarThemeGeometry> geometry, int scrollLayerId) |
27 { | 27 { |
28 return make_scoped_refptr(new ScrollbarLayerChromium(scrollbar, painter, geo
metry, scrollLayerId)); | 28 return make_scoped_refptr(new ScrollbarLayerChromium(scrollbar.Pass(), paint
er, geometry.Pass(), scrollLayerId)); |
29 } | 29 } |
30 | 30 |
31 ScrollbarLayerChromium::ScrollbarLayerChromium(PassOwnPtr<WebKit::WebScrollbar>
scrollbar, WebKit::WebScrollbarThemePainter painter, PassOwnPtr<WebKit::WebScrol
lbarThemeGeometry> geometry, int scrollLayerId) | 31 ScrollbarLayerChromium::ScrollbarLayerChromium(scoped_ptr<WebKit::WebScrollbar>
scrollbar, WebKit::WebScrollbarThemePainter painter, scoped_ptr<WebKit::WebScrol
lbarThemeGeometry> geometry, int scrollLayerId) |
32 : m_scrollbar(scrollbar) | 32 : m_scrollbar(scrollbar.Pass()) |
33 , m_painter(painter) | 33 , m_painter(painter) |
34 , m_geometry(geometry) | 34 , m_geometry(geometry.Pass()) |
35 , m_scrollLayerId(scrollLayerId) | 35 , m_scrollLayerId(scrollLayerId) |
36 , m_textureFormat(GraphicsContext3D::INVALID_ENUM) | 36 , m_textureFormat(GraphicsContext3D::INVALID_ENUM) |
37 { | 37 { |
38 } | 38 } |
39 | 39 |
40 ScrollbarLayerChromium::~ScrollbarLayerChromium() | 40 ScrollbarLayerChromium::~ScrollbarLayerChromium() |
41 { | 41 { |
42 } | 42 } |
43 | 43 |
44 void ScrollbarLayerChromium::pushPropertiesTo(CCLayerImpl* layer) | 44 void ScrollbarLayerChromium::pushPropertiesTo(CCLayerImpl* layer) |
45 { | 45 { |
46 LayerChromium::pushPropertiesTo(layer); | 46 LayerChromium::pushPropertiesTo(layer); |
47 | 47 |
48 CCScrollbarLayerImpl* scrollbarLayer = static_cast<CCScrollbarLayerImpl*>(la
yer); | 48 CCScrollbarLayerImpl* scrollbarLayer = static_cast<CCScrollbarLayerImpl*>(la
yer); |
49 | 49 |
50 if (!scrollbarLayer->scrollbarGeometry()) | 50 if (!scrollbarLayer->scrollbarGeometry()) |
51 scrollbarLayer->setScrollbarGeometry(CCScrollbarGeometryFixedThumb::crea
te(adoptPtr(m_geometry->clone()))); | 51 scrollbarLayer->setScrollbarGeometry(CCScrollbarGeometryFixedThumb::crea
te(make_scoped_ptr(m_geometry->clone()))); |
52 | 52 |
53 scrollbarLayer->setScrollbarData(m_scrollbar.get()); | 53 scrollbarLayer->setScrollbarData(m_scrollbar.get()); |
54 | 54 |
55 if (m_backTrack && m_backTrack->texture()->haveBackingTexture()) | 55 if (m_backTrack && m_backTrack->texture()->haveBackingTexture()) |
56 scrollbarLayer->setBackTrackResourceId(m_backTrack->texture()->resourceI
d()); | 56 scrollbarLayer->setBackTrackResourceId(m_backTrack->texture()->resourceI
d()); |
57 else | 57 else |
58 scrollbarLayer->setBackTrackResourceId(0); | 58 scrollbarLayer->setBackTrackResourceId(0); |
59 | 59 |
60 if (m_foreTrack && m_foreTrack->texture()->haveBackingTexture()) | 60 if (m_foreTrack && m_foreTrack->texture()->haveBackingTexture()) |
61 scrollbarLayer->setForeTrackResourceId(m_foreTrack->texture()->resourceI
d()); | 61 scrollbarLayer->setForeTrackResourceId(m_foreTrack->texture()->resourceI
d()); |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 updatePart(m_foreTrackUpdater.get(), m_foreTrack.get(), contentRect, que
ue, stats); | 275 updatePart(m_foreTrackUpdater.get(), m_foreTrack.get(), contentRect, que
ue, stats); |
276 | 276 |
277 // Consider the thumb to be at the origin when painting. | 277 // Consider the thumb to be at the origin when painting. |
278 WebKit::WebRect thumbRect = m_geometry->thumbRect(m_scrollbar.get()); | 278 WebKit::WebRect thumbRect = m_geometry->thumbRect(m_scrollbar.get()); |
279 IntRect originThumbRect = layerRectToContentRect(WebKit::WebRect(0, 0, thumb
Rect.width, thumbRect.height)); | 279 IntRect originThumbRect = layerRectToContentRect(WebKit::WebRect(0, 0, thumb
Rect.width, thumbRect.height)); |
280 if (!originThumbRect.isEmpty()) | 280 if (!originThumbRect.isEmpty()) |
281 updatePart(m_thumbUpdater.get(), m_thumb.get(), originThumbRect, queue,
stats); | 281 updatePart(m_thumbUpdater.get(), m_thumb.get(), originThumbRect, queue,
stats); |
282 } | 282 } |
283 | 283 |
284 } | 284 } |
OLD | NEW |