| 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" | 
| 24 #include "CCRenderPassDrawQuad.h" | 25 #include "CCRenderPassDrawQuad.h" | 
| 25 #include "CCRendererGL.h" | 26 #include "CCRendererGL.h" | 
| 26 #include "CCRendererSoftware.h" | 27 #include "CCRendererSoftware.h" | 
| 27 #include "CCRenderingStats.h" | 28 #include "CCRenderingStats.h" | 
| 28 #include "CCScrollbarAnimationController.h" | 29 #include "CCScrollbarAnimationController.h" | 
| 29 #include "CCScrollbarLayerImpl.h" | 30 #include "CCScrollbarLayerImpl.h" | 
| 30 #include "CCSettings.h" | 31 #include "CCSettings.h" | 
| 31 #include "CCSingleThreadProxy.h" | 32 #include "CCSingleThreadProxy.h" | 
|  | 33 #include "compositor_frame.h" | 
| 32 #include "TextureUploader.h" | 34 #include "TextureUploader.h" | 
| 33 #include "TraceEvent.h" | 35 #include "TraceEvent.h" | 
| 34 #include <wtf/CurrentTime.h> | 36 #include <wtf/CurrentTime.h> | 
| 35 #include <algorithm> | 37 #include <algorithm> | 
| 36 | 38 | 
| 37 using WebKit::WebTransformationMatrix; | 39 using WebKit::WebTransformationMatrix; | 
| 38 | 40 | 
| 39 namespace { | 41 namespace { | 
| 40 | 42 | 
| 41 void didVisibilityChange(cc::CCLayerTreeHostImpl* id, bool visible) | 43 void didVisibilityChange(cc::CCLayerTreeHostImpl* id, bool visible) | 
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 652 | 654 | 
| 653     ASSERT(bytes); | 655     ASSERT(bytes); | 
| 654     m_client->setNeedsCommitOnImplThread(); | 656     m_client->setNeedsCommitOnImplThread(); | 
| 655 } | 657 } | 
| 656 | 658 | 
| 657 void CCLayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, dou
      ble intervalInSeconds) | 659 void CCLayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, dou
      ble intervalInSeconds) | 
| 658 { | 660 { | 
| 659     m_client->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); | 661     m_client->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); | 
| 660 } | 662 } | 
| 661 | 663 | 
|  | 664 void CCLayerTreeHostImpl::onSendFrameToParentCompositorAck(const WebKit::WebComp
      ositorFrameAck& webAck) | 
|  | 665 { | 
|  | 666     const CompositorFrameAck& ack = static_cast<const CompositorFrameAck&>(webAc
      k); | 
|  | 667     if (m_renderer) | 
|  | 668         m_renderer->onSendFrameToParentCompositorAck(ack); | 
|  | 669 } | 
|  | 670 | 
| 662 void CCLayerTreeHostImpl::drawLayers(const FrameData& frame) | 671 void CCLayerTreeHostImpl::drawLayers(const FrameData& frame) | 
| 663 { | 672 { | 
| 664     TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers"); | 673     TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers"); | 
| 665     ASSERT(canDraw()); | 674     ASSERT(canDraw()); | 
| 666     ASSERT(!frame.renderPasses.empty()); | 675     ASSERT(!frame.renderPasses.empty()); | 
| 667 | 676 | 
| 668     // FIXME: use the frame begin time from the overall compositor scheduler. | 677     // FIXME: use the frame begin time from the overall compositor scheduler. | 
| 669     // This value is currently inaccessible because it is up in Chromium's | 678     // This value is currently inaccessible because it is up in Chromium's | 
| 670     // RenderWidget. | 679     // RenderWidget. | 
| 671     m_fpsCounter->markBeginningOfFrame(currentTime()); | 680     m_fpsCounter->markBeginningOfFrame(currentTime()); | 
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 840     m_resourceProvider.clear(); | 849     m_resourceProvider.clear(); | 
| 841     m_context.reset(); | 850     m_context.reset(); | 
| 842 | 851 | 
| 843     if (!context->bindToClient(this)) | 852     if (!context->bindToClient(this)) | 
| 844         return false; | 853         return false; | 
| 845 | 854 | 
| 846     OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con
      text.get()); | 855     OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con
      text.get()); | 
| 847     if (!resourceProvider) | 856     if (!resourceProvider) | 
| 848         return false; | 857         return false; | 
| 849 | 858 | 
| 850     if (context->context3D()) | 859     if (context->capabilities().hasParentCompositor) | 
|  | 860         m_renderer = CCDelegatingRenderer::create(this, resourceProvider.get()); | 
|  | 861     else if (context->context3D()) | 
| 851         m_renderer = CCRendererGL::create(this, resourceProvider.get()); | 862         m_renderer = CCRendererGL::create(this, resourceProvider.get()); | 
| 852     else if (context->softwareDevice()) | 863     else if (context->softwareDevice()) | 
| 853         m_renderer = CCRendererSoftware::create(this, resourceProvider.get(), co
      ntext->softwareDevice()); | 864         m_renderer = CCRendererSoftware::create(this, resourceProvider.get(), co
      ntext->softwareDevice()); | 
| 854     if (!m_renderer) | 865     if (!m_renderer) | 
| 855         return false; | 866         return false; | 
| 856 | 867 | 
| 857     m_resourceProvider = resourceProvider.release(); | 868     m_resourceProvider = resourceProvider.release(); | 
| 858     m_context = context.Pass(); | 869     m_context = context.Pass(); | 
| 859 | 870 | 
| 860     if (!m_visible) | 871     if (!m_visible) | 
| (...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1453 | 1464 | 
| 1454     CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat
      ionController(); | 1465     CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat
      ionController(); | 
| 1455     if (scrollbarController && scrollbarController->animate(monotonicTime)) | 1466     if (scrollbarController && scrollbarController->animate(monotonicTime)) | 
| 1456         m_client->setNeedsRedrawOnImplThread(); | 1467         m_client->setNeedsRedrawOnImplThread(); | 
| 1457 | 1468 | 
| 1458     for (size_t i = 0; i < layer->children().size(); ++i) | 1469     for (size_t i = 0; i < layer->children().size(); ++i) | 
| 1459         animateScrollbarsRecursive(layer->children()[i], monotonicTime); | 1470         animateScrollbarsRecursive(layer->children()[i], monotonicTime); | 
| 1460 } | 1471 } | 
| 1461 | 1472 | 
| 1462 }  // namespace cc | 1473 }  // namespace cc | 
| OLD | NEW | 
|---|