| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1720 // ReleaseResources has set needs update draw properties so that the | 1720 // ReleaseResources has set needs update draw properties so that the |
| 1721 // new tiling gets the appropriate resolution set in ManageTilings. | 1721 // new tiling gets the appropriate resolution set in ManageTilings. |
| 1722 EXPECT_TRUE(host_impl_.active_tree()->needs_update_draw_properties()); | 1722 EXPECT_TRUE(host_impl_.active_tree()->needs_update_draw_properties()); |
| 1723 host_impl_.active_tree()->UpdateDrawProperties(); | 1723 host_impl_.active_tree()->UpdateDrawProperties(); |
| 1724 PictureLayerTiling* high_res = | 1724 PictureLayerTiling* high_res = |
| 1725 active_layer_->tilings()->TilingAtScale(new_scale); | 1725 active_layer_->tilings()->TilingAtScale(new_scale); |
| 1726 ASSERT_TRUE(!!high_res); | 1726 ASSERT_TRUE(!!high_res); |
| 1727 EXPECT_EQ(HIGH_RESOLUTION, high_res->resolution()); | 1727 EXPECT_EQ(HIGH_RESOLUTION, high_res->resolution()); |
| 1728 } | 1728 } |
| 1729 | 1729 |
| 1730 TEST_F(PictureLayerImplTest, SyncTilingAfterGpuRasterizationToggles) { |
| 1731 SetupDefaultTrees(gfx::Size(10, 10)); |
| 1732 |
| 1733 const float kScale = 1.f; |
| 1734 pending_layer_->AddTiling(kScale); |
| 1735 EXPECT_TRUE(pending_layer_->tilings()->TilingAtScale(kScale)); |
| 1736 EXPECT_TRUE(active_layer_->tilings()->TilingAtScale(kScale)); |
| 1737 |
| 1738 // Gpu rasterization is disabled by default. |
| 1739 EXPECT_FALSE(host_impl_.use_gpu_rasterization()); |
| 1740 // Toggling the gpu rasterization clears all tilings on both trees. |
| 1741 host_impl_.SetUseGpuRasterization(true); |
| 1742 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| 1743 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); |
| 1744 |
| 1745 // Make sure that we can still add tiling to the pending layer, |
| 1746 // that gets synced to the active layer. |
| 1747 pending_layer_->AddTiling(kScale); |
| 1748 EXPECT_TRUE(pending_layer_->tilings()->TilingAtScale(kScale)); |
| 1749 EXPECT_TRUE(active_layer_->tilings()->TilingAtScale(kScale)); |
| 1750 |
| 1751 // Toggling the gpu rasterization clears all tilings on both trees. |
| 1752 EXPECT_TRUE(host_impl_.use_gpu_rasterization()); |
| 1753 host_impl_.SetUseGpuRasterization(false); |
| 1754 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| 1755 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); |
| 1756 } |
| 1757 |
| 1730 TEST_F(PictureLayerImplTest, HighResCreatedWhenBoundsShrink) { | 1758 TEST_F(PictureLayerImplTest, HighResCreatedWhenBoundsShrink) { |
| 1731 SetupDefaultTrees(gfx::Size(10, 10)); | 1759 SetupDefaultTrees(gfx::Size(10, 10)); |
| 1732 host_impl_.active_tree()->UpdateDrawProperties(); | 1760 host_impl_.active_tree()->UpdateDrawProperties(); |
| 1733 EXPECT_FALSE(host_impl_.active_tree()->needs_update_draw_properties()); | 1761 EXPECT_FALSE(host_impl_.active_tree()->needs_update_draw_properties()); |
| 1734 | 1762 |
| 1735 float result_scale_x; | 1763 float result_scale_x; |
| 1736 float result_scale_y; | 1764 float result_scale_y; |
| 1737 gfx::Size result_bounds; | 1765 gfx::Size result_bounds; |
| 1738 active_layer_->CalculateContentsScale(0.5f, | 1766 active_layer_->CalculateContentsScale(0.5f, |
| 1739 0.5f, | 1767 0.5f, |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1782 } | 1810 } |
| 1783 | 1811 |
| 1784 TEST_F(PictureLayerImplTest, NoLowResTilingWithGpuRasterization) { | 1812 TEST_F(PictureLayerImplTest, NoLowResTilingWithGpuRasterization) { |
| 1785 gfx::Size default_tile_size(host_impl_.settings().default_tile_size); | 1813 gfx::Size default_tile_size(host_impl_.settings().default_tile_size); |
| 1786 gfx::Size layer_bounds(default_tile_size.width() * 4, | 1814 gfx::Size layer_bounds(default_tile_size.width() * 4, |
| 1787 default_tile_size.height() * 4); | 1815 default_tile_size.height() * 4); |
| 1788 float result_scale_x, result_scale_y; | 1816 float result_scale_x, result_scale_y; |
| 1789 gfx::Size result_bounds; | 1817 gfx::Size result_bounds; |
| 1790 | 1818 |
| 1791 SetupDefaultTrees(layer_bounds); | 1819 SetupDefaultTrees(layer_bounds); |
| 1792 EXPECT_FALSE(pending_layer_->use_gpu_rasterization()); | 1820 EXPECT_FALSE(host_impl_.use_gpu_rasterization()); |
| 1793 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); | 1821 EXPECT_EQ(0u, pending_layer_->tilings()->num_tilings()); |
| 1794 pending_layer_->CalculateContentsScale(1.f, | 1822 pending_layer_->CalculateContentsScale(1.f, |
| 1795 1.f, | 1823 1.f, |
| 1796 1.f, | 1824 1.f, |
| 1797 1.f, | 1825 1.f, |
| 1798 false, | 1826 false, |
| 1799 &result_scale_x, | 1827 &result_scale_x, |
| 1800 &result_scale_y, | 1828 &result_scale_y, |
| 1801 &result_bounds); | 1829 &result_bounds); |
| 1802 // Should have a low-res and a high-res tiling. | 1830 // Should have a low-res and a high-res tiling. |
| 1803 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); | 1831 ASSERT_EQ(2u, pending_layer_->tilings()->num_tilings()); |
| 1804 | 1832 |
| 1805 ResetTilingsAndRasterScales(); | 1833 ResetTilingsAndRasterScales(); |
| 1806 | 1834 |
| 1807 host_impl_.pending_tree()->SetUseGpuRasterization(true); | 1835 host_impl_.SetUseGpuRasterization(true); |
| 1808 EXPECT_TRUE(pending_layer_->use_gpu_rasterization()); | 1836 EXPECT_TRUE(host_impl_.use_gpu_rasterization()); |
| 1809 pending_layer_->CalculateContentsScale(1.f, | 1837 pending_layer_->CalculateContentsScale(1.f, |
| 1810 1.f, | 1838 1.f, |
| 1811 1.f, | 1839 1.f, |
| 1812 1.f, | 1840 1.f, |
| 1813 false, | 1841 false, |
| 1814 &result_scale_x, | 1842 &result_scale_x, |
| 1815 &result_scale_y, | 1843 &result_scale_y, |
| 1816 &result_bounds); | 1844 &result_bounds); |
| 1817 // Should only have the high-res tiling. | 1845 // Should only have the high-res tiling. |
| 1818 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); | 1846 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2356 SetContentsScaleOnBothLayers(contents_scale, | 2384 SetContentsScaleOnBothLayers(contents_scale, |
| 2357 device_scale, | 2385 device_scale, |
| 2358 page_scale, | 2386 page_scale, |
| 2359 maximum_animation_scale, | 2387 maximum_animation_scale, |
| 2360 animating_transform); | 2388 animating_transform); |
| 2361 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); | 2389 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), 1.f); |
| 2362 } | 2390 } |
| 2363 | 2391 |
| 2364 } // namespace | 2392 } // namespace |
| 2365 } // namespace cc | 2393 } // namespace cc |
| OLD | NEW |