| 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.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/synchronization/lock.h" | 10 #include "base/synchronization/lock.h" |
| (...skipping 2066 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2077 int num_send_begin_main_frame_; | 2077 int num_send_begin_main_frame_; |
| 2078 }; | 2078 }; |
| 2079 | 2079 |
| 2080 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); | 2080 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); |
| 2081 | 2081 |
| 2082 class LayerTreeHostWithProxy : public LayerTreeHost { | 2082 class LayerTreeHostWithProxy : public LayerTreeHost { |
| 2083 public: | 2083 public: |
| 2084 LayerTreeHostWithProxy(FakeLayerTreeHostClient* client, | 2084 LayerTreeHostWithProxy(FakeLayerTreeHostClient* client, |
| 2085 const LayerTreeSettings& settings, | 2085 const LayerTreeSettings& settings, |
| 2086 scoped_ptr<FakeProxy> proxy) | 2086 scoped_ptr<FakeProxy> proxy) |
| 2087 : LayerTreeHost(client, NULL, NULL, settings) { | 2087 : LayerTreeHost(client, NULL, NULL, NULL, settings) { |
| 2088 proxy->SetLayerTreeHost(this); | 2088 proxy->SetLayerTreeHost(this); |
| 2089 client->SetLayerTreeHost(this); | 2089 client->SetLayerTreeHost(this); |
| 2090 InitializeForTesting(proxy.Pass()); | 2090 InitializeForTesting(proxy.Pass()); |
| 2091 } | 2091 } |
| 2092 }; | 2092 }; |
| 2093 | 2093 |
| 2094 TEST(LayerTreeHostTest, LimitPartialUpdates) { | 2094 TEST(LayerTreeHostTest, LimitPartialUpdates) { |
| 2095 // When partial updates are not allowed, max updates should be 0. | 2095 // When partial updates are not allowed, max updates should be 0. |
| 2096 { | 2096 { |
| 2097 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); | 2097 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2149 TEST(LayerTreeHostTest, PartialUpdatesWithGLRenderer) { | 2149 TEST(LayerTreeHostTest, PartialUpdatesWithGLRenderer) { |
| 2150 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); | 2150 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); |
| 2151 | 2151 |
| 2152 LayerTreeSettings settings; | 2152 LayerTreeSettings settings; |
| 2153 settings.max_partial_texture_updates = 4; | 2153 settings.max_partial_texture_updates = 4; |
| 2154 settings.single_thread_proxy_scheduler = false; | 2154 settings.single_thread_proxy_scheduler = false; |
| 2155 settings.impl_side_painting = false; | 2155 settings.impl_side_painting = false; |
| 2156 | 2156 |
| 2157 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2157 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 2158 new TestSharedBitmapManager()); | 2158 new TestSharedBitmapManager()); |
| 2159 scoped_ptr<LayerTreeHost> host = | 2159 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
| 2160 LayerTreeHost::CreateSingleThreaded(&client, | 2160 &client, &client, shared_bitmap_manager.get(), NULL, nullptr, settings, |
| 2161 &client, | 2161 base::MessageLoopProxy::current(), nullptr); |
| 2162 shared_bitmap_manager.get(), | |
| 2163 NULL, | |
| 2164 settings, | |
| 2165 base::MessageLoopProxy::current(), | |
| 2166 nullptr); | |
| 2167 client.SetLayerTreeHost(host.get()); | 2162 client.SetLayerTreeHost(host.get()); |
| 2168 host->Composite(base::TimeTicks::Now()); | 2163 host->Composite(base::TimeTicks::Now()); |
| 2169 | 2164 |
| 2170 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); | 2165 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); |
| 2171 } | 2166 } |
| 2172 | 2167 |
| 2173 TEST(LayerTreeHostTest, PartialUpdatesWithSoftwareRenderer) { | 2168 TEST(LayerTreeHostTest, PartialUpdatesWithSoftwareRenderer) { |
| 2174 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_SOFTWARE); | 2169 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_SOFTWARE); |
| 2175 | 2170 |
| 2176 LayerTreeSettings settings; | 2171 LayerTreeSettings settings; |
| 2177 settings.max_partial_texture_updates = 4; | 2172 settings.max_partial_texture_updates = 4; |
| 2178 settings.single_thread_proxy_scheduler = false; | 2173 settings.single_thread_proxy_scheduler = false; |
| 2179 settings.impl_side_painting = false; | 2174 settings.impl_side_painting = false; |
| 2180 | 2175 |
| 2181 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2176 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 2182 new TestSharedBitmapManager()); | 2177 new TestSharedBitmapManager()); |
| 2183 scoped_ptr<LayerTreeHost> host = | 2178 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
| 2184 LayerTreeHost::CreateSingleThreaded(&client, | 2179 &client, &client, shared_bitmap_manager.get(), NULL, nullptr, settings, |
| 2185 &client, | 2180 base::MessageLoopProxy::current(), nullptr); |
| 2186 shared_bitmap_manager.get(), | |
| 2187 NULL, | |
| 2188 settings, | |
| 2189 base::MessageLoopProxy::current(), | |
| 2190 nullptr); | |
| 2191 client.SetLayerTreeHost(host.get()); | 2181 client.SetLayerTreeHost(host.get()); |
| 2192 host->Composite(base::TimeTicks::Now()); | 2182 host->Composite(base::TimeTicks::Now()); |
| 2193 | 2183 |
| 2194 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); | 2184 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); |
| 2195 } | 2185 } |
| 2196 | 2186 |
| 2197 TEST(LayerTreeHostTest, PartialUpdatesWithDelegatingRendererAndGLContent) { | 2187 TEST(LayerTreeHostTest, PartialUpdatesWithDelegatingRendererAndGLContent) { |
| 2198 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_3D); | 2188 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_3D); |
| 2199 | 2189 |
| 2200 LayerTreeSettings settings; | 2190 LayerTreeSettings settings; |
| 2201 settings.max_partial_texture_updates = 4; | 2191 settings.max_partial_texture_updates = 4; |
| 2202 settings.single_thread_proxy_scheduler = false; | 2192 settings.single_thread_proxy_scheduler = false; |
| 2203 settings.impl_side_painting = false; | 2193 settings.impl_side_painting = false; |
| 2204 | 2194 |
| 2205 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2195 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 2206 new TestSharedBitmapManager()); | 2196 new TestSharedBitmapManager()); |
| 2207 scoped_ptr<LayerTreeHost> host = | 2197 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
| 2208 LayerTreeHost::CreateSingleThreaded(&client, | 2198 &client, &client, shared_bitmap_manager.get(), NULL, nullptr, settings, |
| 2209 &client, | 2199 base::MessageLoopProxy::current(), nullptr); |
| 2210 shared_bitmap_manager.get(), | |
| 2211 NULL, | |
| 2212 settings, | |
| 2213 base::MessageLoopProxy::current(), | |
| 2214 nullptr); | |
| 2215 client.SetLayerTreeHost(host.get()); | 2200 client.SetLayerTreeHost(host.get()); |
| 2216 host->Composite(base::TimeTicks::Now()); | 2201 host->Composite(base::TimeTicks::Now()); |
| 2217 | 2202 |
| 2218 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); | 2203 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); |
| 2219 } | 2204 } |
| 2220 | 2205 |
| 2221 TEST(LayerTreeHostTest, | 2206 TEST(LayerTreeHostTest, |
| 2222 PartialUpdatesWithDelegatingRendererAndSoftwareContent) { | 2207 PartialUpdatesWithDelegatingRendererAndSoftwareContent) { |
| 2223 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_SOFTWARE); | 2208 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_SOFTWARE); |
| 2224 | 2209 |
| 2225 LayerTreeSettings settings; | 2210 LayerTreeSettings settings; |
| 2226 settings.max_partial_texture_updates = 4; | 2211 settings.max_partial_texture_updates = 4; |
| 2227 settings.single_thread_proxy_scheduler = false; | 2212 settings.single_thread_proxy_scheduler = false; |
| 2228 settings.impl_side_painting = false; | 2213 settings.impl_side_painting = false; |
| 2229 | 2214 |
| 2230 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2215 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 2231 new TestSharedBitmapManager()); | 2216 new TestSharedBitmapManager()); |
| 2232 scoped_ptr<LayerTreeHost> host = | 2217 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
| 2233 LayerTreeHost::CreateSingleThreaded(&client, | 2218 &client, &client, shared_bitmap_manager.get(), NULL, nullptr, settings, |
| 2234 &client, | 2219 base::MessageLoopProxy::current(), nullptr); |
| 2235 shared_bitmap_manager.get(), | |
| 2236 NULL, | |
| 2237 settings, | |
| 2238 base::MessageLoopProxy::current(), | |
| 2239 nullptr); | |
| 2240 client.SetLayerTreeHost(host.get()); | 2220 client.SetLayerTreeHost(host.get()); |
| 2241 host->Composite(base::TimeTicks::Now()); | 2221 host->Composite(base::TimeTicks::Now()); |
| 2242 | 2222 |
| 2243 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); | 2223 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); |
| 2244 } | 2224 } |
| 2245 | 2225 |
| 2246 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere. | 2226 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere. |
| 2247 class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted | 2227 class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted |
| 2248 : public LayerTreeHostTest { | 2228 : public LayerTreeHostTest { |
| 2249 public: | 2229 public: |
| (...skipping 4192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6442 | 6422 |
| 6443 void AfterTest() override {} | 6423 void AfterTest() override {} |
| 6444 | 6424 |
| 6445 private: | 6425 private: |
| 6446 scoped_refptr<Layer> child_; | 6426 scoped_refptr<Layer> child_; |
| 6447 }; | 6427 }; |
| 6448 | 6428 |
| 6449 SINGLE_AND_MULTI_THREAD_TEST_F(LayerPreserveRenderSurfaceFromOutputRequests); | 6429 SINGLE_AND_MULTI_THREAD_TEST_F(LayerPreserveRenderSurfaceFromOutputRequests); |
| 6450 | 6430 |
| 6451 } // namespace cc | 6431 } // namespace cc |
| OLD | NEW |