Options
These globals are now defined:
double duration; // The requested duration of the animation. double frame; // A value in [0, 1] of where we are in the animation.
This global is now defined:
GrBackendRenderTarget backEndRenderTarget;
GrBackendTexture backEndTextureRenderTarget;
Optional source image
These globals are now defined:
SkBitmap source; sk_sp<SkImage> image; GrBackendTexture backEndTexture; // GPU Only.
Note:
Adding comments with SK_FOLD_START and SK_FOLD_END creates foldable code
blocks.
These blocks will be folded by default and are useful for highlighting specific lines of code.
You can also use the keyboard shortcuts Ctrl+S and Ctrl+E in the code editor to set them.
These blocks will be folded by default and are useful for highlighting specific lines of code.
You can also use the keyboard shortcuts Ctrl+S and Ctrl+E in the code editor to set them.
xxxxxxxxxx
24
void draw(SkCanvas* canvas) {
SkPath path;
path.moveTo({156, 20});
path.arcTo(200, 20, 170, 50, 50);
SkPath::Iter iter(path, false);
SkPoint p[4];
SkPath::Verb verb;
while (SkPath::kDone_Verb != (verb = iter.next(p))) {
switch (verb) {
case SkPath::kMove_Verb:
SkDebugf("move to (%g,%g)\n", p[0].fX, p[0].fY);
break;
case SkPath::kLine_Verb:
SkDebugf("line (%g,%g),(%g,%g)\n", p[0].fX, p[0].fY, p[1].fX, p[1].fY);
break;
case SkPath::kConic_Verb:
SkDebugf("conic (%g,%g),(%g,%g),(%g,%g) weight %g\n",
p[0].fX, p[0].fY, p[1].fX, p[1].fY, p[2].fX, p[2].fY, iter.conicWeight());
break;
default:
SkDebugf("unexpected verb\n");
}
}
}