| 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 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 1726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1737 // trees need another update to generate new ones. | 1737 // trees need another update to generate new ones. |
| 1738 active_tree_->set_needs_update_draw_properties(); | 1738 active_tree_->set_needs_update_draw_properties(); |
| 1739 if (pending_tree_) | 1739 if (pending_tree_) |
| 1740 pending_tree_->set_needs_update_draw_properties(); | 1740 pending_tree_->set_needs_update_draw_properties(); |
| 1741 } | 1741 } |
| 1742 } | 1742 } |
| 1743 | 1743 |
| 1744 void LayerTreeHostImpl::CreateAndSetTileManager( | 1744 void LayerTreeHostImpl::CreateAndSetTileManager( |
| 1745 ResourceProvider* resource_provider, | 1745 ResourceProvider* resource_provider, |
| 1746 ContextProvider* context_provider, | 1746 ContextProvider* context_provider, |
| 1747 bool using_map_image) { | 1747 bool using_map_image, |
| 1748 bool allow_rasterize_on_demand) { |
| 1748 DCHECK(settings_.impl_side_painting); | 1749 DCHECK(settings_.impl_side_painting); |
| 1749 DCHECK(resource_provider); | 1750 DCHECK(resource_provider); |
| 1750 tile_manager_ = | 1751 tile_manager_ = |
| 1751 TileManager::Create(this, | 1752 TileManager::Create(this, |
| 1752 resource_provider, | 1753 resource_provider, |
| 1753 context_provider, | 1754 context_provider, |
| 1754 rendering_stats_instrumentation_, | 1755 rendering_stats_instrumentation_, |
| 1755 using_map_image, | 1756 using_map_image, |
| 1757 allow_rasterize_on_demand, |
| 1756 GetMaxTransferBufferUsageBytes(context_provider), | 1758 GetMaxTransferBufferUsageBytes(context_provider), |
| 1757 GetMaxRasterTasksUsageBytes(context_provider), | 1759 GetMaxRasterTasksUsageBytes(context_provider), |
| 1758 GetMapImageTextureTarget(context_provider)); | 1760 GetMapImageTextureTarget(context_provider)); |
| 1759 | 1761 |
| 1760 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); | 1762 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); |
| 1761 need_to_update_visible_tiles_before_draw_ = false; | 1763 need_to_update_visible_tiles_before_draw_ = false; |
| 1762 } | 1764 } |
| 1763 | 1765 |
| 1764 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { | 1766 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { |
| 1765 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); | 1767 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1798 EnforceZeroBudget(true); | 1800 EnforceZeroBudget(true); |
| 1799 | 1801 |
| 1800 bool skip_gl_renderer = false; | 1802 bool skip_gl_renderer = false; |
| 1801 CreateAndSetRenderer( | 1803 CreateAndSetRenderer( |
| 1802 output_surface.get(), resource_provider.get(), skip_gl_renderer); | 1804 output_surface.get(), resource_provider.get(), skip_gl_renderer); |
| 1803 | 1805 |
| 1804 if (!renderer_) | 1806 if (!renderer_) |
| 1805 return false; | 1807 return false; |
| 1806 | 1808 |
| 1807 if (settings_.impl_side_painting) { | 1809 if (settings_.impl_side_painting) { |
| 1808 CreateAndSetTileManager(resource_provider.get(), | 1810 CreateAndSetTileManager( |
| 1809 output_surface->context_provider().get(), | 1811 resource_provider.get(), |
| 1810 GetRendererCapabilities().using_map_image); | 1812 output_surface->context_provider().get(), |
| 1813 GetRendererCapabilities().using_map_image, |
| 1814 GetRendererCapabilities().allow_rasterize_on_demand); |
| 1811 } | 1815 } |
| 1812 | 1816 |
| 1813 // Setup BeginImplFrameEmulation if it's not supported natively | 1817 // Setup BeginImplFrameEmulation if it's not supported natively |
| 1814 if (!settings_.begin_impl_frame_scheduling_enabled) { | 1818 if (!settings_.begin_impl_frame_scheduling_enabled) { |
| 1815 const base::TimeDelta display_refresh_interval = | 1819 const base::TimeDelta display_refresh_interval = |
| 1816 base::TimeDelta::FromMicroseconds( | 1820 base::TimeDelta::FromMicroseconds( |
| 1817 base::Time::kMicrosecondsPerSecond / | 1821 base::Time::kMicrosecondsPerSecond / |
| 1818 settings_.refresh_rate); | 1822 settings_.refresh_rate); |
| 1819 | 1823 |
| 1820 output_surface->InitializeBeginImplFrameEmulation( | 1824 output_surface->InitializeBeginImplFrameEmulation( |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1905 resource_provider_->InitializeSoftware(); | 1909 resource_provider_->InitializeSoftware(); |
| 1906 | 1910 |
| 1907 bool skip_gl_renderer = true; | 1911 bool skip_gl_renderer = true; |
| 1908 CreateAndSetRenderer( | 1912 CreateAndSetRenderer( |
| 1909 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); | 1913 output_surface_.get(), resource_provider_.get(), skip_gl_renderer); |
| 1910 DCHECK(renderer_); | 1914 DCHECK(renderer_); |
| 1911 | 1915 |
| 1912 EnforceZeroBudget(true); | 1916 EnforceZeroBudget(true); |
| 1913 CreateAndSetTileManager(resource_provider_.get(), | 1917 CreateAndSetTileManager(resource_provider_.get(), |
| 1914 NULL, | 1918 NULL, |
| 1915 GetRendererCapabilities().using_map_image); | 1919 GetRendererCapabilities().using_map_image, |
| 1920 GetRendererCapabilities().allow_rasterize_on_demand); |
| 1916 DCHECK(tile_manager_); | 1921 DCHECK(tile_manager_); |
| 1917 | 1922 |
| 1918 SetOffscreenContextProvider(NULL); | 1923 SetOffscreenContextProvider(NULL); |
| 1919 | 1924 |
| 1920 client_->SetNeedsCommitOnImplThread(); | 1925 client_->SetNeedsCommitOnImplThread(); |
| 1921 } | 1926 } |
| 1922 | 1927 |
| 1923 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { | 1928 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { |
| 1924 if (device_viewport_size == device_viewport_size_) | 1929 if (device_viewport_size == device_viewport_size_) |
| 1925 return; | 1930 return; |
| (...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2987 swap_promise_monitor_.erase(monitor); | 2992 swap_promise_monitor_.erase(monitor); |
| 2988 } | 2993 } |
| 2989 | 2994 |
| 2990 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { | 2995 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { |
| 2991 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); | 2996 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); |
| 2992 for (; it != swap_promise_monitor_.end(); it++) | 2997 for (; it != swap_promise_monitor_.end(); it++) |
| 2993 (*it)->OnSetNeedsRedrawOnImpl(); | 2998 (*it)->OnSetNeedsRedrawOnImpl(); |
| 2994 } | 2999 } |
| 2995 | 3000 |
| 2996 } // namespace cc | 3001 } // namespace cc |
| OLD | NEW |