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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 286953008: cc: Allow DeferredInitialize to use DelegatingRenderer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: No call to self constructor in initializer Created 6 years, 7 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
Index: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 2294bb5885caeaf89ae838229ced63c8082bd76b..44da1048eb5b92d11e3293b9072adcd354f60d93 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -573,7 +573,10 @@ static DrawMode GetDrawMode(OutputSurface* output_surface) {
return DRAW_MODE_HARDWARE;
} else {
DCHECK_EQ(!output_surface->software_device(),
- output_surface->capabilities().delegated_rendering);
+ output_surface->capabilities().delegated_rendering &&
+ !output_surface->capabilities().deferred_gl_initialization)
+ << output_surface->capabilities().delegated_rendering << " "
+ << output_surface->capabilities().deferred_gl_initialization;
return DRAW_MODE_SOFTWARE;
}
}
@@ -1823,13 +1826,12 @@ void LayerTreeHostImpl::ReleaseTreeResources() {
void LayerTreeHostImpl::CreateAndSetRenderer(
OutputSurface* output_surface,
- ResourceProvider* resource_provider,
- bool skip_gl_renderer) {
+ ResourceProvider* resource_provider) {
DCHECK(!renderer_);
if (output_surface->capabilities().delegated_rendering) {
renderer_ = DelegatingRenderer::Create(
this, &settings_, output_surface, resource_provider);
- } else if (output_surface->context_provider() && !skip_gl_renderer) {
+ } else if (output_surface->context_provider()) {
renderer_ = GLRenderer::Create(this,
&settings_,
output_surface,
@@ -1956,9 +1958,7 @@ bool LayerTreeHostImpl::InitializeRenderer(
if (output_surface->capabilities().deferred_gl_initialization)
EnforceZeroBudget(true);
- bool skip_gl_renderer = false;
- CreateAndSetRenderer(
- output_surface.get(), resource_provider.get(), skip_gl_renderer);
+ CreateAndSetRenderer(output_surface.get(), resource_provider.get());
transfer_buffer_memory_limit_ =
GetMaxTransferBufferUsageBytes(output_surface->context_provider().get());
@@ -2026,9 +2026,7 @@ void LayerTreeHostImpl::DeferredInitialize() {
resource_provider_->InitializeGL();
- bool skip_gl_renderer = false;
- CreateAndSetRenderer(
- output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
+ CreateAndSetRenderer(output_surface_.get(), resource_provider_.get());
EnforceZeroBudget(false);
client_->SetNeedsCommitOnImplThread();
@@ -2048,9 +2046,8 @@ void LayerTreeHostImpl::ReleaseGL() {
staging_resource_pool_.reset();
resource_provider_->InitializeSoftware();
- bool skip_gl_renderer = true;
- CreateAndSetRenderer(
- output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
+ output_surface_->ReleaseContextProvider();
+ CreateAndSetRenderer(output_surface_.get(), resource_provider_.get());
EnforceZeroBudget(true);
DCHECK(GetRendererCapabilities().using_map_image);

Powered by Google App Engine
This is Rietveld 408576698