Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: cc/CCLayerTreeHostImpl.cpp

Issue 10915298: Add CCDelegatingRenderer, and corresponding IPCs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: correct base Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698