76 {
85
86 grp->addChild(d1);
87 grp->addChild(d2);
88
89 {
90
94 nullptr);
95
97 {{ -1, 0 }, nullptr },
98 {{ 0, -1 }, nullptr },
99 {{ 100, 0 }, nullptr },
100 {{ 0, 100 }, nullptr },
101 {{ 0, 0 }, d2 },
102 {{ 99, 99 }, d2 },
103 });
104 }
105
106 {
107
108 r2->setL(200); r2->setT(100); r2->setR(300); r2->setB(200);
109 std::vector<SkRect> damage = { {0, 0, 100, 100}, { 200, 100, 300, 200} };
113 &damage);
114
116 {{ -1, 0 }, nullptr },
117 {{ 0, -1 }, nullptr },
118 {{ 100, 0 }, nullptr },
119 {{ 0, 100 }, nullptr },
120 {{ 0, 0 }, d1 },
121 {{ 99, 99 }, d1 },
122
123 {{ 199, 100 }, nullptr },
124 {{ 200, 99 }, nullptr },
125 {{ 300, 100 }, nullptr },
126 {{ 200, 200 }, nullptr },
127 {{ 200, 100 }, d2 },
128 {{ 299, 199 }, d2 },
129 });
130 }
131
132 {
133
134 color->setColor(0xffff0000);
135 std::vector<SkRect> damage = { {0, 0, 100, 100}, { 200, 100, 300, 200} };
139 &damage);
140 }
141
142 {
143
144 r1->setR(50);
145 std::vector<SkRect> damage = { {0, 0, 100, 100}, { 0, 0, 50, 100} };
149 &damage);
150
152 {{ -1, 0 }, nullptr },
153 {{ 0, -1 }, nullptr },
154 {{ 50, 0 }, nullptr },
155 {{ 0, 100 }, nullptr },
156 {{ 0, 0 }, d1 },
157 {{ 49, 99 }, d1 },
158
159 {{ 199, 100 }, nullptr },
160 {{ 200, 99 }, nullptr },
161 {{ 300, 100 }, nullptr },
162 {{ 200, 200 }, nullptr },
163 {{ 200, 100 }, d2 },
164 {{ 299, 199 }, d2 },
165 });
166 }
167
168 {
169
171 std::vector<SkRect> damage = { {0, 0, 300, 200}, { 0, 0, 600, 400} };
175 &damage);
176
178 {{ -1, 0 }, nullptr },
179 {{ 0, -1 }, nullptr },
180 {{ 25, 0 }, nullptr },
181 {{ 0, 50 }, nullptr },
182 {{ 0, 0 }, d1 },
183 {{ 24, 49 }, d1 },
184
185 {{ 99, 50 }, nullptr },
186 {{ 100, 49 }, nullptr },
187 {{ 150, 50 }, nullptr },
188 {{ 100, 100 }, nullptr },
189 {{ 100, 50 }, d2 },
190 {{ 149, 99 }, d2 },
191 });
192 }
193
194 {
195
196 r2->setR(250);
197 std::vector<SkRect> damage = { {400, 200, 600, 400}, { 400, 200, 500, 400} };
201 &damage);
202
204 {{ -1, 0 }, nullptr },
205 {{ 0, -1 }, nullptr },
206 {{ 25, 0 }, nullptr },
207 {{ 0, 50 }, nullptr },
208 {{ 0, 0 }, d1 },
209 {{ 24, 49 }, d1 },
210
211 {{ 99, 50 }, nullptr },
212 {{ 100, 49 }, nullptr },
213 {{ 125, 50 }, nullptr },
214 {{ 100, 100 }, nullptr },
215 {{ 100, 50 }, d2 },
216 {{ 124, 99 }, d2 },
217 });
218 }
219}
static void check_inval(skiatest::Reporter *reporter, const sk_sp< sksg::Node > &root, const SkRect &expected_bounds, const SkRect &expected_inval_bounds, const std::vector< SkRect > *expected_damage)
static void check_hittest(skiatest::Reporter *reporter, const sk_sp< sksg::RenderNode > &root, const std::vector< HitTest > &tests)
static SkMatrix Scale(SkScalar sx, SkScalar sy)
static SkRect MakeLargeS32()
static sk_sp< Matrix > Make(const T &m)
unsigned useCenter Optional< SkMatrix > matrix
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)