| 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 |