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

Side by Side Diff: cc/layers/delegated_frame_provider_unittest.cc

Issue 1101823002: CC Animations: Make LayerAnimationController creation optional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Plumb LayerSettings parameter for cc::Layer construction. Created 5 years, 7 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/layers/delegated_frame_provider.h" 5 #include "cc/layers/delegated_frame_provider.h"
6 #include "cc/layers/delegated_frame_resource_collection.h" 6 #include "cc/layers/delegated_frame_resource_collection.h"
7 #include "cc/layers/delegated_renderer_layer.h" 7 #include "cc/layers/delegated_renderer_layer.h"
8 #include "cc/output/delegated_frame_data.h" 8 #include "cc/output/delegated_frame_data.h"
9 #include "cc/quads/texture_draw_quad.h" 9 #include "cc/quads/texture_draw_quad.h"
10 #include "cc/resources/returned_resource.h" 10 #include "cc/resources/returned_resource.h"
11 #include "cc/resources/transferable_resource.h" 11 #include "cc/resources/transferable_resource.h"
12 #include "cc/trees/layer_tree_settings.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 namespace cc { 15 namespace cc {
15 namespace { 16 namespace {
16 17
17 class DelegatedFrameProviderTest 18 class DelegatedFrameProviderTest
18 : public testing::Test, 19 : public testing::Test,
19 public DelegatedFrameResourceCollectionClient { 20 public DelegatedFrameResourceCollectionClient {
20 protected: 21 protected:
21 DelegatedFrameProviderTest() : resources_available_(false) {} 22 DelegatedFrameProviderTest() : resources_available_(false) {}
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 84
84 void SetFrameProvider(scoped_ptr<DelegatedFrameData> frame_data) { 85 void SetFrameProvider(scoped_ptr<DelegatedFrameData> frame_data) {
85 frame_provider_ = 86 frame_provider_ =
86 new DelegatedFrameProvider(resource_collection_, frame_data.Pass()); 87 new DelegatedFrameProvider(resource_collection_, frame_data.Pass());
87 } 88 }
88 89
89 scoped_refptr<DelegatedFrameResourceCollection> resource_collection_; 90 scoped_refptr<DelegatedFrameResourceCollection> resource_collection_;
90 scoped_refptr<DelegatedFrameProvider> frame_provider_; 91 scoped_refptr<DelegatedFrameProvider> frame_provider_;
91 bool resources_available_; 92 bool resources_available_;
92 ReturnedResourceArray resources_; 93 ReturnedResourceArray resources_;
94 LayerSettings layer_settings_;
93 }; 95 };
94 96
95 TEST_F(DelegatedFrameProviderTest, SameResources) { 97 TEST_F(DelegatedFrameProviderTest, SameResources) {
96 scoped_ptr<DelegatedFrameData> frame = 98 scoped_ptr<DelegatedFrameData> frame =
97 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 99 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
98 AddTextureQuad(frame.get(), 444); 100 AddTextureQuad(frame.get(), 444);
99 AddTransferableResource(frame.get(), 444); 101 AddTransferableResource(frame.get(), 444);
100 SetFrameProvider(frame.Pass()); 102 SetFrameProvider(frame.Pass());
101 103
102 frame = CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 104 frame = CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 AddTextureQuad(frame.get(), 444); 148 AddTextureQuad(frame.get(), 444);
147 AddTransferableResource(frame.get(), 444); 149 AddTransferableResource(frame.get(), 444);
148 150
149 TransferableResourceArray reffed = frame->resource_list; 151 TransferableResourceArray reffed = frame->resource_list;
150 ReturnedResourceArray returned; 152 ReturnedResourceArray returned;
151 TransferableResource::ReturnResources(reffed, &returned); 153 TransferableResource::ReturnResources(reffed, &returned);
152 154
153 SetFrameProvider(frame.Pass()); 155 SetFrameProvider(frame.Pass());
154 156
155 scoped_refptr<DelegatedRendererLayer> observer1 = 157 scoped_refptr<DelegatedRendererLayer> observer1 =
156 DelegatedRendererLayer::Create(frame_provider_); 158 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
157 scoped_refptr<DelegatedRendererLayer> observer2 = 159 scoped_refptr<DelegatedRendererLayer> observer2 =
158 DelegatedRendererLayer::Create(frame_provider_); 160 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
159 161
160 gfx::RectF damage; 162 gfx::RectF damage;
161 163
162 // Both observers get a full frame of damage on the first request. 164 // Both observers get a full frame of damage on the first request.
163 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 165 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
164 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 166 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
165 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 167 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
166 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 168 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
167 169
168 // And both get no damage on the 2nd request. This adds a second ref to the 170 // And both get no damage on the 2nd request. This adds a second ref to the
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 AddTextureQuad(frame.get(), 444); 206 AddTextureQuad(frame.get(), 444);
205 AddTransferableResource(frame.get(), 444); 207 AddTransferableResource(frame.get(), 444);
206 208
207 TransferableResourceArray reffed = frame->resource_list; 209 TransferableResourceArray reffed = frame->resource_list;
208 ReturnedResourceArray returned; 210 ReturnedResourceArray returned;
209 TransferableResource::ReturnResources(reffed, &returned); 211 TransferableResource::ReturnResources(reffed, &returned);
210 212
211 SetFrameProvider(frame.Pass()); 213 SetFrameProvider(frame.Pass());
212 214
213 scoped_refptr<DelegatedRendererLayer> observer1 = 215 scoped_refptr<DelegatedRendererLayer> observer1 =
214 DelegatedRendererLayer::Create(frame_provider_); 216 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
215 scoped_refptr<DelegatedRendererLayer> observer2 = 217 scoped_refptr<DelegatedRendererLayer> observer2 =
216 DelegatedRendererLayer::Create(frame_provider_); 218 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
217 219
218 gfx::RectF damage; 220 gfx::RectF damage;
219 221
220 // Take a ref on each observer. 222 // Take a ref on each observer.
221 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 223 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
222 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 224 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
223 225
224 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 226 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
225 227
226 // Release both refs. But there's still a ref held in the frame 228 // Release both refs. But there's still a ref held in the frame
(...skipping 19 matching lines...) Expand all
246 AddTextureQuad(frame.get(), 444); 248 AddTextureQuad(frame.get(), 444);
247 AddTransferableResource(frame.get(), 444); 249 AddTransferableResource(frame.get(), 444);
248 250
249 TransferableResourceArray reffed = frame->resource_list; 251 TransferableResourceArray reffed = frame->resource_list;
250 ReturnedResourceArray returned; 252 ReturnedResourceArray returned;
251 TransferableResource::ReturnResources(reffed, &returned); 253 TransferableResource::ReturnResources(reffed, &returned);
252 254
253 SetFrameProvider(frame.Pass()); 255 SetFrameProvider(frame.Pass());
254 256
255 scoped_refptr<DelegatedRendererLayer> observer1 = 257 scoped_refptr<DelegatedRendererLayer> observer1 =
256 DelegatedRendererLayer::Create(frame_provider_); 258 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
257 scoped_refptr<DelegatedRendererLayer> observer2 = 259 scoped_refptr<DelegatedRendererLayer> observer2 =
258 DelegatedRendererLayer::Create(frame_provider_); 260 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
259 261
260 gfx::RectF damage; 262 gfx::RectF damage;
261 263
262 // Take a ref on each observer. 264 // Take a ref on each observer.
263 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 265 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
264 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 266 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
265 267
266 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 268 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
267 269
268 // Release both refs. But there's still a ref held in the frame 270 // Release both refs. But there's still a ref held in the frame
(...skipping 21 matching lines...) Expand all
290 AddTextureQuad(frame.get(), 444); 292 AddTextureQuad(frame.get(), 444);
291 AddTransferableResource(frame.get(), 444); 293 AddTransferableResource(frame.get(), 444);
292 294
293 TransferableResourceArray reffed = frame->resource_list; 295 TransferableResourceArray reffed = frame->resource_list;
294 ReturnedResourceArray returned; 296 ReturnedResourceArray returned;
295 TransferableResource::ReturnResources(reffed, &returned); 297 TransferableResource::ReturnResources(reffed, &returned);
296 298
297 SetFrameProvider(frame.Pass()); 299 SetFrameProvider(frame.Pass());
298 300
299 scoped_refptr<DelegatedRendererLayer> observer1 = 301 scoped_refptr<DelegatedRendererLayer> observer1 =
300 DelegatedRendererLayer::Create(frame_provider_); 302 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
301 scoped_refptr<DelegatedRendererLayer> observer2 = 303 scoped_refptr<DelegatedRendererLayer> observer2 =
302 DelegatedRendererLayer::Create(frame_provider_); 304 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
303 305
304 gfx::RectF damage; 306 gfx::RectF damage;
305 307
306 // Both observers get a full frame of damage on the first request. 308 // Both observers get a full frame of damage on the first request.
307 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 309 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
308 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 310 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
309 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 311 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
310 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); 312 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString());
311 313
312 // And both get no damage on the 2nd request. 314 // And both get no damage on the 2nd request.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 391
390 frame_provider_ = nullptr; 392 frame_provider_ = nullptr;
391 393
392 // Nothing is returned twice. 394 // Nothing is returned twice.
393 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 395 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
394 EXPECT_EQ(0u, resources_.size()); 396 EXPECT_EQ(0u, resources_.size());
395 } 397 }
396 398
397 } // namespace 399 } // namespace
398 } // namespace cc 400 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698