@@ -19,8 +19,7 @@ namespace testing {
1919class LayerTreeTest : public CanvasTest {
2020 public:
2121 LayerTreeTest ()
22- : layer_tree_(SkISize::Make(64 , 64 ), 1 .0f ),
23- root_transform_ (SkMatrix::Translate(1 .0f , 1 .0f )),
22+ : root_transform_(SkMatrix::Translate(1 .0f , 1 .0f )),
2423 scoped_frame_ (compositor_context_.AcquireFrame(nullptr ,
2524 &mock_canvas (),
2625 nullptr,
@@ -31,12 +30,14 @@ class LayerTreeTest : public CanvasTest {
3130 nullptr,
3231 nullptr)) {}
3332
34- LayerTree& layer_tree () { return layer_tree_; }
3533 CompositorContext::ScopedFrame& frame () { return *scoped_frame_.get (); }
3634 const SkMatrix& root_transform () { return root_transform_; }
3735
36+ std::unique_ptr<LayerTree> BuildLayerTree (const LayerTree::Config& config) {
37+ return std::make_unique<LayerTree>(config, SkISize::Make (64 , 64 ));
38+ }
39+
3840 private:
39- LayerTree layer_tree_;
4041 CompositorContext compositor_context_;
4142 SkMatrix root_transform_;
4243 std::unique_ptr<CompositorContext::ScopedFrame> scoped_frame_;
@@ -45,12 +46,14 @@ class LayerTreeTest : public CanvasTest {
4546TEST_F (LayerTreeTest, PaintingEmptyLayerDies) {
4647 auto layer = std::make_shared<ContainerLayer>();
4748
48- layer_tree ().set_root_layer (layer);
49- layer_tree ().Preroll (frame ());
49+ auto layer_tree = BuildLayerTree (LayerTree::Config{
50+ .root_layer = layer,
51+ });
52+ layer_tree->Preroll (frame ());
5053 EXPECT_EQ (layer->paint_bounds (), SkRect::MakeEmpty ());
5154 EXPECT_TRUE (layer->is_empty ());
5255
53- layer_tree (). Paint (frame ());
56+ layer_tree-> Paint (frame ());
5457}
5558
5659TEST_F (LayerTreeTest, PaintBeforePrerollDies) {
@@ -61,13 +64,15 @@ TEST_F(LayerTreeTest, PaintBeforePrerollDies) {
6164 auto layer = std::make_shared<ContainerLayer>();
6265 layer->Add (mock_layer);
6366
64- layer_tree ().set_root_layer (layer);
67+ auto layer_tree = BuildLayerTree (LayerTree::Config{
68+ .root_layer = layer,
69+ });
6570 EXPECT_EQ (mock_layer->paint_bounds (), kEmptyRect );
6671 EXPECT_EQ (layer->paint_bounds (), kEmptyRect );
6772 EXPECT_TRUE (mock_layer->is_empty ());
6873 EXPECT_TRUE (layer->is_empty ());
6974
70- layer_tree (). Paint (frame ());
75+ layer_tree-> Paint (frame ());
7176 EXPECT_EQ (mock_canvas ().draw_calls (), std::vector<MockCanvas::DrawCall>());
7277}
7378
@@ -79,15 +84,17 @@ TEST_F(LayerTreeTest, Simple) {
7984 auto layer = std::make_shared<ContainerLayer>();
8085 layer->Add (mock_layer);
8186
82- layer_tree ().set_root_layer (layer);
83- layer_tree ().Preroll (frame ());
87+ auto layer_tree = BuildLayerTree (LayerTree::Config{
88+ .root_layer = layer,
89+ });
90+ layer_tree->Preroll (frame ());
8491 EXPECT_EQ (mock_layer->paint_bounds (), child_bounds);
8592 EXPECT_EQ (layer->paint_bounds (), mock_layer->paint_bounds ());
8693 EXPECT_FALSE (mock_layer->is_empty ());
8794 EXPECT_FALSE (layer->is_empty ());
8895 EXPECT_EQ (mock_layer->parent_matrix (), root_transform ());
8996
90- layer_tree (). Paint (frame ());
97+ layer_tree-> Paint (frame ());
9198 EXPECT_EQ (mock_canvas ().draw_calls (),
9299 std::vector ({MockCanvas::DrawCall{
93100 0 , MockCanvas::DrawPathData{child_path, child_paint}}}));
@@ -107,8 +114,10 @@ TEST_F(LayerTreeTest, Multiple) {
107114
108115 SkRect expected_total_bounds = child_path1.getBounds ();
109116 expected_total_bounds.join (child_path2.getBounds ());
110- layer_tree ().set_root_layer (layer);
111- layer_tree ().Preroll (frame ());
117+ auto layer_tree = BuildLayerTree (LayerTree::Config{
118+ .root_layer = layer,
119+ });
120+ layer_tree->Preroll (frame ());
112121 EXPECT_EQ (mock_layer1->paint_bounds (), child_path1.getBounds ());
113122 EXPECT_EQ (mock_layer2->paint_bounds (), child_path2.getBounds ());
114123 EXPECT_EQ (layer->paint_bounds (), expected_total_bounds);
@@ -121,7 +130,7 @@ TEST_F(LayerTreeTest, Multiple) {
121130 EXPECT_EQ (mock_layer2->parent_cull_rect (),
122131 kGiantRect ); // Siblings are independent
123132
124- layer_tree (). Paint (frame ());
133+ layer_tree-> Paint (frame ());
125134 EXPECT_EQ (
126135 mock_canvas ().draw_calls (),
127136 std::vector ({MockCanvas::DrawCall{
@@ -140,8 +149,10 @@ TEST_F(LayerTreeTest, MultipleWithEmpty) {
140149 layer->Add (mock_layer1);
141150 layer->Add (mock_layer2);
142151
143- layer_tree ().set_root_layer (layer);
144- layer_tree ().Preroll (frame ());
152+ auto layer_tree = BuildLayerTree (LayerTree::Config{
153+ .root_layer = layer,
154+ });
155+ layer_tree->Preroll (frame ());
145156 EXPECT_EQ (mock_layer1->paint_bounds (), child_path1.getBounds ());
146157 EXPECT_EQ (mock_layer2->paint_bounds (), SkPath ().getBounds ());
147158 EXPECT_EQ (layer->paint_bounds (), child_path1.getBounds ());
@@ -153,7 +164,7 @@ TEST_F(LayerTreeTest, MultipleWithEmpty) {
153164 EXPECT_EQ (mock_layer1->parent_cull_rect (), kGiantRect );
154165 EXPECT_EQ (mock_layer2->parent_cull_rect (), kGiantRect );
155166
156- layer_tree (). Paint (frame ());
167+ layer_tree-> Paint (frame ());
157168 EXPECT_EQ (mock_canvas ().draw_calls (),
158169 std::vector ({MockCanvas::DrawCall{
159170 0 , MockCanvas::DrawPathData{child_path1, child_paint1}}}));
@@ -172,8 +183,10 @@ TEST_F(LayerTreeTest, NeedsSystemComposite) {
172183
173184 SkRect expected_total_bounds = child_path1.getBounds ();
174185 expected_total_bounds.join (child_path2.getBounds ());
175- layer_tree ().set_root_layer (layer);
176- layer_tree ().Preroll (frame ());
186+ auto layer_tree = BuildLayerTree (LayerTree::Config{
187+ .root_layer = layer,
188+ });
189+ layer_tree->Preroll (frame ());
177190 EXPECT_EQ (mock_layer1->paint_bounds (), child_path1.getBounds ());
178191 EXPECT_EQ (mock_layer2->paint_bounds (), child_path2.getBounds ());
179192 EXPECT_EQ (layer->paint_bounds (), expected_total_bounds);
@@ -185,7 +198,7 @@ TEST_F(LayerTreeTest, NeedsSystemComposite) {
185198 EXPECT_EQ (mock_layer1->parent_cull_rect (), kGiantRect );
186199 EXPECT_EQ (mock_layer2->parent_cull_rect (), kGiantRect );
187200
188- layer_tree (). Paint (frame ());
201+ layer_tree-> Paint (frame ());
189202 EXPECT_EQ (
190203 mock_canvas ().draw_calls (),
191204 std::vector ({MockCanvas::DrawCall{
0 commit comments