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

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 11439026: Revert 171403 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years 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
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "cc/layer_tree_host_impl.h" 5 #include "cc/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw no renderer"); 272 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw no renderer");
273 return false; 273 return false;
274 } 274 }
275 if (m_contentsTexturesPurged) { 275 if (m_contentsTexturesPurged) {
276 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw contents textures purged"); 276 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw contents textures purged");
277 return false; 277 return false;
278 } 278 }
279 return true; 279 return true;
280 } 280 }
281 281
282 OutputSurface* LayerTreeHostImpl::outputSurface() const 282 GraphicsContext* LayerTreeHostImpl::context() const
283 { 283 {
284 return m_outputSurface.get(); 284 return m_context.get();
285 } 285 }
286 286
287 void LayerTreeHostImpl::animate(base::TimeTicks monotonicTime, base::Time wallCl ockTime) 287 void LayerTreeHostImpl::animate(base::TimeTicks monotonicTime, base::Time wallCl ockTime)
288 { 288 {
289 animatePageScale(monotonicTime); 289 animatePageScale(monotonicTime);
290 animateLayers(monotonicTime, wallClockTime); 290 animateLayers(monotonicTime, wallClockTime);
291 animateScrollbars(monotonicTime); 291 animateScrollbars(monotonicTime);
292 } 292 }
293 293
294 void LayerTreeHostImpl::manageTiles() 294 void LayerTreeHostImpl::manageTiles()
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 const gfx::Size& LayerTreeHostImpl::deviceViewportSize() const 884 const gfx::Size& LayerTreeHostImpl::deviceViewportSize() const
885 { 885 {
886 return m_deviceViewportSize; 886 return m_deviceViewportSize;
887 } 887 }
888 888
889 const LayerTreeSettings& LayerTreeHostImpl::settings() const 889 const LayerTreeSettings& LayerTreeHostImpl::settings() const
890 { 890 {
891 return m_settings; 891 return m_settings;
892 } 892 }
893 893
894 void LayerTreeHostImpl::didLoseOutputSurface() 894 void LayerTreeHostImpl::didLoseContext()
895 { 895 {
896 m_client->didLoseOutputSurfaceOnImplThread(); 896 m_client->didLoseContextOnImplThread();
897 } 897 }
898 898
899 void LayerTreeHostImpl::onSwapBuffersComplete() 899 void LayerTreeHostImpl::onSwapBuffersComplete()
900 { 900 {
901 m_client->onSwapBuffersCompleteOnImplThread(); 901 m_client->onSwapBuffersCompleteOnImplThread();
902 } 902 }
903 903
904 void LayerTreeHostImpl::readback(void* pixels, const gfx::Rect& rect) 904 void LayerTreeHostImpl::readback(void* pixels, const gfx::Rect& rect)
905 { 905 {
906 DCHECK(m_renderer); 906 DCHECK(m_renderer);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 enforceManagedMemoryPolicy(m_managedMemoryPolicy); 976 enforceManagedMemoryPolicy(m_managedMemoryPolicy);
977 977
978 if (!m_renderer) 978 if (!m_renderer)
979 return; 979 return;
980 980
981 m_renderer->setVisible(visible); 981 m_renderer->setVisible(visible);
982 982
983 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers); 983 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers);
984 } 984 }
985 985
986 bool LayerTreeHostImpl::initializeRenderer(scoped_ptr<OutputSurface> outputSurfa ce) 986 bool LayerTreeHostImpl::initializeRenderer(scoped_ptr<GraphicsContext> context)
987 { 987 {
988 // Since we will create a new resource provider, we cannot continue to use 988 // Since we will create a new resource provider, we cannot continue to use
989 // the old resources (i.e. renderSurfaces and texture IDs). Clear them 989 // the old resources (i.e. renderSurfaces and texture IDs). Clear them
990 // before we destroy the old resource provider. 990 // before we destroy the old resource provider.
991 if (m_rootLayerImpl) { 991 if (m_rootLayerImpl) {
992 clearRenderSurfaces(); 992 clearRenderSurfaces();
993 sendDidLoseOutputSurfaceRecursive(m_rootLayerImpl.get()); 993 sendDidLoseContextRecursive(m_rootLayerImpl.get());
994 } 994 }
995 // Note: order is important here. 995 // Note: order is important here.
996 m_renderer.reset(); 996 m_renderer.reset();
997 m_tileManager.reset(); 997 m_tileManager.reset();
998 m_resourceProvider.reset(); 998 m_resourceProvider.reset();
999 m_outputSurface.reset(); 999 m_context.reset();
1000 1000
1001 if (!outputSurface->bindToClient(this)) 1001 if (!context->bindToClient(this))
1002 return false; 1002 return false;
1003 1003
1004 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out putSurface.get()); 1004 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(con text.get());
1005 if (!resourceProvider) 1005 if (!resourceProvider)
1006 return false; 1006 return false;
1007 1007
1008 if (m_settings.implSidePainting) 1008 if (m_settings.implSidePainting)
1009 m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settin gs.numRasterThreads)); 1009 m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settin gs.numRasterThreads));
1010 1010
1011 if (outputSurface->context3D()) 1011 if (context->context3D())
1012 m_renderer = GLRenderer::create(this, resourceProvider.get()); 1012 m_renderer = GLRenderer::create(this, resourceProvider.get());
1013 else if (outputSurface->softwareDevice()) 1013 else if (context->softwareDevice())
1014 m_renderer = SoftwareRenderer::create(this, resourceProvider.get(), outp utSurface->softwareDevice()); 1014 m_renderer = SoftwareRenderer::create(this, resourceProvider.get(), cont ext->softwareDevice());
1015 if (!m_renderer) 1015 if (!m_renderer)
1016 return false; 1016 return false;
1017 1017
1018 m_resourceProvider = resourceProvider.Pass(); 1018 m_resourceProvider = resourceProvider.Pass();
1019 m_outputSurface = outputSurface.Pass(); 1019 m_context = context.Pass();
1020 1020
1021 if (!m_visible) 1021 if (!m_visible)
1022 m_renderer->setVisible(m_visible); 1022 m_renderer->setVisible(m_visible);
1023 1023
1024 m_client->onCanDrawStateChanged(canDraw()); 1024 m_client->onCanDrawStateChanged(canDraw());
1025 1025
1026 return true; 1026 return true;
1027 } 1027 }
1028 1028
1029 void LayerTreeHostImpl::setContentsTexturesPurged() 1029 void LayerTreeHostImpl::setContentsTexturesPurged()
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
1549 m_client->setNeedsRedrawOnImplThread(); 1549 m_client->setNeedsRedrawOnImplThread();
1550 1550
1551 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers); 1551 setBackgroundTickingEnabled(!m_visible && m_needsAnimateLayers);
1552 } 1552 }
1553 1553
1554 base::TimeDelta LayerTreeHostImpl::lowFrequencyAnimationInterval() const 1554 base::TimeDelta LayerTreeHostImpl::lowFrequencyAnimationInterval() const
1555 { 1555 {
1556 return base::TimeDelta::FromSeconds(1); 1556 return base::TimeDelta::FromSeconds(1);
1557 } 1557 }
1558 1558
1559 void LayerTreeHostImpl::sendDidLoseOutputSurfaceRecursive(LayerImpl* current) 1559 void LayerTreeHostImpl::sendDidLoseContextRecursive(LayerImpl* current)
1560 { 1560 {
1561 DCHECK(current); 1561 DCHECK(current);
1562 current->didLoseOutputSurface(); 1562 current->didLoseContext();
1563 if (current->maskLayer()) 1563 if (current->maskLayer())
1564 sendDidLoseOutputSurfaceRecursive(current->maskLayer()); 1564 sendDidLoseContextRecursive(current->maskLayer());
1565 if (current->replicaLayer()) 1565 if (current->replicaLayer())
1566 sendDidLoseOutputSurfaceRecursive(current->replicaLayer()); 1566 sendDidLoseContextRecursive(current->replicaLayer());
1567 for (size_t i = 0; i < current->children().size(); ++i) 1567 for (size_t i = 0; i < current->children().size(); ++i)
1568 sendDidLoseOutputSurfaceRecursive(current->children()[i]); 1568 sendDidLoseContextRecursive(current->children()[i]);
1569 } 1569 }
1570 1570
1571 static void clearRenderSurfacesOnLayerImplRecursive(LayerImpl* current) 1571 static void clearRenderSurfacesOnLayerImplRecursive(LayerImpl* current)
1572 { 1572 {
1573 DCHECK(current); 1573 DCHECK(current);
1574 for (size_t i = 0; i < current->children().size(); ++i) 1574 for (size_t i = 0; i < current->children().size(); ++i)
1575 clearRenderSurfacesOnLayerImplRecursive(current->children()[i]); 1575 clearRenderSurfacesOnLayerImplRecursive(current->children()[i]);
1576 current->clearRenderSurface(); 1576 current->clearRenderSurface();
1577 } 1577 }
1578 1578
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1632 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController(); 1632 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController();
1633 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); 1633 double monotonicTime = (time - base::TimeTicks()).InSecondsF();
1634 if (scrollbarController && scrollbarController->animate(monotonicTime)) 1634 if (scrollbarController && scrollbarController->animate(monotonicTime))
1635 m_client->setNeedsRedrawOnImplThread(); 1635 m_client->setNeedsRedrawOnImplThread();
1636 1636
1637 for (size_t i = 0; i < layer->children().size(); ++i) 1637 for (size_t i = 0; i < layer->children().size(); ++i)
1638 animateScrollbarsRecursive(layer->children()[i], time); 1638 animateScrollbarsRecursive(layer->children()[i], time);
1639 } 1639 }
1640 1640
1641 } // namespace cc 1641 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698