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
65
void draw(SkCanvas* canvas) {
auto border = SkPaint();
border.setColor(0x80000000);
border.setStroke(true);
canvas->translate(50, 50);
// just viewBox
SkString s {"<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"L16,0 L8,16 L0,0Z\" fill=\"#3333CC\" /></svg>"};
SkMemoryStream st(s.c_str(), s.size());
auto dom = SkSVGDOM::MakeFromStream(st);
dom->render(canvas);
canvas->drawRect({0, 0, 16, 16}, border);
canvas->translate(50, 0);
dom->setContainerSize({16, 16});
dom->render(canvas);
canvas->drawRect({0, 0, 16, 16}, border);
canvas->translate(50, 0);
dom->setContainerSize({32, 32});
dom->render(canvas);
canvas->drawRect({0, 0, 32, 32}, border);
canvas->translate(-100, 50);
// just viewPort
SkString s2 {"<svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"L16,0 L8,16 L0,0Z\" fill=\"#33CC33\" /></svg>"};
SkMemoryStream st2(s2.c_str(), s2.size());
auto dom2 = SkSVGDOM::MakeFromStream(st2);
dom2->render(canvas);
canvas->drawRect({0, 0, 16, 16}, border);
canvas->translate(50, 0);
dom2->setContainerSize({16, 16});
dom2->render(canvas);
canvas->drawRect({0, 0, 16, 16}, border);
canvas->translate(50, 0);
dom2->setContainerSize({32, 32});
canvas->drawRect({0, 0, 32, 32}, border);
dom2->render(canvas);
canvas->translate(-100, 50);
// viewPort + viewBox
SkString s3 {"<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"L16,0 L8,16 L0,0Z\" fill=\"#CC3333\" /></svg>"};
SkMemoryStream st3(s3.c_str(), s3.size());
auto dom3 = SkSVGDOM::MakeFromStream(st3);
dom3->render(canvas);
canvas->drawRect({0, 0, 16, 16}, border);
canvas->translate(50, 0);
dom3->setContainerSize({16, 16});
dom3->render(canvas);
canvas->drawRect({0, 0, 16, 16}, border);
canvas->translate(50, 0);
dom3->setContainerSize({32, 32});
canvas->drawRect({0, 0, 32, 32}, border);
dom3->render(canvas);
}