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

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

Issue 1455023002: cc: Replace Pass() with std::move() in some subdirs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pass-cc
Patch Set: pass-cc2: . Created 5 years, 1 month 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
« no previous file with comments | « cc/layers/delegated_frame_provider.cc ('k') | cc/layers/delegated_renderer_layer_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/resource_provider.h" 10 #include "cc/resources/resource_provider.h"
(...skipping 14 matching lines...) Expand all
25 scoped_ptr<DelegatedFrameData> CreateFrameData( 25 scoped_ptr<DelegatedFrameData> CreateFrameData(
26 const gfx::Rect& root_output_rect, 26 const gfx::Rect& root_output_rect,
27 const gfx::Rect& root_damage_rect) { 27 const gfx::Rect& root_damage_rect) {
28 scoped_ptr<DelegatedFrameData> frame(new DelegatedFrameData); 28 scoped_ptr<DelegatedFrameData> frame(new DelegatedFrameData);
29 29
30 scoped_ptr<RenderPass> root_pass(RenderPass::Create()); 30 scoped_ptr<RenderPass> root_pass(RenderPass::Create());
31 root_pass->SetNew(RenderPassId(1, 1), 31 root_pass->SetNew(RenderPassId(1, 1),
32 root_output_rect, 32 root_output_rect,
33 root_damage_rect, 33 root_damage_rect,
34 gfx::Transform()); 34 gfx::Transform());
35 frame->render_pass_list.push_back(root_pass.Pass()); 35 frame->render_pass_list.push_back(std::move(root_pass));
36 return frame.Pass(); 36 return frame;
37 } 37 }
38 38
39 void AddTransferableResource(DelegatedFrameData* frame, 39 void AddTransferableResource(DelegatedFrameData* frame,
40 ResourceId resource_id) { 40 ResourceId resource_id) {
41 TransferableResource resource; 41 TransferableResource resource;
42 resource.id = resource_id; 42 resource.id = resource_id;
43 resource.mailbox_holder.texture_target = GL_TEXTURE_2D; 43 resource.mailbox_holder.texture_target = GL_TEXTURE_2D;
44 frame->resource_list.push_back(resource); 44 frame->resource_list.push_back(resource);
45 } 45 }
46 46
(...skipping 30 matching lines...) Expand all
77 } 77 }
78 78
79 bool ReturnAndResetResourcesAvailable() { 79 bool ReturnAndResetResourcesAvailable() {
80 bool r = resources_available_; 80 bool r = resources_available_;
81 resources_available_ = false; 81 resources_available_ = false;
82 return r; 82 return r;
83 } 83 }
84 84
85 void SetFrameProvider(scoped_ptr<DelegatedFrameData> frame_data) { 85 void SetFrameProvider(scoped_ptr<DelegatedFrameData> frame_data) {
86 frame_provider_ = 86 frame_provider_ =
87 new DelegatedFrameProvider(resource_collection_, frame_data.Pass()); 87 new DelegatedFrameProvider(resource_collection_, std::move(frame_data));
88 } 88 }
89 89
90 scoped_refptr<DelegatedFrameResourceCollection> resource_collection_; 90 scoped_refptr<DelegatedFrameResourceCollection> resource_collection_;
91 scoped_refptr<DelegatedFrameProvider> frame_provider_; 91 scoped_refptr<DelegatedFrameProvider> frame_provider_;
92 bool resources_available_; 92 bool resources_available_;
93 ReturnedResourceArray resources_; 93 ReturnedResourceArray resources_;
94 LayerSettings layer_settings_; 94 LayerSettings layer_settings_;
95 }; 95 };
96 96
97 TEST_F(DelegatedFrameProviderTest, SameResources) { 97 TEST_F(DelegatedFrameProviderTest, SameResources) {
98 scoped_ptr<DelegatedFrameData> frame = 98 scoped_ptr<DelegatedFrameData> frame =
99 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 99 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
100 AddTextureQuad(frame.get(), 444); 100 AddTextureQuad(frame.get(), 444);
101 AddTransferableResource(frame.get(), 444); 101 AddTransferableResource(frame.get(), 444);
102 SetFrameProvider(frame.Pass()); 102 SetFrameProvider(std::move(frame));
103 103
104 frame = CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 104 frame = CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
105 AddTextureQuad(frame.get(), 444); 105 AddTextureQuad(frame.get(), 444);
106 AddTransferableResource(frame.get(), 444); 106 AddTransferableResource(frame.get(), 444);
107 SetFrameProvider(frame.Pass()); 107 SetFrameProvider(std::move(frame));
108 108
109 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 109 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
110 EXPECT_EQ(0u, resources_.size()); 110 EXPECT_EQ(0u, resources_.size());
111 111
112 frame_provider_ = nullptr; 112 frame_provider_ = nullptr;
113 113
114 EXPECT_TRUE(ReturnAndResetResourcesAvailable()); 114 EXPECT_TRUE(ReturnAndResetResourcesAvailable());
115 EXPECT_EQ(1u, resources_.size()); 115 EXPECT_EQ(1u, resources_.size());
116 EXPECT_EQ(444u, resources_[0].id); 116 EXPECT_EQ(444u, resources_[0].id);
117 } 117 }
118 118
119 TEST_F(DelegatedFrameProviderTest, ReplaceResources) { 119 TEST_F(DelegatedFrameProviderTest, ReplaceResources) {
120 scoped_ptr<DelegatedFrameData> frame = 120 scoped_ptr<DelegatedFrameData> frame =
121 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 121 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
122 AddTextureQuad(frame.get(), 444); 122 AddTextureQuad(frame.get(), 444);
123 AddTransferableResource(frame.get(), 444); 123 AddTransferableResource(frame.get(), 444);
124 SetFrameProvider(frame.Pass()); 124 SetFrameProvider(std::move(frame));
125 125
126 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 126 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
127 127
128 frame = CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 128 frame = CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
129 AddTextureQuad(frame.get(), 555); 129 AddTextureQuad(frame.get(), 555);
130 AddTransferableResource(frame.get(), 555); 130 AddTransferableResource(frame.get(), 555);
131 SetFrameProvider(frame.Pass()); 131 SetFrameProvider(std::move(frame));
132 132
133 EXPECT_TRUE(ReturnAndResetResourcesAvailable()); 133 EXPECT_TRUE(ReturnAndResetResourcesAvailable());
134 EXPECT_EQ(1u, resources_.size()); 134 EXPECT_EQ(1u, resources_.size());
135 EXPECT_EQ(444u, resources_[0].id); 135 EXPECT_EQ(444u, resources_[0].id);
136 resources_.clear(); 136 resources_.clear();
137 137
138 frame_provider_ = nullptr; 138 frame_provider_ = nullptr;
139 139
140 EXPECT_TRUE(ReturnAndResetResourcesAvailable()); 140 EXPECT_TRUE(ReturnAndResetResourcesAvailable());
141 EXPECT_EQ(1u, resources_.size()); 141 EXPECT_EQ(1u, resources_.size());
142 EXPECT_EQ(555u, resources_[0].id); 142 EXPECT_EQ(555u, resources_[0].id);
143 } 143 }
144 144
145 TEST_F(DelegatedFrameProviderTest, RefResources) { 145 TEST_F(DelegatedFrameProviderTest, RefResources) {
146 scoped_ptr<DelegatedFrameData> frame = 146 scoped_ptr<DelegatedFrameData> frame =
147 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 147 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
148 AddTextureQuad(frame.get(), 444); 148 AddTextureQuad(frame.get(), 444);
149 AddTransferableResource(frame.get(), 444); 149 AddTransferableResource(frame.get(), 444);
150 150
151 TransferableResourceArray reffed = frame->resource_list; 151 TransferableResourceArray reffed = frame->resource_list;
152 ReturnedResourceArray returned; 152 ReturnedResourceArray returned;
153 TransferableResource::ReturnResources(reffed, &returned); 153 TransferableResource::ReturnResources(reffed, &returned);
154 154
155 SetFrameProvider(frame.Pass()); 155 SetFrameProvider(std::move(frame));
156 156
157 scoped_refptr<DelegatedRendererLayer> observer1 = 157 scoped_refptr<DelegatedRendererLayer> observer1 =
158 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 158 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
159 scoped_refptr<DelegatedRendererLayer> observer2 = 159 scoped_refptr<DelegatedRendererLayer> observer2 =
160 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 160 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
161 161
162 gfx::Rect damage; 162 gfx::Rect damage;
163 163
164 // 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.
165 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 165 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
166 EXPECT_EQ(gfx::Rect(5, 5), damage); 166 EXPECT_EQ(gfx::Rect(5, 5), damage);
167 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 167 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
168 EXPECT_EQ(gfx::Rect(5, 5), damage); 168 EXPECT_EQ(gfx::Rect(5, 5), damage);
169 169
170 // 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
171 // resources. 171 // resources.
172 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 172 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
173 EXPECT_EQ(gfx::Rect(), damage); 173 EXPECT_EQ(gfx::Rect(), damage);
174 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 174 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
175 EXPECT_EQ(gfx::Rect(), damage); 175 EXPECT_EQ(gfx::Rect(), damage);
176 176
177 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 177 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
178 178
179 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 179 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
180 AddTextureQuad(frame.get(), 555); 180 AddTextureQuad(frame.get(), 555);
181 AddTransferableResource(frame.get(), 555); 181 AddTransferableResource(frame.get(), 555);
182 frame_provider_->SetFrameData(frame.Pass()); 182 frame_provider_->SetFrameData(std::move(frame));
183 183
184 // The resources from the first frame are still reffed by the observers. 184 // The resources from the first frame are still reffed by the observers.
185 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 185 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
186 186
187 // There are 4 refs taken. 187 // There are 4 refs taken.
188 frame_provider_->UnrefResourcesOnMainThread(returned); 188 frame_provider_->UnrefResourcesOnMainThread(returned);
189 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 189 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
190 frame_provider_->UnrefResourcesOnMainThread(returned); 190 frame_provider_->UnrefResourcesOnMainThread(returned);
191 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 191 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
192 frame_provider_->UnrefResourcesOnMainThread(returned); 192 frame_provider_->UnrefResourcesOnMainThread(returned);
(...skipping 10 matching lines...) Expand all
203 TEST_F(DelegatedFrameProviderTest, RefResourcesInFrameProvider) { 203 TEST_F(DelegatedFrameProviderTest, RefResourcesInFrameProvider) {
204 scoped_ptr<DelegatedFrameData> frame = 204 scoped_ptr<DelegatedFrameData> frame =
205 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 205 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
206 AddTextureQuad(frame.get(), 444); 206 AddTextureQuad(frame.get(), 444);
207 AddTransferableResource(frame.get(), 444); 207 AddTransferableResource(frame.get(), 444);
208 208
209 TransferableResourceArray reffed = frame->resource_list; 209 TransferableResourceArray reffed = frame->resource_list;
210 ReturnedResourceArray returned; 210 ReturnedResourceArray returned;
211 TransferableResource::ReturnResources(reffed, &returned); 211 TransferableResource::ReturnResources(reffed, &returned);
212 212
213 SetFrameProvider(frame.Pass()); 213 SetFrameProvider(std::move(frame));
214 214
215 scoped_refptr<DelegatedRendererLayer> observer1 = 215 scoped_refptr<DelegatedRendererLayer> observer1 =
216 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 216 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
217 scoped_refptr<DelegatedRendererLayer> observer2 = 217 scoped_refptr<DelegatedRendererLayer> observer2 =
218 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 218 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
219 219
220 gfx::Rect damage; 220 gfx::Rect damage;
221 221
222 // Take a ref on each observer. 222 // Take a ref on each observer.
223 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 223 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
224 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 224 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
225 225
226 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 226 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
227 227
228 // 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
229 // provider itself. 229 // provider itself.
230 frame_provider_->UnrefResourcesOnMainThread(returned); 230 frame_provider_->UnrefResourcesOnMainThread(returned);
231 frame_provider_->UnrefResourcesOnMainThread(returned); 231 frame_provider_->UnrefResourcesOnMainThread(returned);
232 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 232 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
233 233
234 // Setting a new frame will release it. 234 // Setting a new frame will release it.
235 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 235 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
236 AddTextureQuad(frame.get(), 555); 236 AddTextureQuad(frame.get(), 555);
237 AddTransferableResource(frame.get(), 555); 237 AddTransferableResource(frame.get(), 555);
238 frame_provider_->SetFrameData(frame.Pass()); 238 frame_provider_->SetFrameData(std::move(frame));
239 239
240 EXPECT_TRUE(ReturnAndResetResourcesAvailable()); 240 EXPECT_TRUE(ReturnAndResetResourcesAvailable());
241 EXPECT_EQ(1u, resources_.size()); 241 EXPECT_EQ(1u, resources_.size());
242 EXPECT_EQ(444u, resources_[0].id); 242 EXPECT_EQ(444u, resources_[0].id);
243 } 243 }
244 244
245 TEST_F(DelegatedFrameProviderTest, RefResourcesInFrameProviderUntilDestroy) { 245 TEST_F(DelegatedFrameProviderTest, RefResourcesInFrameProviderUntilDestroy) {
246 scoped_ptr<DelegatedFrameData> frame = 246 scoped_ptr<DelegatedFrameData> frame =
247 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 247 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
248 AddTextureQuad(frame.get(), 444); 248 AddTextureQuad(frame.get(), 444);
249 AddTransferableResource(frame.get(), 444); 249 AddTransferableResource(frame.get(), 444);
250 250
251 TransferableResourceArray reffed = frame->resource_list; 251 TransferableResourceArray reffed = frame->resource_list;
252 ReturnedResourceArray returned; 252 ReturnedResourceArray returned;
253 TransferableResource::ReturnResources(reffed, &returned); 253 TransferableResource::ReturnResources(reffed, &returned);
254 254
255 SetFrameProvider(frame.Pass()); 255 SetFrameProvider(std::move(frame));
256 256
257 scoped_refptr<DelegatedRendererLayer> observer1 = 257 scoped_refptr<DelegatedRendererLayer> observer1 =
258 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 258 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
259 scoped_refptr<DelegatedRendererLayer> observer2 = 259 scoped_refptr<DelegatedRendererLayer> observer2 =
260 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 260 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
261 261
262 gfx::Rect damage; 262 gfx::Rect damage;
263 263
264 // Take a ref on each observer. 264 // Take a ref on each observer.
265 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 265 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
(...skipping 23 matching lines...) Expand all
289 TEST_F(DelegatedFrameProviderTest, Damage) { 289 TEST_F(DelegatedFrameProviderTest, Damage) {
290 scoped_ptr<DelegatedFrameData> frame = 290 scoped_ptr<DelegatedFrameData> frame =
291 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 291 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
292 AddTextureQuad(frame.get(), 444); 292 AddTextureQuad(frame.get(), 444);
293 AddTransferableResource(frame.get(), 444); 293 AddTransferableResource(frame.get(), 444);
294 294
295 TransferableResourceArray reffed = frame->resource_list; 295 TransferableResourceArray reffed = frame->resource_list;
296 ReturnedResourceArray returned; 296 ReturnedResourceArray returned;
297 TransferableResource::ReturnResources(reffed, &returned); 297 TransferableResource::ReturnResources(reffed, &returned);
298 298
299 SetFrameProvider(frame.Pass()); 299 SetFrameProvider(std::move(frame));
300 300
301 scoped_refptr<DelegatedRendererLayer> observer1 = 301 scoped_refptr<DelegatedRendererLayer> observer1 =
302 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 302 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
303 scoped_refptr<DelegatedRendererLayer> observer2 = 303 scoped_refptr<DelegatedRendererLayer> observer2 =
304 DelegatedRendererLayer::Create(layer_settings_, frame_provider_); 304 DelegatedRendererLayer::Create(layer_settings_, frame_provider_);
305 305
306 gfx::Rect damage; 306 gfx::Rect damage;
307 307
308 // 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.
309 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 309 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
310 EXPECT_EQ(gfx::Rect(5, 5), damage); 310 EXPECT_EQ(gfx::Rect(5, 5), damage);
311 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 311 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
312 EXPECT_EQ(gfx::Rect(5, 5), damage); 312 EXPECT_EQ(gfx::Rect(5, 5), damage);
313 313
314 // And both get no damage on the 2nd request. 314 // And both get no damage on the 2nd request.
315 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 315 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
316 EXPECT_EQ(gfx::Rect(), damage); 316 EXPECT_EQ(gfx::Rect(), damage);
317 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 317 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
318 EXPECT_EQ(gfx::Rect(), damage); 318 EXPECT_EQ(gfx::Rect(), damage);
319 319
320 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2)); 320 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(2, 2));
321 AddTextureQuad(frame.get(), 555); 321 AddTextureQuad(frame.get(), 555);
322 AddTransferableResource(frame.get(), 555); 322 AddTransferableResource(frame.get(), 555);
323 frame_provider_->SetFrameData(frame.Pass()); 323 frame_provider_->SetFrameData(std::move(frame));
324 324
325 // Both observers get the damage for the new frame. 325 // Both observers get the damage for the new frame.
326 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 326 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
327 EXPECT_EQ(gfx::Rect(2, 2), damage); 327 EXPECT_EQ(gfx::Rect(2, 2), damage);
328 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 328 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
329 EXPECT_EQ(gfx::Rect(2, 2), damage); 329 EXPECT_EQ(gfx::Rect(2, 2), damage);
330 330
331 // And both get no damage on the 2nd request. 331 // And both get no damage on the 2nd request.
332 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage); 332 frame_provider_->GetFrameDataAndRefResources(observer1.get(), &damage);
333 EXPECT_EQ(gfx::Rect(), damage); 333 EXPECT_EQ(gfx::Rect(), damage);
334 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage); 334 frame_provider_->GetFrameDataAndRefResources(observer2.get(), &damage);
335 EXPECT_EQ(gfx::Rect(), damage); 335 EXPECT_EQ(gfx::Rect(), damage);
336 } 336 }
337 337
338 TEST_F(DelegatedFrameProviderTest, LostNothing) { 338 TEST_F(DelegatedFrameProviderTest, LostNothing) {
339 scoped_ptr<DelegatedFrameData> frame = 339 scoped_ptr<DelegatedFrameData> frame =
340 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5)); 340 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5));
341 341
342 TransferableResourceArray reffed = frame->resource_list; 342 TransferableResourceArray reffed = frame->resource_list;
343 343
344 SetFrameProvider(frame.Pass()); 344 SetFrameProvider(std::move(frame));
345 345
346 // There is nothing to lose. 346 // There is nothing to lose.
347 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 347 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
348 EXPECT_FALSE(resource_collection_->LoseAllResources()); 348 EXPECT_FALSE(resource_collection_->LoseAllResources());
349 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 349 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
350 EXPECT_EQ(0u, resources_.size()); 350 EXPECT_EQ(0u, resources_.size());
351 } 351 }
352 352
353 TEST_F(DelegatedFrameProviderTest, LostSomething) { 353 TEST_F(DelegatedFrameProviderTest, LostSomething) {
354 scoped_ptr<DelegatedFrameData> frame = 354 scoped_ptr<DelegatedFrameData> frame =
355 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5)); 355 CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5));
356 AddTextureQuad(frame.get(), 444); 356 AddTextureQuad(frame.get(), 444);
357 AddTransferableResource(frame.get(), 444); 357 AddTransferableResource(frame.get(), 444);
358 358
359 SetFrameProvider(frame.Pass()); 359 SetFrameProvider(std::move(frame));
360 360
361 // Add a second reference on the resource. 361 // Add a second reference on the resource.
362 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5)); 362 frame = CreateFrameData(gfx::Rect(5, 5), gfx::Rect(5, 5));
363 AddTextureQuad(frame.get(), 444); 363 AddTextureQuad(frame.get(), 444);
364 AddTransferableResource(frame.get(), 444); 364 AddTransferableResource(frame.get(), 444);
365 365
366 SetFrameProvider(frame.Pass()); 366 SetFrameProvider(std::move(frame));
367 367
368 // There is something to lose. 368 // There is something to lose.
369 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 369 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
370 EXPECT_TRUE(resource_collection_->LoseAllResources()); 370 EXPECT_TRUE(resource_collection_->LoseAllResources());
371 EXPECT_TRUE(ReturnAndResetResourcesAvailable()); 371 EXPECT_TRUE(ReturnAndResetResourcesAvailable());
372 372
373 EXPECT_EQ(1u, resources_.size()); 373 EXPECT_EQ(1u, resources_.size());
374 EXPECT_EQ(444u, resources_[0].id); 374 EXPECT_EQ(444u, resources_[0].id);
375 EXPECT_EQ(2, resources_[0].count); 375 EXPECT_EQ(2, resources_[0].count);
376 } 376 }
377 377
378 TEST_F(DelegatedFrameProviderTest, NothingReturnedAfterLoss) { 378 TEST_F(DelegatedFrameProviderTest, NothingReturnedAfterLoss) {
379 scoped_ptr<DelegatedFrameData> frame = 379 scoped_ptr<DelegatedFrameData> frame =
380 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1)); 380 CreateFrameData(gfx::Rect(1, 1), gfx::Rect(1, 1));
381 AddTextureQuad(frame.get(), 444); 381 AddTextureQuad(frame.get(), 444);
382 AddTransferableResource(frame.get(), 444); 382 AddTransferableResource(frame.get(), 444);
383 SetFrameProvider(frame.Pass()); 383 SetFrameProvider(std::move(frame));
384 384
385 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 385 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
386 386
387 // Lose all the resources. 387 // Lose all the resources.
388 EXPECT_TRUE(resource_collection_->LoseAllResources()); 388 EXPECT_TRUE(resource_collection_->LoseAllResources());
389 EXPECT_TRUE(ReturnAndResetResourcesAvailable()); 389 EXPECT_TRUE(ReturnAndResetResourcesAvailable());
390 resources_.clear(); 390 resources_.clear();
391 391
392 frame_provider_ = nullptr; 392 frame_provider_ = nullptr;
393 393
394 // Nothing is returned twice. 394 // Nothing is returned twice.
395 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); 395 EXPECT_FALSE(ReturnAndResetResourcesAvailable());
396 EXPECT_EQ(0u, resources_.size()); 396 EXPECT_EQ(0u, resources_.size());
397 } 397 }
398 398
399 } // namespace 399 } // namespace
400 } // namespace cc 400 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/delegated_frame_provider.cc ('k') | cc/layers/delegated_renderer_layer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698