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

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 11883030: cc: Fix lost context handling when using impl-side painting. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add unit test Created 7 years, 11 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 "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 948 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 m_renderer->setVisible(visible); 959 m_renderer->setVisible(visible);
960 960
961 setBackgroundTickingEnabled(!m_visible && !m_animationRegistrar->active_anim ation_controllers().empty()); 961 setBackgroundTickingEnabled(!m_visible && !m_animationRegistrar->active_anim ation_controllers().empty());
962 } 962 }
963 963
964 bool LayerTreeHostImpl::initializeRenderer(scoped_ptr<OutputSurface> outputSurfa ce) 964 bool LayerTreeHostImpl::initializeRenderer(scoped_ptr<OutputSurface> outputSurfa ce)
965 { 965 {
966 // Since we will create a new resource provider, we cannot continue to use 966 // Since we will create a new resource provider, we cannot continue to use
967 // the old resources (i.e. renderSurfaces and texture IDs). Clear them 967 // the old resources (i.e. renderSurfaces and texture IDs). Clear them
968 // before we destroy the old resource provider. 968 // before we destroy the old resource provider.
969 if (rootLayer()) { 969 if (rootLayer())
970 clearRenderSurfaces(); 970 clearRenderSurfaces();
971 sendDidLoseOutputSurfaceRecursive(rootLayer()); 971 if (activeTree()->RootLayer())
972 } 972 sendDidLoseOutputSurfaceRecursive(activeTree()->RootLayer());
973 if (pendingTree() && pendingTree()->RootLayer())
974 sendDidLoseOutputSurfaceRecursive(pendingTree()->RootLayer());
975
973 // Note: order is important here. 976 // Note: order is important here.
974 m_renderer.reset(); 977 m_renderer.reset();
975 m_tileManager.reset(); 978 m_tileManager.reset();
976 m_resourceProvider.reset(); 979 m_resourceProvider.reset();
977 m_outputSurface.reset(); 980 m_outputSurface.reset();
978 981
979 if (!outputSurface->BindToClient(this)) 982 if (!outputSurface->BindToClient(this))
980 return false; 983 return false;
981 984
982 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out putSurface.get()); 985 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out putSurface.get());
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 } 1642 }
1640 1643
1641 skia::RefPtr<SkPicture> LayerTreeHostImpl::capturePicture() 1644 skia::RefPtr<SkPicture> LayerTreeHostImpl::capturePicture()
1642 { 1645 {
1643 LayerTreeImpl* tree = pendingTree() ? pendingTree() : activeTree(); 1646 LayerTreeImpl* tree = pendingTree() ? pendingTree() : activeTree();
1644 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); 1647 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer());
1645 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); 1648 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>();
1646 } 1649 }
1647 1650
1648 } // namespace cc 1651 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/layer_tree_host_unittest_context.cc » ('j') | cc/layer_tree_host_unittest_context.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698