OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |