5#include "gtest/gtest.h"
21 "LayerStateStack state queried without a delegate");
23 "LayerStateStack state queried without a delegate");
24 EXPECT_DEATH_IF_SUPPORTED(state_stack.
matrix(),
25 "LayerStateStack state queried without a delegate");
27 "LayerStateStack state queried without a delegate");
30 auto mutator = state_stack.
save();
53 state_stack.
fill(dl_paint);
102 auto mutator = state_stack.
save();
137 auto mutator = state_stack.
save();
145 auto mutator2 = state_stack.
save();
156 auto restore = state_stack.
applyState(rect, 0);
161 state_stack.
fill(paint);
186 state_stack.
fill(paint);
215 auto mutator = state_stack.
save();
222 auto mutator2 = state_stack.
save();
232 auto restore = state_stack.
applyState(rect, 0);
236 state_stack.
fill(paint);
244 expected.
SaveLayer(rect, &outer_save_paint);
245 expected.
SaveLayer(rect, &inner_save_paint);
263 state_stack.
fill(paint);
272 expected.
DrawRect(rect, draw_paint);
285 std::shared_ptr<DlImageFilter> outer_filter =
287 std::shared_ptr<DlImageFilter> inner_filter =
289 DlRect inner_src_rect = rect;
291 ASSERT_EQ(inner_filter->map_local_bounds(rect, dl_outer_src_rect),
293 DlRect outer_src_rect = dl_outer_src_rect;
298 auto mutator = state_stack.
save();
305 auto mutator2 = state_stack.
save();
315 auto restore = state_stack.
applyState(rect, 0);
319 state_stack.
fill(paint);
327 expected.
SaveLayer(outer_src_rect, &outer_save_paint);
328 expected.
SaveLayer(inner_src_rect, &inner_save_paint);
346 state_stack.
fill(paint);
354 expected.
SaveLayer(outer_src_rect, &save_paint);
355 expected.
DrawRect(rect, draw_paint);
377 auto mutator1 = state_stack.
save();
379 mutator1.applyOpacity(rect, 0.5f);
383 auto mutator2 = state_stack.
save();
385 mutator2.applyColorFilter(rect, color_filter);
401 auto mutator1 = state_stack.
save();
403 mutator1.applyColorFilter(rect, color_filter);
407 auto mutator2 = state_stack.
save();
409 mutator2.applyOpacity(rect, 0.5f);
427 std::shared_ptr<DlImageFilter> image_filter =
436 auto mutator1 = state_stack.
save();
438 mutator1.applyOpacity(rect, 0.5f);
442 auto mutator2 = state_stack.
save();
444 mutator2.applyImageFilter(rect, image_filter);
460 auto mutator1 = state_stack.
save();
462 mutator1.applyImageFilter(rect, image_filter);
466 auto mutator2 = state_stack.
save();
468 mutator2.applyOpacity(rect, 0.5f);
496 auto mutator1 = state_stack.
save();
498 mutator1.applyColorFilter(rect, color_filter);
502 auto mutator2 = state_stack.
save();
504 mutator2.applyImageFilter(rect, image_filter);
520 auto mutator1 = state_stack.
save();
522 mutator1.applyImageFilter(rect, image_filter);
526 auto mutator2 = state_stack.
save();
528 mutator2.applyColorFilter(rect, color_filter);
DlMatrix GetMatrix() const override
void SaveLayer(const std::optional< DlRect > &bounds, const DlPaint *paint=nullptr, const DlImageFilter *backdrop=nullptr, std::optional< int64_t > backdrop_id=std::nullopt) override
sk_sp< DisplayList > Build()
int GetSaveCount() const override
void DrawRect(const DlRect &rect, const DlPaint &paint) override
Developer-facing API for rendering anything within the engine.
virtual DlMatrix GetMatrix() const =0
static std::shared_ptr< const DlColorFilter > MakeBlend(DlColor color, DlBlendMode mode)
static std::shared_ptr< DlImageFilter > MakeBlur(DlScalar sigma_x, DlScalar sigma_y, DlTileMode tile_mode)
DlPaint & setImageFilter(std::nullptr_t filter)
DlPaint & setOpacity(DlScalar opacity)
DlPaint & setColorFilter(std::nullptr_t filter)
void applyColorFilter(const DlRect &bounds, const std::shared_ptr< const DlColorFilter > &filter)
void translate(DlScalar tx, DlScalar ty)
void applyOpacity(const DlRect &bounds, DlScalar opacity)
void applyImageFilter(const DlRect &bounds, const std::shared_ptr< DlImageFilter > &filter)
DlScalar outstanding_opacity() const
void fill(MutatorsStack *mutators)
DlCanvas * canvas_delegate()
std::shared_ptr< DlImageFilter > outstanding_image_filter() const
DlRect device_cull_rect() const
bool content_culled(const DlRect &content_bounds) const
static constexpr int kCallerCanApplyColorFilter
void set_delegate(DlCanvas *canvas)
void set_preroll_delegate(const DlRect &cull_rect, const DlMatrix &matrix)
AutoRestore applyState(const DlRect &bounds, int can_apply_flags)
std::shared_ptr< const DlColorFilter > outstanding_color_filter() const
DlRect outstanding_bounds() const
static constexpr int kCallerCanApplyImageFilter
const DlMatrix matrix() const
DlRect local_cull_rect() const
static constexpr int kCallerCanApplyOpacity
TEST(NativeAssetsManagerTest, NoAvailableAssets)
bool DisplayListsEQ_Verbose(const DisplayList *a, const DisplayList *b)
impeller::Matrix DlMatrix
static constexpr DlRect kGiantRect
static constexpr DlColor kYellow()
static constexpr DlColor kRed()
A 4x4 matrix using column-major storage.
static constexpr Matrix MakeTranslation(const Vector3 &t)
constexpr bool IsIdentity() const
static constexpr TRect MakeWH(Type width, Type height)
static constexpr TRect MakeLTRB(Type left, Type top, Type right, Type bottom)