| 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 |