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 "CCFontAtlas.h" | 13 #include "CCFontAtlas.h" |
| 14 #include "CCFrameRateCounter.h" | 14 #include "CCFrameRateCounter.h" |
| 15 #include "CCHeadsUpDisplayLayerImpl.h" | 15 #include "CCHeadsUpDisplayLayerImpl.h" |
| 16 #include "CCLayerIterator.h" | 16 #include "CCLayerIterator.h" |
| 17 #include "CCLayerTreeHost.h" | 17 #include "CCLayerTreeHost.h" |
| 18 #include "CCLayerTreeHostCommon.h" | 18 #include "CCLayerTreeHostCommon.h" |
| 19 #include "CCMathUtil.h" | 19 #include "CCMathUtil.h" |
| 20 #include "CCOverdrawMetrics.h" | 20 #include "CCOverdrawMetrics.h" |
| 21 #include "CCPageScaleAnimation.h" | 21 #include "CCPageScaleAnimation.h" |
| 22 #include "CCPrioritizedTextureManager.h" | 22 #include "CCPrioritizedTextureManager.h" |
| 23 #include "CCRenderPassDrawQuad.h" | 23 #include "CCRenderPassDrawQuad.h" |
| 24 #include "CCRendererGL.h" | 24 #include "CCRendererGL.h" |
| 25 #include "CCRendererSoftware.h" | |
| 25 #include "CCRenderingStats.h" | 26 #include "CCRenderingStats.h" |
| 26 #include "CCScrollbarAnimationController.h" | 27 #include "CCScrollbarAnimationController.h" |
| 27 #include "CCScrollbarLayerImpl.h" | 28 #include "CCScrollbarLayerImpl.h" |
| 28 #include "CCSettings.h" | 29 #include "CCSettings.h" |
| 29 #include "CCSingleThreadProxy.h" | 30 #include "CCSingleThreadProxy.h" |
| 30 #include "TraceEvent.h" | 31 #include "TraceEvent.h" |
| 31 #include <wtf/CurrentTime.h> | 32 #include <wtf/CurrentTime.h> |
| 32 | 33 |
| 33 using WebKit::WebTransformationMatrix; | 34 using WebKit::WebTransformationMatrix; |
| 34 | 35 |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 672 m_renderer->setVisible(visible); | 673 m_renderer->setVisible(visible); |
| 673 | 674 |
| 674 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers); | 675 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers); |
| 675 } | 676 } |
| 676 | 677 |
| 677 bool CCLayerTreeHostImpl::initializeRenderer(PassOwnPtr<CCGraphicsContext> conte xt, TextureUploaderOption textureUploader) | 678 bool CCLayerTreeHostImpl::initializeRenderer(PassOwnPtr<CCGraphicsContext> conte xt, TextureUploaderOption textureUploader) |
| 678 { | 679 { |
| 679 if (!context->bindToClient(this)) | 680 if (!context->bindToClient(this)) |
| 680 return false; | 681 return false; |
| 681 | 682 |
| 682 WebKit::WebGraphicsContext3D* context3d = context->context3D(); | |
| 683 | |
| 684 if (!context3d) { | |
| 685 // FIXME: Implement this path for software compositing. | |
| 686 return false; | |
| 687 } | |
| 688 | |
| 689 OwnPtr<CCGraphicsContext> contextRef(context); | 683 OwnPtr<CCGraphicsContext> contextRef(context); |
| 690 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con textRef.get()); | 684 OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(con textRef.get()); |
| 691 OwnPtr<CCRendererGL> renderer; | 685 |
| 692 if (resourceProvider.get()) | 686 OwnPtr<CCRenderer> renderer; |
| 693 renderer = CCRendererGL::create(this, resourceProvider.get(), textureUpl oader); | 687 if (resourceProvider.get()) { |
| 688 if (contextRef->context3D()) | |
| 689 renderer = CCRendererGL::create(this, resourceProvider.get(), textur eUploader); | |
| 690 else if (contextRef->softwareDevice()) | |
| 691 renderer = CCRendererSoftware::create(this, resourceProvider.get(), contextRef->softwareDevice()); | |
|
danakj
2012/09/19 18:35:14
Should there be an else { ASSERT_NOT_REACHED(); }
aelias_OOO_until_Jul13
2012/09/19 19:58:27
The release() will not crash given a NULL pointer.
danakj
2012/09/19 20:06:18
ah ok! right it didn't worry about else before eit
| |
| 692 } | |
| 694 | 693 |
| 695 // Since we now have a new context/renderer, we cannot continue to use the o ld | 694 // Since we now have a new context/renderer, we cannot continue to use the o ld |
| 696 // resources (i.e. renderSurfaces and texture IDs). | 695 // resources (i.e. renderSurfaces and texture IDs). |
| 697 if (m_rootLayerImpl) { | 696 if (m_rootLayerImpl) { |
| 698 clearRenderSurfaces(); | 697 clearRenderSurfaces(); |
| 699 sendDidLoseContextRecursive(m_rootLayerImpl.get()); | 698 sendDidLoseContextRecursive(m_rootLayerImpl.get()); |
| 700 } | 699 } |
| 701 | 700 |
| 702 m_renderer = renderer.release(); | 701 m_renderer = renderer.release(); |
| 703 m_resourceProvider = resourceProvider.release(); | 702 m_resourceProvider = resourceProvider.release(); |
| (...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1263 | 1262 |
| 1264 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat ionController(); | 1263 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat ionController(); |
| 1265 if (scrollbarController && scrollbarController->animate(monotonicTime)) | 1264 if (scrollbarController && scrollbarController->animate(monotonicTime)) |
| 1266 m_client->setNeedsRedrawOnImplThread(); | 1265 m_client->setNeedsRedrawOnImplThread(); |
| 1267 | 1266 |
| 1268 for (size_t i = 0; i < layer->children().size(); ++i) | 1267 for (size_t i = 0; i < layer->children().size(); ++i) |
| 1269 animateScrollbarsRecursive(layer->children()[i].get(), monotonicTime); | 1268 animateScrollbarsRecursive(layer->children()[i].get(), monotonicTime); |
| 1270 } | 1269 } |
| 1271 | 1270 |
| 1272 } // namespace cc | 1271 } // namespace cc |
| OLD | NEW |