| 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 |