| 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 "cc/surfaces/surface_factory.h" | 5 #include "cc/surfaces/surface_factory.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 class TestSurfaceFactoryClient : public SurfaceFactoryClient { | 29 class TestSurfaceFactoryClient : public SurfaceFactoryClient { |
| 30 public: | 30 public: |
| 31 TestSurfaceFactoryClient() : begin_frame_source_(nullptr) {} | 31 TestSurfaceFactoryClient() : begin_frame_source_(nullptr) {} |
| 32 ~TestSurfaceFactoryClient() override {} | 32 ~TestSurfaceFactoryClient() override {} |
| 33 | 33 |
| 34 void ReturnResources(const ReturnedResourceArray& resources) override { | 34 void ReturnResources(const ReturnedResourceArray& resources) override { |
| 35 returned_resources_.insert( | 35 returned_resources_.insert( |
| 36 returned_resources_.end(), resources.begin(), resources.end()); | 36 returned_resources_.end(), resources.begin(), resources.end()); |
| 37 } | 37 } |
| 38 | 38 |
| 39 void SetBeginFrameSource(SurfaceId surface_id, | 39 void SetBeginFrameSource(BeginFrameSource* begin_frame_source) override { |
| 40 BeginFrameSource* begin_frame_source) override { | |
| 41 begin_frame_source_ = begin_frame_source; | 40 begin_frame_source_ = begin_frame_source; |
| 42 } | 41 } |
| 43 | 42 |
| 44 const ReturnedResourceArray& returned_resources() const { | 43 const ReturnedResourceArray& returned_resources() const { |
| 45 return returned_resources_; | 44 return returned_resources_; |
| 46 } | 45 } |
| 47 | 46 |
| 48 void clear_returned_resources() { returned_resources_.clear(); } | 47 void clear_returned_resources() { returned_resources_.clear(); } |
| 49 | 48 |
| 50 BeginFrameSource* begin_frame_source() const { return begin_frame_source_; } | 49 BeginFrameSource* begin_frame_source() const { return begin_frame_source_; } |
| (...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 EXPECT_FALSE(called2); | 586 EXPECT_FALSE(called2); |
| 588 EXPECT_FALSE(called3); | 587 EXPECT_FALSE(called3); |
| 589 | 588 |
| 590 factory_->Destroy(surface_id_); | 589 factory_->Destroy(surface_id_); |
| 591 surface_id_ = SurfaceId(); | 590 surface_id_ = SurfaceId(); |
| 592 EXPECT_TRUE(called1); | 591 EXPECT_TRUE(called1); |
| 593 EXPECT_TRUE(called2); | 592 EXPECT_TRUE(called2); |
| 594 EXPECT_TRUE(called3); | 593 EXPECT_TRUE(called3); |
| 595 } | 594 } |
| 596 | 595 |
| 597 // Verifies BFS is forwarded to the client. | |
| 598 TEST_F(SurfaceFactoryTest, SetBeginFrameSource) { | |
| 599 FakeBeginFrameSource bfs1; | |
| 600 FakeBeginFrameSource bfs2; | |
| 601 EXPECT_EQ(nullptr, client_.begin_frame_source()); | |
| 602 factory_->SetBeginFrameSource(surface_id_, &bfs1); | |
| 603 EXPECT_EQ(&bfs1, client_.begin_frame_source()); | |
| 604 factory_->SetBeginFrameSource(surface_id_, &bfs2); | |
| 605 EXPECT_EQ(&bfs2, client_.begin_frame_source()); | |
| 606 factory_->SetBeginFrameSource(surface_id_, nullptr); | |
| 607 EXPECT_EQ(nullptr, client_.begin_frame_source()); | |
| 608 } | |
| 609 | |
| 610 TEST_F(SurfaceFactoryTest, BeginFrameSourceRemovedOnFactoryDestruction) { | |
| 611 FakeBeginFrameSource bfs; | |
| 612 factory_->SetBeginFrameSource(surface_id_, &bfs); | |
| 613 EXPECT_EQ(&bfs, client_.begin_frame_source()); | |
| 614 | |
| 615 // Prevent the Surface from being destroyed when we destroy the factory. | |
| 616 manager_.RegisterSurfaceIdNamespace(0); | |
| 617 manager_.GetSurfaceForId(surface_id_) | |
| 618 ->AddDestructionDependency(SurfaceSequence(0, 4)); | |
| 619 | |
| 620 surface_id_ = SurfaceId(); | |
| 621 factory_->DestroyAll(); | |
| 622 | |
| 623 EXPECT_EQ(&bfs, client_.begin_frame_source()); | |
| 624 factory_.reset(); | |
| 625 EXPECT_EQ(nullptr, client_.begin_frame_source()); | |
| 626 } | |
| 627 | |
| 628 } // namespace | 596 } // namespace |
| 629 } // namespace cc | 597 } // namespace cc |
| OLD | NEW |