Chromium Code Reviews| 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 "CCDelegatingRenderer.h" | |
| 13 #include "CCFontAtlas.h" | 14 #include "CCFontAtlas.h" |
| 14 #include "CCFrameRateCounter.h" | 15 #include "CCFrameRateCounter.h" |
| 15 #include "CCHeadsUpDisplayLayerImpl.h" | 16 #include "CCHeadsUpDisplayLayerImpl.h" |
| 16 #include "CCLayerIterator.h" | 17 #include "CCLayerIterator.h" |
| 17 #include "CCLayerTreeHost.h" | 18 #include "CCLayerTreeHost.h" |
| 18 #include "CCLayerTreeHostCommon.h" | 19 #include "CCLayerTreeHostCommon.h" |
| 19 #include "CCMathUtil.h" | 20 #include "CCMathUtil.h" |
| 20 #include "CCOverdrawMetrics.h" | 21 #include "CCOverdrawMetrics.h" |
| 21 #include "CCPageScaleAnimation.h" | 22 #include "CCPageScaleAnimation.h" |
| 22 #include "CCPrioritizedTextureManager.h" | 23 #include "CCPrioritizedTextureManager.h" |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 514 | 515 |
| 515 ASSERT(bytes); | 516 ASSERT(bytes); |
| 516 m_client->setNeedsCommitOnImplThread(); | 517 m_client->setNeedsCommitOnImplThread(); |
| 517 } | 518 } |
| 518 | 519 |
| 519 void CCLayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, dou ble intervalInSeconds) | 520 void CCLayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, dou ble intervalInSeconds) |
| 520 { | 521 { |
| 521 m_client->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); | 522 m_client->onVSyncParametersChanged(monotonicTimebase, intervalInSeconds); |
| 522 } | 523 } |
| 523 | 524 |
| 525 void CCLayerTreeHostImpl::onSendFrameToParentCompositorAck(const WebKit::WebComp ositorFrameAck& ack) | |
| 526 { | |
| 527 if (m_renderer) | |
| 528 m_renderer->onSendFrameToParentCompositorAck(ack); | |
| 529 } | |
| 530 | |
| 524 void CCLayerTreeHostImpl::drawLayers(const FrameData& frame) | 531 void CCLayerTreeHostImpl::drawLayers(const FrameData& frame) |
| 525 { | 532 { |
| 526 TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers"); | 533 TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers"); |
| 527 ASSERT(canDraw()); | 534 ASSERT(canDraw()); |
| 528 ASSERT(!frame.renderPasses.isEmpty()); | 535 ASSERT(!frame.renderPasses.isEmpty()); |
| 529 | 536 |
| 530 // FIXME: use the frame begin time from the overall compositor scheduler. | 537 // FIXME: use the frame begin time from the overall compositor scheduler. |
| 531 // This value is currently inaccessible because it is up in Chromium's | 538 // This value is currently inaccessible because it is up in Chromium's |
| 532 // RenderWidget. | 539 // RenderWidget. |
| 533 m_fpsCounter->markBeginningOfFrame(currentTime()); | 540 m_fpsCounter->markBeginningOfFrame(currentTime()); |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 681 | 688 |
| 682 WebKit::WebGraphicsContext3D* context3d = context->context3D(); | 689 WebKit::WebGraphicsContext3D* context3d = context->context3D(); |
| 683 | 690 |
| 684 if (!context3d) { | 691 if (!context3d) { |
| 685 // FIXME: Implement this path for software compositing. | 692 // FIXME: Implement this path for software compositing. |
| 686 return false; | 693 return false; |
| 687 } | 694 } |
| 688 | 695 |
| 689 OwnPtr<CCGraphicsContext> contextRef(context); | 696 OwnPtr<CCGraphicsContext> contextRef(context); |
| 690 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con textRef.get(), textureUploader); | 697 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con textRef.get(), textureUploader); |
| 691 OwnPtr<CCRendererGL> renderer; | 698 OwnPtr<CCRenderer> renderer; |
| 692 if (resourceProvider.get()) | 699 if (resourceProvider.get()) { |
| 693 renderer = CCRendererGL::create(this, resourceProvider.get()); | 700 if (contextRef->capabilities().hasParentCompositor) |
| 701 renderer = CCDelegatingRenderer::create(this, resourceProvider.get() ); | |
| 702 else | |
| 703 renderer = CCRendererGL::create(this, resourceProvider.get()); | |
|
danakj
2012/09/21 20:51:41
We've become inconsistent in our naming of rendere
| |
| 704 } | |
| 694 | 705 |
| 695 // Since we now have a new context/renderer, we cannot continue to use the o ld | 706 // Since we now have a new context/renderer, we cannot continue to use the o ld |
| 696 // resources (i.e. renderSurfaces and texture IDs). | 707 // resources (i.e. renderSurfaces and texture IDs). |
| 697 if (m_rootLayerImpl) { | 708 if (m_rootLayerImpl) { |
| 698 clearRenderSurfaces(); | 709 clearRenderSurfaces(); |
| 699 sendDidLoseContextRecursive(m_rootLayerImpl.get()); | 710 sendDidLoseContextRecursive(m_rootLayerImpl.get()); |
| 700 } | 711 } |
| 701 | 712 |
| 702 m_renderer = renderer.release(); | 713 m_renderer = renderer.release(); |
| 703 m_resourceProvider = resourceProvider.release(); | 714 m_resourceProvider = resourceProvider.release(); |
| (...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1263 | 1274 |
| 1264 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat ionController(); | 1275 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat ionController(); |
| 1265 if (scrollbarController && scrollbarController->animate(monotonicTime)) | 1276 if (scrollbarController && scrollbarController->animate(monotonicTime)) |
| 1266 m_client->setNeedsRedrawOnImplThread(); | 1277 m_client->setNeedsRedrawOnImplThread(); |
| 1267 | 1278 |
| 1268 for (size_t i = 0; i < layer->children().size(); ++i) | 1279 for (size_t i = 0; i < layer->children().size(); ++i) |
| 1269 animateScrollbarsRecursive(layer->children()[i].get(), monotonicTime); | 1280 animateScrollbarsRecursive(layer->children()[i].get(), monotonicTime); |
| 1270 } | 1281 } |
| 1271 | 1282 |
| 1272 } // namespace WebCore | 1283 } // namespace WebCore |
| OLD | NEW |