31 uint32_t hexCubicVals[] = {
32 0x424c1086, 0x44bcf0cb,
33 0x424c107c, 0x44bcf0cb,
34 0x424c10c2, 0x44bcf0cb,
35 0x424c1119, 0x44bcf0ca,
38 {51.0161362f, 1511.52478f },
39 {51.0160980f, 1511.52478f },
40 {51.0163651f, 1511.52478f },
41 {51.0166969f, 1511.52466f },
46 paint.setStrokeWidth(0.394537568f);
48 path.moveTo(cubicVals[0]);
49 path.cubicTo(cubicVals[1], cubicVals[2], cubicVals[3]);
75 for (
size_t i = 0; i < std::size(joins); ++i) {
76 paint.setStrokeJoin(joins[i]);
127 for (
int i = 0; i < 2; ++i) {
175 paint.setStrokeWidth(1.49679073e+10f);
static float SkBits2Float(uint32_t bits)
static bool SkScalarNearlyEqual(SkScalar x, SkScalar y, SkScalar tolerance=SK_ScalarNearlyZero)
static void test_strokerect(skiatest::Reporter *reporter)
static void test_strokecubic(skiatest::Reporter *reporter)
static void test_big_stroke(skiatest::Reporter *reporter)
static void test_strokerec_equality(skiatest::Reporter *reporter)
static bool equal(const SkRect &a, const SkRect &b)
#define DEF_TEST(name, reporter)
#define REPORTER_ASSERT(r, cond,...)
@ kButt_Cap
no stroke extension
@ kStroke_Style
set to stroke geometry
@ kStrokeAndFill_Style
sets to stroke and fill geometry
@ kMiter_Join
extends to miter limit
@ kBevel_Join
connects outside edges
static bool IsNestedFillRects(const SkPath &, SkRect rect[2], SkPathDirection dirs[2]=nullptr)
const SkRect & getBounds() const
void setStrokeStyle(SkScalar width, bool strokeAndFill=false)
bool hasEqualEffect(const SkStrokeRec &other) const
void setStrokeParams(SkPaint::Cap cap, SkPaint::Join join, SkScalar miterLimit)
void setResScale(SkScalar rs)
SK_API bool FillPathWithPaint(const SkPath &src, const SkPaint &paint, SkPath *dst, const SkRect *cullRect, SkScalar resScale=1)
void inset(float dx, float dy)
void outset(float dx, float dy)