OLD | NEW |
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" |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 AddTextureQuad(frame.get(), 444); | 143 AddTextureQuad(frame.get(), 444); |
144 AddTransferableResource(frame.get(), 444); | 144 AddTransferableResource(frame.get(), 444); |
145 | 145 |
146 TransferableResourceArray reffed = frame->resource_list; | 146 TransferableResourceArray reffed = frame->resource_list; |
147 ReturnedResourceArray returned; | 147 ReturnedResourceArray returned; |
148 TransferableResource::ReturnResources(reffed, &returned); | 148 TransferableResource::ReturnResources(reffed, &returned); |
149 | 149 |
150 SetFrameProvider(frame.Pass()); | 150 SetFrameProvider(frame.Pass()); |
151 | 151 |
152 scoped_refptr<DelegatedRendererLayer> observer1 = | 152 scoped_refptr<DelegatedRendererLayer> observer1 = |
153 DelegatedRendererLayer::Create(NULL, frame_provider_); | 153 DelegatedRendererLayer::Create(frame_provider_); |
154 scoped_refptr<DelegatedRendererLayer> observer2 = | 154 scoped_refptr<DelegatedRendererLayer> observer2 = |
155 DelegatedRendererLayer::Create(NULL, frame_provider_); | 155 DelegatedRendererLayer::Create(frame_provider_); |
156 | 156 |
157 gfx::RectF damage; | 157 gfx::RectF damage; |
158 | 158 |
159 // Both observers get a full frame of damage on the first request. | 159 // Both observers get a full frame of damage on the first request. |
160 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); | 160 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); |
161 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); | 161 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); |
162 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); | 162 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); |
163 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); | 163 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); |
164 | 164 |
165 // And both get no damage on the 2nd request. This adds a second ref to the | 165 // 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 Loading... |
201 AddTextureQuad(frame.get(), 444); | 201 AddTextureQuad(frame.get(), 444); |
202 AddTransferableResource(frame.get(), 444); | 202 AddTransferableResource(frame.get(), 444); |
203 | 203 |
204 TransferableResourceArray reffed = frame->resource_list; | 204 TransferableResourceArray reffed = frame->resource_list; |
205 ReturnedResourceArray returned; | 205 ReturnedResourceArray returned; |
206 TransferableResource::ReturnResources(reffed, &returned); | 206 TransferableResource::ReturnResources(reffed, &returned); |
207 | 207 |
208 SetFrameProvider(frame.Pass()); | 208 SetFrameProvider(frame.Pass()); |
209 | 209 |
210 scoped_refptr<DelegatedRendererLayer> observer1 = | 210 scoped_refptr<DelegatedRendererLayer> observer1 = |
211 DelegatedRendererLayer::Create(NULL, frame_provider_); | 211 DelegatedRendererLayer::Create(frame_provider_); |
212 scoped_refptr<DelegatedRendererLayer> observer2 = | 212 scoped_refptr<DelegatedRendererLayer> observer2 = |
213 DelegatedRendererLayer::Create(NULL, frame_provider_); | 213 DelegatedRendererLayer::Create(frame_provider_); |
214 | 214 |
215 gfx::RectF damage; | 215 gfx::RectF damage; |
216 | 216 |
217 // Take a ref on each observer. | 217 // Take a ref on each observer. |
218 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); | 218 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); |
219 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); | 219 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); |
220 | 220 |
221 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); | 221 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); |
222 | 222 |
223 // Release both refs. But there's still a ref held in the frame | 223 // Release both refs. But there's still a ref held in the frame |
(...skipping 19 matching lines...) Expand all Loading... |
243 AddTextureQuad(frame.get(), 444); | 243 AddTextureQuad(frame.get(), 444); |
244 AddTransferableResource(frame.get(), 444); | 244 AddTransferableResource(frame.get(), 444); |
245 | 245 |
246 TransferableResourceArray reffed = frame->resource_list; | 246 TransferableResourceArray reffed = frame->resource_list; |
247 ReturnedResourceArray returned; | 247 ReturnedResourceArray returned; |
248 TransferableResource::ReturnResources(reffed, &returned); | 248 TransferableResource::ReturnResources(reffed, &returned); |
249 | 249 |
250 SetFrameProvider(frame.Pass()); | 250 SetFrameProvider(frame.Pass()); |
251 | 251 |
252 scoped_refptr<DelegatedRendererLayer> observer1 = | 252 scoped_refptr<DelegatedRendererLayer> observer1 = |
253 DelegatedRendererLayer::Create(NULL, frame_provider_); | 253 DelegatedRendererLayer::Create(frame_provider_); |
254 scoped_refptr<DelegatedRendererLayer> observer2 = | 254 scoped_refptr<DelegatedRendererLayer> observer2 = |
255 DelegatedRendererLayer::Create(NULL, frame_provider_); | 255 DelegatedRendererLayer::Create(frame_provider_); |
256 | 256 |
257 gfx::RectF damage; | 257 gfx::RectF damage; |
258 | 258 |
259 // Take a ref on each observer. | 259 // Take a ref on each observer. |
260 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); | 260 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); |
261 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); | 261 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); |
262 | 262 |
263 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); | 263 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); |
264 | 264 |
265 // Release both refs. But there's still a ref held in the frame | 265 // Release both refs. But there's still a ref held in the frame |
(...skipping 21 matching lines...) Expand all Loading... |
287 AddTextureQuad(frame.get(), 444); | 287 AddTextureQuad(frame.get(), 444); |
288 AddTransferableResource(frame.get(), 444); | 288 AddTransferableResource(frame.get(), 444); |
289 | 289 |
290 TransferableResourceArray reffed = frame->resource_list; | 290 TransferableResourceArray reffed = frame->resource_list; |
291 ReturnedResourceArray returned; | 291 ReturnedResourceArray returned; |
292 TransferableResource::ReturnResources(reffed, &returned); | 292 TransferableResource::ReturnResources(reffed, &returned); |
293 | 293 |
294 SetFrameProvider(frame.Pass()); | 294 SetFrameProvider(frame.Pass()); |
295 | 295 |
296 scoped_refptr<DelegatedRendererLayer> observer1 = | 296 scoped_refptr<DelegatedRendererLayer> observer1 = |
297 DelegatedRendererLayer::Create(NULL, frame_provider_); | 297 DelegatedRendererLayer::Create(frame_provider_); |
298 scoped_refptr<DelegatedRendererLayer> observer2 = | 298 scoped_refptr<DelegatedRendererLayer> observer2 = |
299 DelegatedRendererLayer::Create(NULL, frame_provider_); | 299 DelegatedRendererLayer::Create(frame_provider_); |
300 | 300 |
301 gfx::RectF damage; | 301 gfx::RectF damage; |
302 | 302 |
303 // Both observers get a full frame of damage on the first request. | 303 // Both observers get a full frame of damage on the first request. |
304 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); | 304 frame_provider_->GetFrameDataAndRefResources(observer1, &damage); |
305 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); | 305 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); |
306 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); | 306 frame_provider_->GetFrameDataAndRefResources(observer2, &damage); |
307 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); | 307 EXPECT_EQ(gfx::RectF(5.f, 5.f).ToString(), damage.ToString()); |
308 | 308 |
309 // And both get no damage on the 2nd request. | 309 // And both get no damage on the 2nd request. |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 | 386 |
387 frame_provider_ = NULL; | 387 frame_provider_ = NULL; |
388 | 388 |
389 // Nothing is returned twice. | 389 // Nothing is returned twice. |
390 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); | 390 EXPECT_FALSE(ReturnAndResetResourcesAvailable()); |
391 EXPECT_EQ(0u, resources_.size()); | 391 EXPECT_EQ(0u, resources_.size()); |
392 } | 392 } |
393 | 393 |
394 } // namespace | 394 } // namespace |
395 } // namespace cc | 395 } // namespace cc |
OLD | NEW |