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
25
void draw(SkCanvas* canvas) {
SkPaint p;
p.setColor(SK_ColorRED);
p.setAntiAlias(true);
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeWidth(10);
canvas->drawLine(20, 20, 100, 100, p);
SkRect clipRect = SkRect::MakeLTRB(30, 30, 80, 80);
canvas->clipRect(clipRect, SkClipOp::kIntersect, false);
auto filter = SkImageFilters::Blur(5, 5, SkTileMode::kClamp, nullptr);
auto recorder = SkPictureRecorder();
auto emptyRect = SkRect::MakeEmpty();
auto subCanvas = recorder.beginRecording(SkRect::MakeLTRB(-1000, -1000, 1000, 1000), nullptr);
subCanvas->saveLayer(SkCanvas::SaveLayerRec(&emptyRect, nullptr, filter.get(), 0));
subCanvas->restore();
auto picture = recorder.finishRecordingAsPicture();
canvas->drawPicture(picture);
}