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
23
void draw(SkCanvas* canvas) {
auto drawSquare = [=](int dx, int dy, SkBlendMode mode, const char* label) -> void {
const SkColor colors[] = { SK_ColorBLACK, SK_ColorWHITE };
const SkPoint horz[] = { { 0, 0 }, { 128, 0 } };
SkPaint paint;
paint.setShader(SkGradientShader::MakeLinear(horz, colors, nullptr, std::size(colors),
SkTileMode::kClamp));
paint.setBlendMode(mode);
canvas->translate(dx, dy);
canvas->drawRect({0, 0, 128, 128}, paint);
paint.setBlendMode(SkBlendMode::kXor);
SkFont font = SkFont(fontMgr->matchFamilyStyle(nullptr, {}));
canvas->drawString(label, 40, 100, font, paint);
};
drawSquare(0, 0, SkBlendMode::kSrc, "destination");
drawSquare(128, 0, SkBlendMode::kSrc, "");
drawSquare(0, 128, SkBlendMode::kSrc, "");
canvas->translate(-128, -128);
canvas->rotate(90, 0, 128);
drawSquare(0, 0, SkBlendMode::kSrc, "source");
drawSquare(0, -128, SkBlendMode::kModulate, "modulate");
drawSquare(-128, 0, SkBlendMode::kMultiply, "multiply");
}