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 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 | 459 |
460 void LayerTreeHostImpl::FrameData::AppendRenderPass( | 460 void LayerTreeHostImpl::FrameData::AppendRenderPass( |
461 scoped_ptr<RenderPass> render_pass) { | 461 scoped_ptr<RenderPass> render_pass) { |
462 render_passes_by_id[render_pass->id] = render_pass.get(); | 462 render_passes_by_id[render_pass->id] = render_pass.get(); |
463 render_passes.push_back(render_pass.Pass()); | 463 render_passes.push_back(render_pass.Pass()); |
464 } | 464 } |
465 | 465 |
466 static DrawMode GetDrawMode(OutputSurface* output_surface) { | 466 static DrawMode GetDrawMode(OutputSurface* output_surface) { |
467 if (output_surface->ForcedDrawToSoftwareDevice()) { | 467 if (output_surface->ForcedDrawToSoftwareDevice()) { |
468 return DRAW_MODE_RESOURCELESS_SOFTWARE; | 468 return DRAW_MODE_RESOURCELESS_SOFTWARE; |
469 } else if (output_surface->context3d()) { | 469 } else if (output_surface->context_provider()) { |
470 return DRAW_MODE_HARDWARE; | 470 return DRAW_MODE_HARDWARE; |
471 } else { | 471 } else { |
472 DCHECK(output_surface->software_device()); | 472 DCHECK(output_surface->software_device()); |
473 return DRAW_MODE_SOFTWARE; | 473 return DRAW_MODE_SOFTWARE; |
474 } | 474 } |
475 } | 475 } |
476 | 476 |
477 static void AppendQuadsForLayer(RenderPass* target_render_pass, | 477 static void AppendQuadsForLayer(RenderPass* target_render_pass, |
478 LayerImpl* layer, | 478 LayerImpl* layer, |
479 const OcclusionTrackerImpl& occlusion_tracker, | 479 const OcclusionTrackerImpl& occlusion_tracker, |
(...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1567 } | 1567 } |
1568 | 1568 |
1569 void LayerTreeHostImpl::CreateAndSetRenderer( | 1569 void LayerTreeHostImpl::CreateAndSetRenderer( |
1570 OutputSurface* output_surface, | 1570 OutputSurface* output_surface, |
1571 ResourceProvider* resource_provider, | 1571 ResourceProvider* resource_provider, |
1572 bool skip_gl_renderer) { | 1572 bool skip_gl_renderer) { |
1573 DCHECK(!renderer_); | 1573 DCHECK(!renderer_); |
1574 if (output_surface->capabilities().delegated_rendering) { | 1574 if (output_surface->capabilities().delegated_rendering) { |
1575 renderer_ = | 1575 renderer_ = |
1576 DelegatingRenderer::Create(this, output_surface, resource_provider); | 1576 DelegatingRenderer::Create(this, output_surface, resource_provider); |
1577 } else if (output_surface->context3d() && !skip_gl_renderer) { | 1577 } else if (output_surface->context_provider() && !skip_gl_renderer) { |
1578 renderer_ = GLRenderer::Create(this, | 1578 renderer_ = GLRenderer::Create(this, |
1579 output_surface, | 1579 output_surface, |
1580 resource_provider, | 1580 resource_provider, |
1581 settings_.highp_threshold_min, | 1581 settings_.highp_threshold_min, |
1582 settings_.force_direct_layer_drawing); | 1582 settings_.force_direct_layer_drawing); |
1583 } else if (output_surface->software_device()) { | 1583 } else if (output_surface->software_device()) { |
1584 renderer_ = | 1584 renderer_ = |
1585 SoftwareRenderer::Create(this, output_surface, resource_provider); | 1585 SoftwareRenderer::Create(this, output_surface, resource_provider); |
1586 } | 1586 } |
1587 | 1587 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1678 pending_tree_->set_needs_update_draw_properties(); | 1678 pending_tree_->set_needs_update_draw_properties(); |
1679 | 1679 |
1680 return true; | 1680 return true; |
1681 } | 1681 } |
1682 | 1682 |
1683 bool LayerTreeHostImpl::DeferredInitialize( | 1683 bool LayerTreeHostImpl::DeferredInitialize( |
1684 scoped_refptr<ContextProvider> offscreen_context_provider) { | 1684 scoped_refptr<ContextProvider> offscreen_context_provider) { |
1685 DCHECK(output_surface_->capabilities().deferred_gl_initialization); | 1685 DCHECK(output_surface_->capabilities().deferred_gl_initialization); |
1686 DCHECK(settings_.impl_side_painting); | 1686 DCHECK(settings_.impl_side_painting); |
1687 DCHECK(settings_.solid_color_scrollbars); | 1687 DCHECK(settings_.solid_color_scrollbars); |
1688 DCHECK(output_surface_->context3d()); | 1688 DCHECK(output_surface_->context_provider()); |
1689 | 1689 |
1690 ReleaseTreeResources(); | 1690 ReleaseTreeResources(); |
1691 renderer_.reset(); | 1691 renderer_.reset(); |
1692 resource_provider_->InitializeGL(); | 1692 resource_provider_->InitializeGL(); |
1693 bool skip_gl_renderer = false; | 1693 bool skip_gl_renderer = false; |
1694 CreateAndSetRenderer( | 1694 CreateAndSetRenderer( |
1695 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); | 1695 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); |
1696 | 1696 |
1697 bool success = !!renderer_.get(); | 1697 bool success = !!renderer_.get(); |
1698 client_->DidTryInitializeRendererOnImplThread(success, | 1698 client_->DidTryInitializeRendererOnImplThread(success, |
1699 offscreen_context_provider); | 1699 offscreen_context_provider); |
1700 if (success) { | 1700 if (success) { |
1701 EnforceZeroBudget(false); | 1701 EnforceZeroBudget(false); |
1702 client_->SetNeedsCommitOnImplThread(); | 1702 client_->SetNeedsCommitOnImplThread(); |
1703 } | 1703 } |
1704 return success; | 1704 return success; |
1705 } | 1705 } |
1706 | 1706 |
1707 void LayerTreeHostImpl::ReleaseGL() { | 1707 void LayerTreeHostImpl::ReleaseGL() { |
1708 DCHECK(output_surface_->capabilities().deferred_gl_initialization); | 1708 DCHECK(output_surface_->capabilities().deferred_gl_initialization); |
1709 DCHECK(settings_.impl_side_painting); | 1709 DCHECK(settings_.impl_side_painting); |
1710 DCHECK(settings_.solid_color_scrollbars); | 1710 DCHECK(settings_.solid_color_scrollbars); |
1711 DCHECK(output_surface_->context3d()); | 1711 DCHECK(output_surface_->context_provider()); |
1712 | 1712 |
1713 ReleaseTreeResources(); | 1713 ReleaseTreeResources(); |
1714 renderer_.reset(); | 1714 renderer_.reset(); |
1715 tile_manager_.reset(); | 1715 tile_manager_.reset(); |
1716 resource_provider_->InitializeSoftware(); | 1716 resource_provider_->InitializeSoftware(); |
1717 | 1717 |
1718 bool skip_gl_renderer = true; | 1718 bool skip_gl_renderer = true; |
1719 CreateAndSetRenderer( | 1719 CreateAndSetRenderer( |
1720 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); | 1720 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); |
1721 DCHECK(renderer_); | 1721 DCHECK(renderer_); |
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2520 | 2520 |
2521 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( | 2521 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( |
2522 UIResourceId uid) const { | 2522 UIResourceId uid) const { |
2523 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); | 2523 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); |
2524 if (iter != ui_resource_map_.end()) | 2524 if (iter != ui_resource_map_.end()) |
2525 return iter->second; | 2525 return iter->second; |
2526 return 0; | 2526 return 0; |
2527 } | 2527 } |
2528 | 2528 |
2529 } // namespace cc | 2529 } // namespace cc |
OLD | NEW |