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 1567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1578 } | 1578 } |
1579 | 1579 |
1580 if (renderer_) { | 1580 if (renderer_) { |
1581 renderer_->SetVisible(visible_); | 1581 renderer_->SetVisible(visible_); |
1582 SetFullRootLayerDamage(); | 1582 SetFullRootLayerDamage(); |
1583 } | 1583 } |
1584 } | 1584 } |
1585 | 1585 |
1586 void LayerTreeHostImpl::CreateAndSetTileManager( | 1586 void LayerTreeHostImpl::CreateAndSetTileManager( |
1587 ResourceProvider* resource_provider, | 1587 ResourceProvider* resource_provider, |
1588 bool using_map_image) { | 1588 bool using_map_image, |
| 1589 ContextProvider* context_provider) { |
1589 DCHECK(settings_.impl_side_painting); | 1590 DCHECK(settings_.impl_side_painting); |
1590 DCHECK(resource_provider); | 1591 DCHECK(resource_provider); |
1591 tile_manager_ = TileManager::Create(this, | 1592 tile_manager_ = TileManager::Create(this, |
1592 resource_provider, | 1593 resource_provider, |
1593 settings_.num_raster_threads, | 1594 settings_.num_raster_threads, |
1594 rendering_stats_instrumentation_, | 1595 rendering_stats_instrumentation_, |
1595 using_map_image); | 1596 using_map_image, |
| 1597 context_provider); |
| 1598 |
1596 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); | 1599 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); |
1597 need_to_update_visible_tiles_before_draw_ = false; | 1600 need_to_update_visible_tiles_before_draw_ = false; |
1598 } | 1601 } |
1599 | 1602 |
1600 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { | 1603 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { |
1601 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); | 1604 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); |
1602 } | 1605 } |
1603 | 1606 |
1604 bool LayerTreeHostImpl::InitializeRenderer( | 1607 bool LayerTreeHostImpl::InitializeRenderer( |
1605 scoped_ptr<OutputSurface> output_surface) { | 1608 scoped_ptr<OutputSurface> output_surface) { |
(...skipping 23 matching lines...) Expand all Loading... |
1629 | 1632 |
1630 bool skip_gl_renderer = false; | 1633 bool skip_gl_renderer = false; |
1631 CreateAndSetRenderer( | 1634 CreateAndSetRenderer( |
1632 output_surface.get(), resource_provider.get(), skip_gl_renderer); | 1635 output_surface.get(), resource_provider.get(), skip_gl_renderer); |
1633 | 1636 |
1634 if (!renderer_) | 1637 if (!renderer_) |
1635 return false; | 1638 return false; |
1636 | 1639 |
1637 if (settings_.impl_side_painting) { | 1640 if (settings_.impl_side_painting) { |
1638 CreateAndSetTileManager(resource_provider.get(), | 1641 CreateAndSetTileManager(resource_provider.get(), |
1639 GetRendererCapabilities().using_map_image); | 1642 GetRendererCapabilities().using_map_image, |
| 1643 output_surface->context_provider().get()); |
1640 } | 1644 } |
1641 | 1645 |
1642 // Setup BeginFrameEmulation if it's not supported natively | 1646 // Setup BeginFrameEmulation if it's not supported natively |
1643 if (!settings_.begin_frame_scheduling_enabled) { | 1647 if (!settings_.begin_frame_scheduling_enabled) { |
1644 const base::TimeDelta display_refresh_interval = | 1648 const base::TimeDelta display_refresh_interval = |
1645 base::TimeDelta::FromMicroseconds( | 1649 base::TimeDelta::FromMicroseconds( |
1646 base::Time::kMicrosecondsPerSecond / | 1650 base::Time::kMicrosecondsPerSecond / |
1647 settings_.refresh_rate); | 1651 settings_.refresh_rate); |
1648 | 1652 |
1649 output_surface->InitializeBeginFrameEmulation( | 1653 output_surface->InitializeBeginFrameEmulation( |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1741 tile_manager_.reset(); | 1745 tile_manager_.reset(); |
1742 resource_provider_->InitializeSoftware(); | 1746 resource_provider_->InitializeSoftware(); |
1743 | 1747 |
1744 bool skip_gl_renderer = true; | 1748 bool skip_gl_renderer = true; |
1745 CreateAndSetRenderer( | 1749 CreateAndSetRenderer( |
1746 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); | 1750 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); |
1747 DCHECK(renderer_); | 1751 DCHECK(renderer_); |
1748 | 1752 |
1749 EnforceZeroBudget(true); | 1753 EnforceZeroBudget(true); |
1750 CreateAndSetTileManager(resource_provider_.get(), | 1754 CreateAndSetTileManager(resource_provider_.get(), |
1751 GetRendererCapabilities().using_map_image); | 1755 GetRendererCapabilities().using_map_image, |
| 1756 NULL); |
| 1757 |
1752 DCHECK(tile_manager_); | 1758 DCHECK(tile_manager_); |
1753 | 1759 |
1754 SetOffscreenContextProvider(NULL); | 1760 SetOffscreenContextProvider(NULL); |
1755 | 1761 |
1756 client_->SetNeedsCommitOnImplThread(); | 1762 client_->SetNeedsCommitOnImplThread(); |
1757 } | 1763 } |
1758 | 1764 |
1759 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) { | 1765 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) { |
1760 if (device_viewport_size == device_viewport_size_) | 1766 if (device_viewport_size == device_viewport_size_) |
1761 return; | 1767 return; |
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2568 | 2574 |
2569 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( | 2575 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( |
2570 UIResourceId uid) const { | 2576 UIResourceId uid) const { |
2571 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); | 2577 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); |
2572 if (iter != ui_resource_map_.end()) | 2578 if (iter != ui_resource_map_.end()) |
2573 return iter->second; | 2579 return iter->second; |
2574 return 0; | 2580 return 0; |
2575 } | 2581 } |
2576 | 2582 |
2577 } // namespace cc | 2583 } // namespace cc |
OLD | NEW |