Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: cc/trees/layer_tree_host_unittest_delegated.cc

Issue 640203002: [C++11 Allowed Features] Declares a type-safe null pointer converting from NULL to nullptr [part-… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format fix. Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/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/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 RenderPass* root_pass = frame_data->render_pass_list.back(); 268 RenderPass* root_pass = frame_data->render_pass_list.back();
269 gfx::Size frame_size = root_pass->output_rect.size(); 269 gfx::Size frame_size = root_pass->output_rect.size();
270 270
271 if (frame_provider_.get() && frame_size == frame_provider_->frame_size()) { 271 if (frame_provider_.get() && frame_size == frame_provider_->frame_size()) {
272 frame_provider_->SetFrameData(frame_data.Pass()); 272 frame_provider_->SetFrameData(frame_data.Pass());
273 return; 273 return;
274 } 274 }
275 275
276 if (delegated_.get()) { 276 if (delegated_.get()) {
277 delegated_->RemoveFromParent(); 277 delegated_->RemoveFromParent();
278 delegated_ = NULL; 278 delegated_ = nullptr;
279 frame_provider_ = NULL; 279 frame_provider_ = nullptr;
280 } 280 }
281 281
282 frame_provider_ = new DelegatedFrameProvider(resource_collection_.get(), 282 frame_provider_ = new DelegatedFrameProvider(resource_collection_.get(),
283 frame_data.Pass()); 283 frame_data.Pass());
284 284
285 delegated_ = CreateDelegatedLayer(frame_provider_.get()); 285 delegated_ = CreateDelegatedLayer(frame_provider_.get());
286 } 286 }
287 287
288 scoped_refptr<DelegatedRendererLayer> CreateDelegatedLayer( 288 scoped_refptr<DelegatedRendererLayer> CreateDelegatedLayer(
289 DelegatedFrameProvider* frame_provider) { 289 DelegatedFrameProvider* frame_provider) {
290 scoped_refptr<DelegatedRendererLayer> delegated = 290 scoped_refptr<DelegatedRendererLayer> delegated =
291 FakeDelegatedRendererLayer::Create(frame_provider); 291 FakeDelegatedRendererLayer::Create(frame_provider);
292 delegated->SetBounds(gfx::Size(10, 10)); 292 delegated->SetBounds(gfx::Size(10, 10));
293 delegated->SetIsDrawable(true); 293 delegated->SetIsDrawable(true);
294 294
295 root_->AddChild(delegated); 295 root_->AddChild(delegated);
296 return delegated; 296 return delegated;
297 } 297 }
298 298
299 virtual void AfterTest() override { resource_collection_->SetClient(NULL); } 299 virtual void AfterTest() override {
300 resource_collection_->SetClient(nullptr);
301 }
300 302
301 // DelegatedFrameProviderClient implementation. 303 // DelegatedFrameProviderClient implementation.
302 virtual void UnusedResourcesAreAvailable() override { available_ = true; } 304 virtual void UnusedResourcesAreAvailable() override { available_ = true; }
303 305
304 bool TestAndResetAvailable() { 306 bool TestAndResetAvailable() {
305 bool available = available_; 307 bool available = available_;
306 available_ = false; 308 available_ = false;
307 return available; 309 return available;
308 } 310 }
309 311
(...skipping 1580 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 1892
1891 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); 1893 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1));
1892 AddTextureQuad(frame.get(), 999); 1894 AddTextureQuad(frame.get(), 999);
1893 AddTransferableResource(frame.get(), 999); 1895 AddTransferableResource(frame.get(), 999);
1894 AddTextureQuad(frame.get(), 555); 1896 AddTextureQuad(frame.get(), 555);
1895 AddTransferableResource(frame.get(), 555); 1897 AddTransferableResource(frame.get(), 555);
1896 1898
1897 // Remove the delegated layer and replace it with a new one. Make a new 1899 // Remove the delegated layer and replace it with a new one. Make a new
1898 // frame but with the same resources for it. 1900 // frame but with the same resources for it.
1899 delegated_->RemoveFromParent(); 1901 delegated_->RemoveFromParent();
1900 delegated_ = NULL; 1902 delegated_ = nullptr;
1901 1903
1902 frame_provider_->SetFrameData(frame.Pass()); 1904 frame_provider_->SetFrameData(frame.Pass());
1903 delegated_ = CreateDelegatedLayer(frame_provider_.get()); 1905 delegated_ = CreateDelegatedLayer(frame_provider_.get());
1904 break; 1906 break;
1905 case 3: 1907 case 3:
1906 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1908 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1907 EXPECT_EQ(0u, resources.size()); 1909 EXPECT_EQ(0u, resources.size());
1908 EXPECT_FALSE(TestAndResetAvailable()); 1910 EXPECT_FALSE(TestAndResetAvailable());
1909 1911
1910 // Use a frame with no resources in it. 1912 // Use a frame with no resources in it.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1955 // Create a DelegatedRendererLayer using the frame. 1957 // Create a DelegatedRendererLayer using the frame.
1956 SetFrameData(frame.Pass()); 1958 SetFrameData(frame.Pass());
1957 break; 1959 break;
1958 case 2: 1960 case 2:
1959 // Create a second DelegatedRendererLayer using the same frame provider. 1961 // Create a second DelegatedRendererLayer using the same frame provider.
1960 delegated_thief_ = CreateDelegatedLayer(frame_provider_.get()); 1962 delegated_thief_ = CreateDelegatedLayer(frame_provider_.get());
1961 root_->AddChild(delegated_thief_); 1963 root_->AddChild(delegated_thief_);
1962 1964
1963 // And drop our ref on the frame provider so only the layers keep it 1965 // And drop our ref on the frame provider so only the layers keep it
1964 // alive. 1966 // alive.
1965 frame_provider_ = NULL; 1967 frame_provider_ = nullptr;
1966 break; 1968 break;
1967 case 3: 1969 case 3:
1968 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1970 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1969 EXPECT_EQ(0u, resources.size()); 1971 EXPECT_EQ(0u, resources.size());
1970 EXPECT_FALSE(TestAndResetAvailable()); 1972 EXPECT_FALSE(TestAndResetAvailable());
1971 1973
1972 // Remove one delegated layer from the tree. No resources should be 1974 // Remove one delegated layer from the tree. No resources should be
1973 // returned yet. 1975 // returned yet.
1974 delegated_->RemoveFromParent(); 1976 delegated_->RemoveFromParent();
1975 break; 1977 break;
1976 case 4: 1978 case 4:
1977 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1979 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1978 EXPECT_EQ(0u, resources.size()); 1980 EXPECT_EQ(0u, resources.size());
1979 EXPECT_FALSE(TestAndResetAvailable()); 1981 EXPECT_FALSE(TestAndResetAvailable());
1980 1982
1981 // Put the first layer back, and remove the other layer and destroy it. 1983 // Put the first layer back, and remove the other layer and destroy it.
1982 // No resources should be returned yet. 1984 // No resources should be returned yet.
1983 root_->AddChild(delegated_); 1985 root_->AddChild(delegated_);
1984 delegated_thief_->RemoveFromParent(); 1986 delegated_thief_->RemoveFromParent();
1985 delegated_thief_ = NULL; 1987 delegated_thief_ = nullptr;
1986 break; 1988 break;
1987 case 5: 1989 case 5:
1988 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1990 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1989 EXPECT_EQ(0u, resources.size()); 1991 EXPECT_EQ(0u, resources.size());
1990 EXPECT_FALSE(TestAndResetAvailable()); 1992 EXPECT_FALSE(TestAndResetAvailable());
1991 1993
1992 // Remove the first layer from the tree again. The resources are still 1994 // Remove the first layer from the tree again. The resources are still
1993 // held by the main thread layer. 1995 // held by the main thread layer.
1994 delegated_->RemoveFromParent(); 1996 delegated_->RemoveFromParent();
1995 break; 1997 break;
1996 case 6: 1998 case 6:
1997 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 1999 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
1998 EXPECT_EQ(0u, resources.size()); 2000 EXPECT_EQ(0u, resources.size());
1999 EXPECT_FALSE(TestAndResetAvailable()); 2001 EXPECT_FALSE(TestAndResetAvailable());
2000 2002
2001 // Destroy the layer and the resources should be returned immediately. 2003 // Destroy the layer and the resources should be returned immediately.
2002 delegated_ = NULL; 2004 delegated_ = nullptr;
2003 2005
2004 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2006 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2005 { 2007 {
2006 unsigned expected[] = {555, 999}; 2008 unsigned expected[] = {555, 999};
2007 EXPECT_RESOURCES(expected, resources); 2009 EXPECT_RESOURCES(expected, resources);
2008 EXPECT_TRUE(TestAndResetAvailable()); 2010 EXPECT_TRUE(TestAndResetAvailable());
2009 } 2011 }
2010 EndTest(); 2012 EndTest();
2011 break; 2013 break;
2012 } 2014 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2076 case 5: 2078 case 5:
2077 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2079 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2078 { 2080 {
2079 unsigned expected[] = {555, 999}; 2081 unsigned expected[] = {555, 999};
2080 EXPECT_RESOURCES(expected, resources); 2082 EXPECT_RESOURCES(expected, resources);
2081 EXPECT_TRUE(TestAndResetAvailable()); 2083 EXPECT_TRUE(TestAndResetAvailable());
2082 } 2084 }
2083 2085
2084 // Destroy the layer. 2086 // Destroy the layer.
2085 delegated_->RemoveFromParent(); 2087 delegated_->RemoveFromParent();
2086 delegated_ = NULL; 2088 delegated_ = nullptr;
2087 break; 2089 break;
2088 case 6: 2090 case 6:
2089 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2091 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2090 EXPECT_EQ(0u, resources.size()); 2092 EXPECT_EQ(0u, resources.size());
2091 EXPECT_FALSE(TestAndResetAvailable()); 2093 EXPECT_FALSE(TestAndResetAvailable());
2092 2094
2093 // Destroy the frame provider. Resources should be returned. 2095 // Destroy the frame provider. Resources should be returned.
2094 frame_provider_ = NULL; 2096 frame_provider_ = nullptr;
2095 2097
2096 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2098 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2097 { 2099 {
2098 unsigned expected[] = {777, 888}; 2100 unsigned expected[] = {777, 888};
2099 EXPECT_RESOURCES(expected, resources); 2101 EXPECT_RESOURCES(expected, resources);
2100 EXPECT_TRUE(TestAndResetAvailable()); 2102 EXPECT_TRUE(TestAndResetAvailable());
2101 } 2103 }
2102 EndTest(); 2104 EndTest();
2103 break; 2105 break;
2104 } 2106 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2159 2161
2160 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2162 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2161 { 2163 {
2162 unsigned expected[] = {555, 999}; 2164 unsigned expected[] = {555, 999};
2163 EXPECT_RESOURCES(expected, resources); 2165 EXPECT_RESOURCES(expected, resources);
2164 EXPECT_TRUE(TestAndResetAvailable()); 2166 EXPECT_TRUE(TestAndResetAvailable());
2165 resources.clear(); 2167 resources.clear();
2166 } 2168 }
2167 2169
2168 // Destroy the frame provider. 2170 // Destroy the frame provider.
2169 frame_provider_ = NULL; 2171 frame_provider_ = nullptr;
2170 2172
2171 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2173 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2172 EXPECT_EQ(0u, resources.size()); 2174 EXPECT_EQ(0u, resources.size());
2173 EXPECT_FALSE(TestAndResetAvailable()); 2175 EXPECT_FALSE(TestAndResetAvailable());
2174 2176
2175 // Destroy the layer. Resources should be returned. 2177 // Destroy the layer. Resources should be returned.
2176 delegated_ = NULL; 2178 delegated_ = nullptr;
2177 2179
2178 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources); 2180 resource_collection_->TakeUnusedResourcesForChildCompositor(&resources);
2179 { 2181 {
2180 unsigned expected[] = {777, 888}; 2182 unsigned expected[] = {777, 888};
2181 EXPECT_RESOURCES(expected, resources); 2183 EXPECT_RESOURCES(expected, resources);
2182 EXPECT_TRUE(TestAndResetAvailable()); 2184 EXPECT_TRUE(TestAndResetAvailable());
2183 } 2185 }
2184 EndTest(); 2186 EndTest();
2185 break; 2187 break;
2186 } 2188 }
2187 } 2189 }
2188 2190
2189 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 2191 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl,
2190 bool result) override { 2192 bool result) override {
2191 ReturnUnusedResourcesFromParent(host_impl); 2193 ReturnUnusedResourcesFromParent(host_impl);
2192 } 2194 }
2193 2195
2194 scoped_refptr<DelegatedRendererLayer> delegated_thief_; 2196 scoped_refptr<DelegatedRendererLayer> delegated_thief_;
2195 }; 2197 };
2196 2198
2197 SINGLE_AND_MULTI_THREAD_TEST_F( 2199 SINGLE_AND_MULTI_THREAD_TEST_F(
2198 LayerTreeHostDelegatedTestRemoveAndChangeResources); 2200 LayerTreeHostDelegatedTestRemoveAndChangeResources);
2199 2201
2200 } // namespace 2202 } // namespace
2201 } // namespace cc 2203 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698