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

Unified Diff: cc/layers/surface_layer_unittest.cc

Issue 2514033002: Introducing SurfaceReferenceFactory (Closed)
Patch Set: up Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/surface_layer_unittest.cc
diff --git a/cc/layers/surface_layer_unittest.cc b/cc/layers/surface_layer_unittest.cc
index 5b688676e02ccd34764232b9f6f1f5e0bc052fec..048bd989fe12e46435c387605e221aa512427b01 100644
--- a/cc/layers/surface_layer_unittest.cc
+++ b/cc/layers/surface_layer_unittest.cc
@@ -14,6 +14,8 @@
#include "cc/layers/solid_color_layer.h"
#include "cc/layers/surface_layer.h"
#include "cc/output/compositor_frame.h"
+#include "cc/surfaces/sequence_surface_reference_factory.h"
+#include "cc/surfaces/surface_info.h"
#include "cc/test/fake_impl_task_runner_provider.h"
#include "cc/test/fake_layer_tree_host.h"
#include "cc/test/fake_layer_tree_host_client.h"
@@ -54,17 +56,32 @@ class SurfaceLayerTest : public testing::Test {
LayerTree* layer_tree_;
};
-void SatisfyCallback(SurfaceSequence* out, const SurfaceSequence& in) {
- *out = in;
-}
+class TestSurfaceReferenceFactory : public SequenceSurfaceReferenceFactory {
+ protected:
+ void SatisfySequence(const SurfaceSequence& seq) const override {
+ *out_seq_ = seq;
+ }
-void RequireCallback(SurfaceId* out_id,
- std::set<SurfaceSequence>* out,
- const SurfaceId& in_id,
- const SurfaceSequence& in) {
- *out_id = in_id;
- out->insert(in);
-}
+ void RequireSequence(const SurfaceId& id,
+ const SurfaceSequence& seq) const override {
+ *out_id_ = id;
+ out_set_->insert(seq);
+ }
+
+ public:
+ TestSurfaceReferenceFactory(SurfaceSequence* out_seq,
+ SurfaceId* out_id,
+ std::set<SurfaceSequence>* out_set)
+ : out_seq_(out_seq), out_id_(out_id), out_set_(out_set) {}
+
+ protected:
+ ~TestSurfaceReferenceFactory() override = default;
+
+ private:
+ SurfaceSequence* out_seq_;
+ SurfaceId* out_id_;
+ std::set<SurfaceSequence>* out_set_;
+};
Fady Samuel 2016/12/13 22:55:05 DISALLOW_COPY_AND_ASSIGN
Saman Sami 2016/12/14 17:50:01 Done.
// Check that one surface can be referenced by multiple LayerTreeHosts, and
// each will create its own SurfaceSequence that's satisfied on destruction.
@@ -75,12 +92,14 @@ TEST_F(SurfaceLayerTest, MultipleFramesOneSurface) {
SurfaceId required_id;
std::set<SurfaceSequence> required_seq;
- scoped_refptr<SurfaceLayer> layer(SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &blank_change),
- base::Bind(&RequireCallback, &required_id, &required_seq)));
- layer->SetSurfaceId(
+ scoped_refptr<SurfaceReferenceFactory> ref_factory =
+ new TestSurfaceReferenceFactory(&blank_change, &required_id,
+ &required_seq);
+ auto layer = SurfaceLayer::Create(ref_factory);
+ SurfaceInfo info(
SurfaceId(kArbitraryFrameSinkId, LocalFrameId(1, kArbitraryToken)), 1.f,
gfx::Size(1, 1));
+ layer->SetSurfaceInfo(info);
layer_tree_host_->GetSurfaceSequenceGenerator()->set_frame_sink_id(
FrameSinkId(1, 1));
layer_tree_->SetRootLayer(layer);
@@ -89,12 +108,8 @@ TEST_F(SurfaceLayerTest, MultipleFramesOneSurface) {
std::unique_ptr<FakeLayerTreeHost> layer_tree_host2 =
FakeLayerTreeHost::Create(&fake_client_, &task_graph_runner_,
animation_host2.get());
- scoped_refptr<SurfaceLayer> layer2(SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &blank_change),
- base::Bind(&RequireCallback, &required_id, &required_seq)));
- layer2->SetSurfaceId(
- SurfaceId(kArbitraryFrameSinkId, LocalFrameId(1, kArbitraryToken)), 1.f,
- gfx::Size(1, 1));
+ auto layer2 = SurfaceLayer::Create(std::move(ref_factory));
+ layer2->SetSurfaceInfo(info);
layer_tree_host2->GetSurfaceSequenceGenerator()->set_frame_sink_id(
FrameSinkId(2, 2));
layer_tree_host2->SetRootLayer(layer2);
@@ -142,12 +157,12 @@ class SurfaceLayerSwapPromise : public LayerTreeTest {
void BeginTest() override {
layer_tree_host()->GetSurfaceSequenceGenerator()->set_frame_sink_id(
FrameSinkId(1, 1));
- layer_ = SurfaceLayer::Create(
- base::Bind(&SatisfyCallback, &satisfied_sequence_),
- base::Bind(&RequireCallback, &required_id_, &required_set_));
- layer_->SetSurfaceId(
+ layer_ = SurfaceLayer::Create(new TestSurfaceReferenceFactory(
+ &satisfied_sequence_, &required_id_, &required_set_));
+ SurfaceInfo info(
SurfaceId(kArbitraryFrameSinkId, LocalFrameId(1, kArbitraryToken)), 1.f,
gfx::Size(1, 1));
+ layer_->SetSurfaceInfo(info);
// Layer hasn't been added to tree so no SurfaceSequence generated yet.
EXPECT_EQ(0u, required_set_.size());

Powered by Google App Engine
This is Rietveld 408576698