| // Copyright 2019 Google LLC. | |
| // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. | |
| #include "tools/fiddle/examples.h" | |
| REG_FIDDLE(Canvas_drawDrawable, 256, 100, false, 0) { | |
| struct MyDrawable : public SkDrawable { | |
| SkRect onGetBounds() override { return SkRect::MakeWH(50, 100); } | |
| void onDraw(SkCanvas* canvas) override { | |
| SkPath path = SkPathBuilder() | |
| .conicTo(10, 90, 50, 90, 0.9f) | |
| .detach(); | |
| SkPaint paint; | |
| paint.setColor(SK_ColorBLUE); | |
| canvas->drawRect(path.getBounds(), paint); | |
| paint.setAntiAlias(true); | |
| paint.setColor(SK_ColorWHITE); | |
| canvas->drawPath(path, paint); | |
| } | |
| }; | |
| void draw(SkCanvas* canvas) { | |
| sk_sp<SkDrawable> drawable(new MyDrawable); | |
| SkMatrix matrix; | |
| matrix.setTranslate(10, 10); | |
| canvas->drawDrawable(drawable.get(), &matrix); | |
| } | |
| } // END FIDDLE |