155 {
163 auto empty_setup = [](DlCanvas&) {};
164
165 ASSERT_TRUE(
rect.fLeft <
rect.fRight);
166 ASSERT_TRUE(
rect.fTop <
rect.fBottom);
167 ASSERT_FALSE(
rect.isEmpty());
169 ASSERT_TRUE(invertedLR.
isEmpty());
171 ASSERT_TRUE(invertedTB.
isEmpty());
172 ASSERT_TRUE(invertedLTRB.
fLeft > invertedLTRB.
fRight);
173 ASSERT_TRUE(invertedLTRB.
fTop > invertedLTRB.
fBottom);
174 ASSERT_TRUE(invertedLTRB.
isEmpty());
175
176 DlPaint ref_paint = DlPaint();
179 ref_bounds, desc + " LR swapped");
181 ref_bounds, desc + " TB swapped");
183 ref_bounds, desc + " LR&TB swapped");
184
185
186
187
188
189
190 DlPaint stroke_paint = DlPaint()
193 .setStrokeWidth(2.0f);
194 SkRect stroke_bounds =
rect.makeOutset(1.0f, 1.0f);
196 stroke_bounds, desc + " LR swapped, sw 2");
198 stroke_bounds, desc + " TB swapped, sw 2");
200 stroke_bounds, desc + " LR&TB swapped, sw 2");
201
203 DlPaint maskblur_paint = DlPaint()
204 .setMaskFilter(&mask_filter);
205 SkRect maskblur_bounds =
rect.makeOutset(6.0f, 6.0f);
207 maskblur_bounds, desc + " LR swapped, mask 2");
209 maskblur_bounds, desc + " TB swapped, mask 2");
211 maskblur_bounds, desc + " LR&TB swapped, mask 2");
212
213 DlErodeImageFilter erode_filter(2.0f, 2.0f);
214 DlPaint erode_paint = DlPaint()
215 .setImageFilter(&erode_filter);
216 SkRect erode_bounds =
rect.makeInset(2.0f, 2.0f);
218 erode_bounds, desc + " LR swapped, erode 2");
220 erode_bounds, desc + " TB swapped, erode 2");
222 erode_bounds, desc + " LR&TB swapped, erode 2");
223 }
static void verify_inverted_bounds(DlSetup &setup, DlRenderer &renderer, DlPaint paint, SkRect render_rect, SkRect expected_bounds, const std::string &desc)
sk_sp< SkBlender > blender SkRect rect
@ kStroke
strokes boundary of shapes
@ kNormal
fuzzy inside and outside
SkScalar fBottom
larger y-axis bounds
SkScalar fLeft
smaller x-axis bounds
SkScalar fRight
larger x-axis bounds
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)
SkScalar fTop
smaller y-axis bounds