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
32
void draw(SkCanvas* canvas) {
auto dContext = GrAsDirectContext(canvas->recordingContext());
if (!dContext) {
return;
}
struct {
const char* name;
sk_sp<SkImage> image;
} tests[] = {{"image", image},
{"bitmap", source.asImage()},
{"texture",
SkImages::BorrowTextureFrom(dContext,
backEndTexture,
kTopLeft_GrSurfaceOrigin,
kRGBA_8888_SkColorType,
kOpaque_SkAlphaType,
nullptr)}};
SkString string;
SkPaint paint;
SkFont font = SkFont(fontMgr->matchFamilyStyle(nullptr, {}));
for (const auto& test : tests ) {
if (!test.image) {
string.printf("no %s", test.name);
} else {
string.printf("%s" "encoded %s", test.image->refEncodedData() ? "" : "no ", test.name);
}
canvas->drawString(string, 10, 20, font, paint);
canvas->translate(0, 20);
}
}