| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "cc/output/compositor_frame.h" | 6 #include "cc/output/compositor_frame.h" |
| 7 #include "cc/output/delegated_frame_data.h" | 7 #include "cc/output/delegated_frame_data.h" |
| 8 #include "cc/resources/resource_provider.h" | 8 #include "cc/resources/resource_provider.h" |
| 9 #include "cc/surfaces/surface.h" | 9 #include "cc/surfaces/surface.h" |
| 10 #include "cc/surfaces/surface_factory.h" | 10 #include "cc/surfaces/surface_factory.h" |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 factory_->Create(id2); | 483 factory_->Create(id2); |
| 484 | 484 |
| 485 manager_.RegisterSurfaceIdNamespace(0); | 485 manager_.RegisterSurfaceIdNamespace(0); |
| 486 | 486 |
| 487 manager_.GetSurfaceForId(id2) | 487 manager_.GetSurfaceForId(id2) |
| 488 ->AddDestructionDependency(SurfaceSequence(0, 4)); | 488 ->AddDestructionDependency(SurfaceSequence(0, 4)); |
| 489 | 489 |
| 490 // Give id2 a frame that references surface_id_. | 490 // Give id2 a frame that references surface_id_. |
| 491 { | 491 { |
| 492 scoped_ptr<RenderPass> render_pass(RenderPass::Create()); | 492 scoped_ptr<RenderPass> render_pass(RenderPass::Create()); |
| 493 render_pass->referenced_surfaces.push_back(surface_id_); | |
| 494 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); | 493 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); |
| 495 frame_data->render_pass_list.push_back(std::move(render_pass)); | 494 frame_data->render_pass_list.push_back(std::move(render_pass)); |
| 496 scoped_ptr<CompositorFrame> frame(new CompositorFrame); | 495 scoped_ptr<CompositorFrame> frame(new CompositorFrame); |
| 496 frame->metadata.referenced_surfaces.push_back(surface_id_); |
| 497 frame->delegated_frame_data = std::move(frame_data); | 497 frame->delegated_frame_data = std::move(frame_data); |
| 498 factory_->SubmitCompositorFrame(id2, std::move(frame), | 498 factory_->SubmitCompositorFrame(id2, std::move(frame), |
| 499 SurfaceFactory::DrawCallback()); | 499 SurfaceFactory::DrawCallback()); |
| 500 } | 500 } |
| 501 factory_->Destroy(id2); | 501 factory_->Destroy(id2); |
| 502 | 502 |
| 503 // Give surface_id_ a frame that references id2. | 503 // Give surface_id_ a frame that references id2. |
| 504 { | 504 { |
| 505 scoped_ptr<RenderPass> render_pass(RenderPass::Create()); | 505 scoped_ptr<RenderPass> render_pass(RenderPass::Create()); |
| 506 render_pass->referenced_surfaces.push_back(id2); | |
| 507 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); | 506 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); |
| 508 frame_data->render_pass_list.push_back(std::move(render_pass)); | 507 frame_data->render_pass_list.push_back(std::move(render_pass)); |
| 509 scoped_ptr<CompositorFrame> frame(new CompositorFrame); | 508 scoped_ptr<CompositorFrame> frame(new CompositorFrame); |
| 509 frame->metadata.referenced_surfaces.push_back(id2); |
| 510 frame->delegated_frame_data = std::move(frame_data); | 510 frame->delegated_frame_data = std::move(frame_data); |
| 511 factory_->SubmitCompositorFrame(surface_id_, std::move(frame), | 511 factory_->SubmitCompositorFrame(surface_id_, std::move(frame), |
| 512 SurfaceFactory::DrawCallback()); | 512 SurfaceFactory::DrawCallback()); |
| 513 } | 513 } |
| 514 factory_->Destroy(surface_id_); | 514 factory_->Destroy(surface_id_); |
| 515 EXPECT_TRUE(manager_.GetSurfaceForId(id2)); | 515 EXPECT_TRUE(manager_.GetSurfaceForId(id2)); |
| 516 // surface_id_ should be retained by reference from id2. | 516 // surface_id_ should be retained by reference from id2. |
| 517 EXPECT_TRUE(manager_.GetSurfaceForId(surface_id_)); | 517 EXPECT_TRUE(manager_.GetSurfaceForId(surface_id_)); |
| 518 | 518 |
| 519 // Satisfy last destruction dependency for id2. | 519 // Satisfy last destruction dependency for id2. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 surface_id_ = SurfaceId(); | 555 surface_id_ = SurfaceId(); |
| 556 factory_->DestroyAll(); | 556 factory_->DestroyAll(); |
| 557 | 557 |
| 558 EXPECT_EQ(&bfs, client_.begin_frame_source()); | 558 EXPECT_EQ(&bfs, client_.begin_frame_source()); |
| 559 factory_.reset(); | 559 factory_.reset(); |
| 560 EXPECT_EQ(nullptr, client_.begin_frame_source()); | 560 EXPECT_EQ(nullptr, client_.begin_frame_source()); |
| 561 } | 561 } |
| 562 | 562 |
| 563 } // namespace | 563 } // namespace |
| 564 } // namespace cc | 564 } // namespace cc |
| OLD | NEW |