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

Unified Diff: cc/delegated_renderer_layer_impl.cc

Issue 12328118: cc: DelegatedRendererLayer creates a ChildId with the ResourceProvider (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/delegated_renderer_layer_impl.h ('k') | cc/layer_tree_host_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/delegated_renderer_layer_impl.cc
diff --git a/cc/delegated_renderer_layer_impl.cc b/cc/delegated_renderer_layer_impl.cc
index 483a256fc96831e60cbd868a24763e7b0b0b6e81..85920f326f54d23008260febcc045e8443e9eda7 100644
--- a/cc/delegated_renderer_layer_impl.cc
+++ b/cc/delegated_renderer_layer_impl.cc
@@ -5,6 +5,7 @@
#include "cc/delegated_renderer_layer_impl.h"
#include "cc/append_quads_data.h"
+#include "cc/layer_tree_impl.h"
#include "cc/math_util.h"
#include "cc/quad_sink.h"
#include "cc/render_pass_draw_quad.h"
@@ -14,11 +15,13 @@ namespace cc {
DelegatedRendererLayerImpl::DelegatedRendererLayerImpl(
LayerTreeImpl* tree_impl, int id)
- : LayerImpl(tree_impl, id) {
+ : LayerImpl(tree_impl, id),
+ child_id_(0) {
}
DelegatedRendererLayerImpl::~DelegatedRendererLayerImpl() {
ClearRenderPasses();
+ ClearChildId();
}
bool DelegatedRendererLayerImpl::hasDelegatedContent() const {
@@ -60,13 +63,14 @@ void DelegatedRendererLayerImpl::ClearRenderPasses() {
render_passes_in_draw_order_.clear();
}
-scoped_ptr<LayerImpl> DelegatedRendererLayerImpl::createLayerImpl(LayerTreeImpl* treeImpl)
-{
- return DelegatedRendererLayerImpl::create(treeImpl, id()).PassAs<LayerImpl>();
+scoped_ptr<LayerImpl> DelegatedRendererLayerImpl::createLayerImpl(
+ LayerTreeImpl* treeImpl) {
+ return DelegatedRendererLayerImpl::create(treeImpl, id()).PassAs<LayerImpl>();
}
void DelegatedRendererLayerImpl::didLoseOutputSurface() {
ClearRenderPasses();
+ ClearChildId();
}
static inline int IndexToId(int index) { return index + 1; }
@@ -228,4 +232,21 @@ const char* DelegatedRendererLayerImpl::layerTypeAsString() const {
return "DelegatedRendererLayer";
}
+void DelegatedRendererLayerImpl::CreateChildIdIfNeeded() {
+ if (child_id_)
+ return;
+
+ ResourceProvider* resource_provider = layerTreeImpl()->resource_provider();
+ child_id_ = resource_provider->createChild();
+}
+
+void DelegatedRendererLayerImpl::ClearChildId() {
+ if (!child_id_)
+ return;
+
+ ResourceProvider* resource_provider = layerTreeImpl()->resource_provider();
+ resource_provider->destroyChild(child_id_);
+ child_id_ = 0;
+}
+
} // namespace cc
« no previous file with comments | « cc/delegated_renderer_layer_impl.h ('k') | cc/layer_tree_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698