34 constexpr int kNumAngles = 15;
37 for (
int i = 0;
i < kNumAngles; ++
i) {
47 .quadTo(100, 100, -10, 0)
51 .quadTo(100, 100, -5, 0)
55 .quadTo(100, 100, -2, 0)
59 .quadTo(100, 100, -2 + 306.0f / 4, 75)
63 .quadTo(100, 100, -1, 0)
67 .quadTo(100, 100, 0, 0)
71 .quadTo(100, 100, 75, 75)
78 .cubicTo(5, 6, 5, 4, 4, 0)
83 .lineTo( 4.32787323f, 1.67212653f)
84 .cubicTo(2.75223875f, 3.24776125f,
85 3.00581908f, 4.51236057f,
86 3.7580452f, 4.37367964f)
87 .cubicTo(4.66472578f, 3.888381f,
117 constexpr SkScalar kStartAngle = 262.59717f;
124 bug.
addArc(circle, kStartAngle, kSweepAngle);
140 constexpr SkAlpha kAlphaValue[] = { 0xFF, 0x40 };
153 for (
int p = 0;
p < fPaths.
size(); ++
p) {
155 for (
int aa = 0; aa < 2; ++aa) {
159 if (
x +
bounds.width() > wrapX) {
168 paint.setARGB(kAlphaValue[
a], 0, 0, 0);
192 using INHERITED =
GM;
197 paint.setStrokeCap(cap);
199 paint.setAntiAlias(aa);
206 path.quadTo(60, 20, 70, 20);
207 path.conicTo(70, 10, 80, 10, 0.707f);
211 path.cubicTo(90, 20, 100, 20, 100, 10);
212 path.lineTo(110, 10);
218 const bool aliases[] = {
false,
true };
221 for (
auto alias : aliases) {
224 for (
auto cap : caps) {
229 canvas->translate(120, 0);
236 paint.setStrokeWidth(1);
237 paint.setAntiAlias(
true);
250 canvas->translate(45, -25);
254 canvas->translate(-185, -150);
258 canvas->translate(-275, -200);
262 canvas->translate(-385, -260);
268DEF_GM(
return new HairlinesGM; )
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorBLACK
constexpr SkColor SK_ColorGREEN
#define SkDegreesToRadians(degrees)
#define SkScalarSin(radians)
#define SkScalarCos(radians)
static constexpr bool SkToBool(const T &x)
void translate(SkScalar dx, SkScalar dy)
void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint &paint)
void drawPath(const SkPath &path, const SkPaint &paint)
@ kButt_Cap
no stroke extension
@ kStroke_Style
set to stroke geometry
SkPathBuilder & lineTo(SkPoint pt)
SkPathBuilder & addArc(const SkRect &oval, SkScalar startAngleDeg, SkScalar sweepAngleDeg)
SkPathBuilder & moveTo(SkPoint pt)
GM(SkColor backgroundColor=SK_ColorWHITE)
SkISize getISize() override
void onDraw(SkCanvas *canvas) override
void onOnceBeforeDraw() override
SkString getName() const override
static float max(float r, float g, float b)
Optional< SkRect > bounds
skia_private::AutoTArray< sk_sp< SkImageFilter > > filters TypedMatrix matrix TypedMatrix matrix SkScalar dx
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
DEF_GM(return F(C(clipbox), 0.0f, 0.0f, {})) DEF_GM(return F(C(clipbox)
DEF_SIMPLE_GM(hugebitmapshader, canvas, 100, 100)
static void draw_subdivided_quad(SkCanvas *canvas, int x0, int y0, int x1, int y1, SkColor color)
static void draw_squarehair_tests(SkCanvas *canvas, SkScalar width, SkPaint::Cap cap, bool aa)
static const SkScalar kWidths[]
static constexpr SkISize Make(int32_t w, int32_t h)
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)