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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 20185002: ContextProvider in OutputSurface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: contextprovider: don't access Context3d() in OutputSurface contructors, it's not bound yet Created 7 years, 4 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
« no previous file with comments | « cc/test/pixel_test_output_surface.h ('k') | cc/trees/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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/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/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 461
462 void LayerTreeHostImpl::FrameData::AppendRenderPass( 462 void LayerTreeHostImpl::FrameData::AppendRenderPass(
463 scoped_ptr<RenderPass> render_pass) { 463 scoped_ptr<RenderPass> render_pass) {
464 render_passes_by_id[render_pass->id] = render_pass.get(); 464 render_passes_by_id[render_pass->id] = render_pass.get();
465 render_passes.push_back(render_pass.Pass()); 465 render_passes.push_back(render_pass.Pass());
466 } 466 }
467 467
468 static DrawMode GetDrawMode(OutputSurface* output_surface) { 468 static DrawMode GetDrawMode(OutputSurface* output_surface) {
469 if (output_surface->ForcedDrawToSoftwareDevice()) { 469 if (output_surface->ForcedDrawToSoftwareDevice()) {
470 return DRAW_MODE_RESOURCELESS_SOFTWARE; 470 return DRAW_MODE_RESOURCELESS_SOFTWARE;
471 } else if (output_surface->context3d()) { 471 } else if (output_surface->context_provider()) {
472 return DRAW_MODE_HARDWARE; 472 return DRAW_MODE_HARDWARE;
473 } else { 473 } else {
474 DCHECK(output_surface->software_device()); 474 DCHECK(output_surface->software_device());
475 return DRAW_MODE_SOFTWARE; 475 return DRAW_MODE_SOFTWARE;
476 } 476 }
477 } 477 }
478 478
479 static void AppendQuadsForLayer(RenderPass* target_render_pass, 479 static void AppendQuadsForLayer(RenderPass* target_render_pass,
480 LayerImpl* layer, 480 LayerImpl* layer,
481 const OcclusionTrackerImpl& occlusion_tracker, 481 const OcclusionTrackerImpl& occlusion_tracker,
(...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after
1569 } 1569 }
1570 1570
1571 void LayerTreeHostImpl::CreateAndSetRenderer( 1571 void LayerTreeHostImpl::CreateAndSetRenderer(
1572 OutputSurface* output_surface, 1572 OutputSurface* output_surface,
1573 ResourceProvider* resource_provider, 1573 ResourceProvider* resource_provider,
1574 bool skip_gl_renderer) { 1574 bool skip_gl_renderer) {
1575 DCHECK(!renderer_); 1575 DCHECK(!renderer_);
1576 if (output_surface->capabilities().delegated_rendering) { 1576 if (output_surface->capabilities().delegated_rendering) {
1577 renderer_ = 1577 renderer_ =
1578 DelegatingRenderer::Create(this, output_surface, resource_provider); 1578 DelegatingRenderer::Create(this, output_surface, resource_provider);
1579 } else if (output_surface->context3d() && !skip_gl_renderer) { 1579 } else if (output_surface->context_provider() && !skip_gl_renderer) {
1580 renderer_ = GLRenderer::Create(this, 1580 renderer_ = GLRenderer::Create(this,
1581 output_surface, 1581 output_surface,
1582 resource_provider, 1582 resource_provider,
1583 settings_.highp_threshold_min, 1583 settings_.highp_threshold_min,
1584 settings_.force_direct_layer_drawing); 1584 settings_.force_direct_layer_drawing);
1585 } else if (output_surface->software_device()) { 1585 } else if (output_surface->software_device()) {
1586 renderer_ = 1586 renderer_ =
1587 SoftwareRenderer::Create(this, output_surface, resource_provider); 1587 SoftwareRenderer::Create(this, output_surface, resource_provider);
1588 } 1588 }
1589 1589
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1680 pending_tree_->set_needs_update_draw_properties(); 1680 pending_tree_->set_needs_update_draw_properties();
1681 1681
1682 return true; 1682 return true;
1683 } 1683 }
1684 1684
1685 bool LayerTreeHostImpl::DeferredInitialize( 1685 bool LayerTreeHostImpl::DeferredInitialize(
1686 scoped_refptr<ContextProvider> offscreen_context_provider) { 1686 scoped_refptr<ContextProvider> offscreen_context_provider) {
1687 DCHECK(output_surface_->capabilities().deferred_gl_initialization); 1687 DCHECK(output_surface_->capabilities().deferred_gl_initialization);
1688 DCHECK(settings_.impl_side_painting); 1688 DCHECK(settings_.impl_side_painting);
1689 DCHECK(settings_.solid_color_scrollbars); 1689 DCHECK(settings_.solid_color_scrollbars);
1690 DCHECK(output_surface_->context3d()); 1690 DCHECK(output_surface_->context_provider());
1691 1691
1692 ReleaseTreeResources(); 1692 ReleaseTreeResources();
1693 renderer_.reset(); 1693 renderer_.reset();
1694 resource_provider_->InitializeGL(); 1694 resource_provider_->InitializeGL();
1695 bool skip_gl_renderer = false; 1695 bool skip_gl_renderer = false;
1696 CreateAndSetRenderer( 1696 CreateAndSetRenderer(
1697 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); 1697 output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
1698 1698
1699 bool success = !!renderer_.get(); 1699 bool success = !!renderer_.get();
1700 client_->DidTryInitializeRendererOnImplThread(success, 1700 client_->DidTryInitializeRendererOnImplThread(success,
1701 offscreen_context_provider); 1701 offscreen_context_provider);
1702 if (success) { 1702 if (success) {
1703 EnforceZeroBudget(false); 1703 EnforceZeroBudget(false);
1704 client_->SetNeedsCommitOnImplThread(); 1704 client_->SetNeedsCommitOnImplThread();
1705 } 1705 }
1706 return success; 1706 return success;
1707 } 1707 }
1708 1708
1709 void LayerTreeHostImpl::ReleaseGL() { 1709 void LayerTreeHostImpl::ReleaseGL() {
1710 DCHECK(output_surface_->capabilities().deferred_gl_initialization); 1710 DCHECK(output_surface_->capabilities().deferred_gl_initialization);
1711 DCHECK(settings_.impl_side_painting); 1711 DCHECK(settings_.impl_side_painting);
1712 DCHECK(settings_.solid_color_scrollbars); 1712 DCHECK(settings_.solid_color_scrollbars);
1713 DCHECK(output_surface_->context3d()); 1713 DCHECK(output_surface_->context_provider());
1714 1714
1715 ReleaseTreeResources(); 1715 ReleaseTreeResources();
1716 renderer_.reset(); 1716 renderer_.reset();
1717 tile_manager_.reset(); 1717 tile_manager_.reset();
1718 resource_provider_->InitializeSoftware(); 1718 resource_provider_->InitializeSoftware();
1719 1719
1720 bool skip_gl_renderer = true; 1720 bool skip_gl_renderer = true;
1721 CreateAndSetRenderer( 1721 CreateAndSetRenderer(
1722 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); 1722 output_surface_.get(), resource_provider_.get(), skip_gl_renderer);
1723 DCHECK(renderer_); 1723 DCHECK(renderer_);
(...skipping 800 matching lines...) Expand 10 before | Expand all | Expand 10 after
2524 2524
2525 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( 2525 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource(
2526 UIResourceId uid) const { 2526 UIResourceId uid) const {
2527 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); 2527 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid);
2528 if (iter != ui_resource_map_.end()) 2528 if (iter != ui_resource_map_.end())
2529 return iter->second; 2529 return iter->second;
2530 return 0; 2530 return 0;
2531 } 2531 }
2532 2532
2533 } // namespace cc 2533 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/pixel_test_output_surface.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698