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 "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "CCAppendQuadsData.h" | 10 #include "CCAppendQuadsData.h" |
11 #include "CCDamageTracker.h" | 11 #include "CCDamageTracker.h" |
12 #include "CCDebugRectHistory.h" | 12 #include "CCDebugRectHistory.h" |
13 #include "CCDelayBasedTimeSource.h" | 13 #include "CCDelayBasedTimeSource.h" |
| 14 #include "CCDelegatingRenderer.h" |
14 #include "CCFontAtlas.h" | 15 #include "CCFontAtlas.h" |
15 #include "CCFrameRateCounter.h" | 16 #include "CCFrameRateCounter.h" |
16 #include "CCHeadsUpDisplayLayerImpl.h" | 17 #include "CCHeadsUpDisplayLayerImpl.h" |
17 #include "CCLayerIterator.h" | 18 #include "CCLayerIterator.h" |
18 #include "CCLayerTreeHost.h" | 19 #include "CCLayerTreeHost.h" |
19 #include "CCLayerTreeHostCommon.h" | 20 #include "CCLayerTreeHostCommon.h" |
20 #include "CCMathUtil.h" | 21 #include "CCMathUtil.h" |
21 #include "CCOverdrawMetrics.h" | 22 #include "CCOverdrawMetrics.h" |
22 #include "CCPageScaleAnimation.h" | 23 #include "CCPageScaleAnimation.h" |
23 #include "CCPrioritizedTextureManager.h" | 24 #include "CCPrioritizedTextureManager.h" |
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 | 653 |
653 ASSERT(bytes); | 654 ASSERT(bytes); |
654 m_client->setNeedsCommitOnImplThread(); | 655 m_client->setNeedsCommitOnImplThread(); |
655 } | 656 } |
656 | 657 |
657 void CCLayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, dou
ble intervalInSeconds) | 658 void CCLayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, dou
ble intervalInSeconds) |
658 { | 659 { |
659 m_client->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); | 660 m_client->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); |
660 } | 661 } |
661 | 662 |
| 663 void CCLayerTreeHostImpl::onSendFrameToParentCompositorAck(const WebKit::WebComp
ositorFrameAck& ack) |
| 664 { |
| 665 if (m_renderer) |
| 666 m_renderer->onSendFrameToParentCompositorAck(ack); |
| 667 } |
| 668 |
662 void CCLayerTreeHostImpl::drawLayers(const FrameData& frame) | 669 void CCLayerTreeHostImpl::drawLayers(const FrameData& frame) |
663 { | 670 { |
664 TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers"); | 671 TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers"); |
665 ASSERT(canDraw()); | 672 ASSERT(canDraw()); |
666 ASSERT(!frame.renderPasses.empty()); | 673 ASSERT(!frame.renderPasses.empty()); |
667 | 674 |
668 // FIXME: use the frame begin time from the overall compositor scheduler. | 675 // FIXME: use the frame begin time from the overall compositor scheduler. |
669 // This value is currently inaccessible because it is up in Chromium's | 676 // This value is currently inaccessible because it is up in Chromium's |
670 // RenderWidget. | 677 // RenderWidget. |
671 m_fpsCounter->markBeginningOfFrame(currentTime()); | 678 m_fpsCounter->markBeginningOfFrame(currentTime()); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 m_resourceProvider.clear(); | 847 m_resourceProvider.clear(); |
841 m_context.reset(); | 848 m_context.reset(); |
842 | 849 |
843 if (!context->bindToClient(this)) | 850 if (!context->bindToClient(this)) |
844 return false; | 851 return false; |
845 | 852 |
846 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con
text.get()); | 853 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con
text.get()); |
847 if (!resourceProvider) | 854 if (!resourceProvider) |
848 return false; | 855 return false; |
849 | 856 |
850 if (context->context3D()) | 857 if (context->capabilities().hasParentCompositor) |
| 858 m_renderer = CCDelegatingRenderer::create(this, resourceProvider.get()); |
| 859 else if (context->context3D()) |
851 m_renderer = CCRendererGL::create(this, resourceProvider.get()); | 860 m_renderer = CCRendererGL::create(this, resourceProvider.get()); |
852 else if (context->softwareDevice()) | 861 else if (context->softwareDevice()) |
853 m_renderer = CCRendererSoftware::create(this, resourceProvider.get(), co
ntext->softwareDevice()); | 862 m_renderer = CCRendererSoftware::create(this, resourceProvider.get(), co
ntext->softwareDevice()); |
854 if (!m_renderer) | 863 if (!m_renderer) |
855 return false; | 864 return false; |
856 | 865 |
857 m_resourceProvider = resourceProvider.release(); | 866 m_resourceProvider = resourceProvider.release(); |
858 m_context = context.Pass(); | 867 m_context = context.Pass(); |
859 | 868 |
860 if (!m_visible) | 869 if (!m_visible) |
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1453 | 1462 |
1454 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat
ionController(); | 1463 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat
ionController(); |
1455 if (scrollbarController && scrollbarController->animate(monotonicTime)) | 1464 if (scrollbarController && scrollbarController->animate(monotonicTime)) |
1456 m_client->setNeedsRedrawOnImplThread(); | 1465 m_client->setNeedsRedrawOnImplThread(); |
1457 | 1466 |
1458 for (size_t i = 0; i < layer->children().size(); ++i) | 1467 for (size_t i = 0; i < layer->children().size(); ++i) |
1459 animateScrollbarsRecursive(layer->children()[i], monotonicTime); | 1468 animateScrollbarsRecursive(layer->children()[i], monotonicTime); |
1460 } | 1469 } |
1461 | 1470 |
1462 } // namespace cc | 1471 } // namespace cc |
OLD | NEW |