61 child_path.
addRect(child_bounds);
62 auto mock_layer = std::make_shared<MockLayer>(child_path);
63 auto layer = std::make_shared<ContainerLayer>();
64 layer->Add(mock_layer);
69 EXPECT_EQ(mock_layer->paint_bounds(),
kEmptyRect);
74 layer_tree->Paint(
frame());
75 EXPECT_EQ(mock_canvas().draw_calls(), std::vector<MockCanvas::DrawCall>());
82 auto mock_layer = std::make_shared<MockLayer>(child_path, child_paint);
83 auto layer = std::make_shared<ContainerLayer>();
84 layer->Add(mock_layer);
89 layer_tree->Preroll(
frame());
90 EXPECT_EQ(mock_layer->paint_bounds(), child_bounds);
91 EXPECT_EQ(layer->paint_bounds(), mock_layer->paint_bounds());
92 EXPECT_FALSE(mock_layer->is_empty());
93 EXPECT_FALSE(layer->is_empty());
94 EXPECT_EQ(mock_layer->parent_matrix(), root_transform());
96 layer_tree->Paint(
frame());
97 EXPECT_EQ(mock_canvas().draw_calls(),
107 auto mock_layer1 = std::make_shared<MockLayer>(child_path1, child_paint1);
108 mock_layer1->set_fake_has_platform_view(
true);
109 auto mock_layer2 = std::make_shared<MockLayer>(child_path2, child_paint2);
110 auto layer = std::make_shared<ContainerLayer>();
111 layer->Add(mock_layer1);
112 layer->Add(mock_layer2);
119 layer_tree->Preroll(
frame());
120 EXPECT_EQ(mock_layer1->paint_bounds(), child_path1.
getBounds());
121 EXPECT_EQ(mock_layer2->paint_bounds(), child_path2.
getBounds());
122 EXPECT_EQ(layer->paint_bounds(), expected_total_bounds);
123 EXPECT_FALSE(mock_layer1->is_empty());
124 EXPECT_FALSE(mock_layer2->is_empty());
125 EXPECT_FALSE(layer->is_empty());
126 EXPECT_EQ(mock_layer1->parent_matrix(), root_transform());
127 EXPECT_EQ(mock_layer2->parent_matrix(), root_transform());
128 EXPECT_EQ(mock_layer1->parent_cull_rect(),
kGiantRect);
129 EXPECT_EQ(mock_layer2->parent_cull_rect(),
132 layer_tree->Paint(
frame());
134 mock_canvas().draw_calls(),
138 child_path2, child_paint2}}}));
145 auto mock_layer1 = std::make_shared<MockLayer>(child_path1, child_paint1);
146 auto mock_layer2 = std::make_shared<MockLayer>(
SkPath(), child_paint2);
147 auto layer = std::make_shared<ContainerLayer>();
148 layer->Add(mock_layer1);
149 layer->Add(mock_layer2);
154 layer_tree->Preroll(
frame());
155 EXPECT_EQ(mock_layer1->paint_bounds(), child_path1.
getBounds());
156 EXPECT_EQ(mock_layer2->paint_bounds(),
SkPath().getBounds());
157 EXPECT_EQ(layer->paint_bounds(), child_path1.
getBounds());
158 EXPECT_FALSE(mock_layer1->is_empty());
160 EXPECT_FALSE(layer->is_empty());
161 EXPECT_EQ(mock_layer1->parent_matrix(), root_transform());
162 EXPECT_EQ(mock_layer2->parent_matrix(), root_transform());
163 EXPECT_EQ(mock_layer1->parent_cull_rect(),
kGiantRect);
164 EXPECT_EQ(mock_layer2->parent_cull_rect(),
kGiantRect);
166 layer_tree->Paint(
frame());
167 EXPECT_EQ(mock_canvas().draw_calls(),
177 auto mock_layer1 = std::make_shared<MockLayer>(child_path1, child_paint1);
178 auto mock_layer2 = std::make_shared<MockLayer>(child_path2, child_paint2);
179 auto layer = std::make_shared<ContainerLayer>();
180 layer->Add(mock_layer1);
181 layer->Add(mock_layer2);
188 layer_tree->Preroll(
frame());
189 EXPECT_EQ(mock_layer1->paint_bounds(), child_path1.
getBounds());
190 EXPECT_EQ(mock_layer2->paint_bounds(), child_path2.
getBounds());
191 EXPECT_EQ(layer->paint_bounds(), expected_total_bounds);
192 EXPECT_FALSE(mock_layer1->is_empty());
193 EXPECT_FALSE(mock_layer2->is_empty());
194 EXPECT_FALSE(layer->is_empty());
195 EXPECT_EQ(mock_layer1->parent_matrix(), root_transform());
196 EXPECT_EQ(mock_layer2->parent_matrix(), root_transform());
197 EXPECT_EQ(mock_layer1->parent_cull_rect(),
kGiantRect);
198 EXPECT_EQ(mock_layer2->parent_cull_rect(),
kGiantRect);
200 layer_tree->Paint(
frame());
202 mock_canvas().draw_calls(),
206 child_path2, child_paint2}}}));
214 std::shared_ptr<TextureRegistry> mock_registry;
216 auto expect_defaults = [&state_stack, &mock_raster_time, &mock_ui_time,
218 EXPECT_EQ(context.raster_cache,
nullptr);
219 EXPECT_EQ(context.gr_context,
nullptr);
220 EXPECT_EQ(context.view_embedder,
nullptr);
221 EXPECT_EQ(&context.state_stack, &state_stack);
222 EXPECT_EQ(context.dst_color_space,
nullptr);
223 EXPECT_EQ(context.state_stack.device_cull_rect(),
kGiantRect);
224 EXPECT_EQ(context.state_stack.transform_3x3(),
SkMatrix::I());
225 EXPECT_EQ(context.state_stack.transform_4x4(),
SkM44());
226 EXPECT_EQ(context.surface_needs_readback,
false);
228 EXPECT_EQ(&context.raster_time, &mock_raster_time);
229 EXPECT_EQ(&context.ui_time, &mock_ui_time);
230 EXPECT_EQ(context.texture_registry.get(), mock_registry.get());
232 EXPECT_EQ(context.has_platform_view,
false);
233 EXPECT_EQ(context.has_texture_layer,
false);
235 EXPECT_EQ(context.renderable_state_flags, 0);
236 EXPECT_EQ(context.raster_cached_entries,
nullptr);
242 .raster_time = mock_raster_time,
243 .ui_time = mock_ui_time,
244 .texture_registry = mock_registry,
246 expect_defaults(context);
253 std::shared_ptr<TextureRegistry> mock_registry;
255 auto expect_defaults = [&state_stack, &mock_raster_time, &mock_ui_time,
257 EXPECT_EQ(&context.state_stack, &state_stack);
258 EXPECT_EQ(context.canvas,
nullptr);
259 EXPECT_EQ(context.gr_context,
nullptr);
260 EXPECT_EQ(context.view_embedder,
nullptr);
261 EXPECT_EQ(&context.raster_time, &mock_raster_time);
262 EXPECT_EQ(&context.ui_time, &mock_ui_time);
263 EXPECT_EQ(context.texture_registry.get(), mock_registry.get());
264 EXPECT_EQ(context.raster_cache,
nullptr);
265 EXPECT_EQ(context.state_stack.checkerboard_func(),
nullptr);
267 EXPECT_EQ(context.enable_leaf_layer_tracing,
false);
268 EXPECT_EQ(context.layer_snapshot_store,
nullptr);
274 .raster_time = mock_raster_time,
275 .ui_time = mock_ui_time,
276 .texture_registry = mock_registry,
278 expect_defaults(context);
LayerStateStack & state_stack
LayerStateStack & state_stack