OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 "CCLayerTreeHostImpl.h" | 7 #include "CCLayerTreeHostImpl.h" |
8 | 8 |
9 #include "CCAppendQuadsData.h" | 9 #include "CCAppendQuadsData.h" |
10 #include "CCDamageTracker.h" | 10 #include "CCDamageTracker.h" |
11 #include "CCDebugRectHistory.h" | 11 #include "CCDebugRectHistory.h" |
12 #include "CCDelayBasedTimeSource.h" | 12 #include "CCDelayBasedTimeSource.h" |
13 #include "CCFontAtlas.h" | 13 #include "CCFontAtlas.h" |
14 #include "CCFrameRateCounter.h" | 14 #include "CCFrameRateCounter.h" |
15 #include "CCHeadsUpDisplayLayerImpl.h" | 15 #include "CCHeadsUpDisplayLayerImpl.h" |
16 #include "CCLayerIterator.h" | 16 #include "CCLayerIterator.h" |
17 #include "CCLayerTreeHost.h" | 17 #include "CCLayerTreeHost.h" |
18 #include "CCLayerTreeHostCommon.h" | 18 #include "CCLayerTreeHostCommon.h" |
19 #include "CCMathUtil.h" | 19 #include "CCMathUtil.h" |
20 #include "CCOverdrawMetrics.h" | 20 #include "CCOverdrawMetrics.h" |
21 #include "CCPageScaleAnimation.h" | 21 #include "CCPageScaleAnimation.h" |
22 #include "CCPrioritizedTextureManager.h" | 22 #include "CCPrioritizedTextureManager.h" |
23 #include "CCRenderPassDrawQuad.h" | 23 #include "CCRenderPassDrawQuad.h" |
24 #include "CCRendererGL.h" | 24 #include "CCRendererGL.h" |
| 25 #include "CCRendererSoftware.h" |
25 #include "CCRenderingStats.h" | 26 #include "CCRenderingStats.h" |
26 #include "CCScrollbarAnimationController.h" | 27 #include "CCScrollbarAnimationController.h" |
27 #include "CCScrollbarLayerImpl.h" | 28 #include "CCScrollbarLayerImpl.h" |
28 #include "CCSettings.h" | 29 #include "CCSettings.h" |
29 #include "CCSingleThreadProxy.h" | 30 #include "CCSingleThreadProxy.h" |
30 #include "TraceEvent.h" | 31 #include "TraceEvent.h" |
31 #include <wtf/CurrentTime.h> | 32 #include <wtf/CurrentTime.h> |
32 | 33 |
33 using WebKit::WebTransformationMatrix; | 34 using WebKit::WebTransformationMatrix; |
34 | 35 |
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
707 m_renderer->setVisible(visible); | 708 m_renderer->setVisible(visible); |
708 | 709 |
709 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers); | 710 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers); |
710 } | 711 } |
711 | 712 |
712 bool CCLayerTreeHostImpl::initializeRenderer(PassOwnPtr<CCGraphicsContext> conte
xt) | 713 bool CCLayerTreeHostImpl::initializeRenderer(PassOwnPtr<CCGraphicsContext> conte
xt) |
713 { | 714 { |
714 if (!context->bindToClient(this)) | 715 if (!context->bindToClient(this)) |
715 return false; | 716 return false; |
716 | 717 |
717 WebKit::WebGraphicsContext3D* context3d = context->context3D(); | |
718 | |
719 if (!context3d) { | |
720 // FIXME: Implement this path for software compositing. | |
721 return false; | |
722 } | |
723 | |
724 OwnPtr<CCGraphicsContext> contextRef(context); | 718 OwnPtr<CCGraphicsContext> contextRef(context); |
725 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con
textRef.get()); | 719 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con
textRef.get()); |
726 OwnPtr<CCRendererGL> renderer; | 720 |
727 if (resourceProvider.get()) | 721 OwnPtr<CCRenderer> renderer; |
728 renderer = CCRendererGL::create(this, resourceProvider.get()); | 722 if (resourceProvider.get()) { |
| 723 if (contextRef->context3D()) |
| 724 renderer = CCRendererGL::create(this, resourceProvider.get()); |
| 725 else if (contextRef->softwareDevice()) |
| 726 renderer = CCRendererSoftware::create(this, resourceProvider.get(),
contextRef->softwareDevice()); |
| 727 } |
729 | 728 |
730 // Since we now have a new context/renderer, we cannot continue to use the o
ld | 729 // Since we now have a new context/renderer, we cannot continue to use the o
ld |
731 // resources (i.e. renderSurfaces and texture IDs). | 730 // resources (i.e. renderSurfaces and texture IDs). |
732 if (m_rootLayerImpl) { | 731 if (m_rootLayerImpl) { |
733 clearRenderSurfaces(); | 732 clearRenderSurfaces(); |
734 sendDidLoseContextRecursive(m_rootLayerImpl.get()); | 733 sendDidLoseContextRecursive(m_rootLayerImpl.get()); |
735 } | 734 } |
736 | 735 |
737 m_renderer = renderer.release(); | 736 m_renderer = renderer.release(); |
738 m_resourceProvider = resourceProvider.release(); | 737 m_resourceProvider = resourceProvider.release(); |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1304 | 1303 |
1305 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat
ionController(); | 1304 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat
ionController(); |
1306 if (scrollbarController && scrollbarController->animate(monotonicTime)) | 1305 if (scrollbarController && scrollbarController->animate(monotonicTime)) |
1307 m_client->setNeedsRedrawOnImplThread(); | 1306 m_client->setNeedsRedrawOnImplThread(); |
1308 | 1307 |
1309 for (size_t i = 0; i < layer->children().size(); ++i) | 1308 for (size_t i = 0; i < layer->children().size(); ++i) |
1310 animateScrollbarsRecursive(layer->children()[i], monotonicTime); | 1309 animateScrollbarsRecursive(layer->children()[i], monotonicTime); |
1311 } | 1310 } |
1312 | 1311 |
1313 } // namespace cc | 1312 } // namespace cc |
OLD | NEW |