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 1588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1599 } | 1599 } |
1600 | 1600 |
1601 if (renderer_) { | 1601 if (renderer_) { |
1602 renderer_->SetVisible(visible_); | 1602 renderer_->SetVisible(visible_); |
1603 SetFullRootLayerDamage(); | 1603 SetFullRootLayerDamage(); |
1604 } | 1604 } |
1605 } | 1605 } |
1606 | 1606 |
1607 void LayerTreeHostImpl::CreateAndSetTileManager( | 1607 void LayerTreeHostImpl::CreateAndSetTileManager( |
1608 ResourceProvider* resource_provider, | 1608 ResourceProvider* resource_provider, |
1609 bool using_map_image) { | 1609 bool using_map_image, |
| 1610 size_t max_transfer_buffer_usage_bytes) { |
1610 DCHECK(settings_.impl_side_painting); | 1611 DCHECK(settings_.impl_side_painting); |
1611 DCHECK(resource_provider); | 1612 DCHECK(resource_provider); |
1612 tile_manager_ = TileManager::Create(this, | 1613 tile_manager_ = TileManager::Create( |
1613 resource_provider, | 1614 this, |
1614 settings_.num_raster_threads, | 1615 resource_provider, |
1615 rendering_stats_instrumentation_, | 1616 settings_.num_raster_threads, |
1616 using_map_image); | 1617 rendering_stats_instrumentation_, |
| 1618 using_map_image, |
| 1619 max_transfer_buffer_usage_bytes); |
| 1620 |
1617 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); | 1621 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); |
1618 need_to_update_visible_tiles_before_draw_ = false; | 1622 need_to_update_visible_tiles_before_draw_ = false; |
1619 } | 1623 } |
1620 | 1624 |
1621 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { | 1625 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { |
1622 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); | 1626 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); |
1623 } | 1627 } |
1624 | 1628 |
1625 bool LayerTreeHostImpl::InitializeRenderer( | 1629 bool LayerTreeHostImpl::InitializeRenderer( |
1626 scoped_ptr<OutputSurface> output_surface) { | 1630 scoped_ptr<OutputSurface> output_surface) { |
(...skipping 22 matching lines...) Expand all Loading... |
1649 EnforceZeroBudget(true); | 1653 EnforceZeroBudget(true); |
1650 | 1654 |
1651 bool skip_gl_renderer = false; | 1655 bool skip_gl_renderer = false; |
1652 CreateAndSetRenderer( | 1656 CreateAndSetRenderer( |
1653 output_surface.get(), resource_provider.get(), skip_gl_renderer); | 1657 output_surface.get(), resource_provider.get(), skip_gl_renderer); |
1654 | 1658 |
1655 if (!renderer_) | 1659 if (!renderer_) |
1656 return false; | 1660 return false; |
1657 | 1661 |
1658 if (settings_.impl_side_painting) { | 1662 if (settings_.impl_side_painting) { |
1659 CreateAndSetTileManager(resource_provider.get(), | 1663 CreateAndSetTileManager( |
1660 GetRendererCapabilities().using_map_image); | 1664 resource_provider.get(), |
| 1665 GetRendererCapabilities().using_map_image, |
| 1666 output_surface->capabilities().max_transfer_buffer_usage_bytes); |
1661 } | 1667 } |
1662 | 1668 |
1663 // Setup BeginFrameEmulation if it's not supported natively | 1669 // Setup BeginFrameEmulation if it's not supported natively |
1664 if (!settings_.begin_frame_scheduling_enabled) { | 1670 if (!settings_.begin_frame_scheduling_enabled) { |
1665 const base::TimeDelta display_refresh_interval = | 1671 const base::TimeDelta display_refresh_interval = |
1666 base::TimeDelta::FromMicroseconds( | 1672 base::TimeDelta::FromMicroseconds( |
1667 base::Time::kMicrosecondsPerSecond / | 1673 base::Time::kMicrosecondsPerSecond / |
1668 settings_.refresh_rate); | 1674 settings_.refresh_rate); |
1669 | 1675 |
1670 output_surface->InitializeBeginFrameEmulation( | 1676 output_surface->InitializeBeginFrameEmulation( |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 tile_manager_.reset(); | 1734 tile_manager_.reset(); |
1729 resource_provider_->InitializeSoftware(); | 1735 resource_provider_->InitializeSoftware(); |
1730 | 1736 |
1731 bool skip_gl_renderer = true; | 1737 bool skip_gl_renderer = true; |
1732 CreateAndSetRenderer( | 1738 CreateAndSetRenderer( |
1733 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); | 1739 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); |
1734 DCHECK(renderer_); | 1740 DCHECK(renderer_); |
1735 | 1741 |
1736 EnforceZeroBudget(true); | 1742 EnforceZeroBudget(true); |
1737 CreateAndSetTileManager(resource_provider_.get(), | 1743 CreateAndSetTileManager(resource_provider_.get(), |
1738 GetRendererCapabilities().using_map_image); | 1744 GetRendererCapabilities().using_map_image, |
| 1745 OutputSurface::kDefaultMaxTransferBufferUsageBytes); |
1739 DCHECK(tile_manager_); | 1746 DCHECK(tile_manager_); |
1740 | 1747 |
1741 bool success = true; | 1748 bool success = true; |
1742 client_->DidTryInitializeRendererOnImplThread( | 1749 client_->DidTryInitializeRendererOnImplThread( |
1743 success, scoped_refptr<ContextProvider>()); | 1750 success, scoped_refptr<ContextProvider>()); |
1744 client_->SetNeedsCommitOnImplThread(); | 1751 client_->SetNeedsCommitOnImplThread(); |
1745 } | 1752 } |
1746 | 1753 |
1747 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) { | 1754 void LayerTreeHostImpl::SetViewportSize(gfx::Size device_viewport_size) { |
1748 if (device_viewport_size == device_viewport_size_) | 1755 if (device_viewport_size == device_viewport_size_) |
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2535 | 2542 |
2536 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( | 2543 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( |
2537 UIResourceId uid) const { | 2544 UIResourceId uid) const { |
2538 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); | 2545 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); |
2539 if (iter != ui_resource_map_.end()) | 2546 if (iter != ui_resource_map_.end()) |
2540 return iter->second; | 2547 return iter->second; |
2541 return 0; | 2548 return 0; |
2542 } | 2549 } |
2543 | 2550 |
2544 } // namespace cc | 2551 } // namespace cc |
OLD | NEW |