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 |