| /* | 
 |  * Copyright 2015 Google Inc. | 
 |  * | 
 |  * Use of this source code is governed by a BSD-style license that can be | 
 |  * found in the LICENSE file. | 
 |  */ | 
 |  | 
 | #include "gm/gm.h" | 
 | #include "include/core/SkCanvas.h" | 
 | #include "include/core/SkColor.h" | 
 | #include "include/core/SkDrawable.h" | 
 | #include "include/core/SkMatrix.h" | 
 | #include "include/core/SkPaint.h" | 
 | #include "include/core/SkPath.h" | 
 | #include "include/core/SkRect.h" | 
 | #include "include/core/SkRefCnt.h" | 
 |  | 
 | struct MyDrawable : public SkDrawable { | 
 |     SkRect onGetBounds() override { return SkRect::MakeWH(50, 100);  } | 
 |  | 
 |     void onDraw(SkCanvas* canvas) override { | 
 |        SkPath path; | 
 |        path.moveTo(10, 10); | 
 |        path.conicTo(10, 90, 50, 90, 0.9f); | 
 |  | 
 |        SkPaint paint; | 
 |        paint.setColor(SK_ColorBLUE); | 
 |        canvas->drawRect(path.getBounds(), paint); | 
 |  | 
 |        paint.setAntiAlias(true); | 
 |        paint.setColor(SK_ColorWHITE); | 
 |        canvas->drawPath(path, paint); | 
 |     } | 
 | }; | 
 |  | 
 | /* | 
 |  *  Test calling drawables w/ translate and matrices | 
 |  */ | 
 | DEF_SIMPLE_GM(drawable, canvas, 180, 275) { | 
 |     sk_sp<SkDrawable> drawable(new MyDrawable); | 
 |  | 
 |     canvas->translate(10, 10); | 
 |     canvas->drawDrawable(drawable.get()); | 
 |     canvas->drawDrawable(drawable.get(), 0, 150); | 
 |  | 
 |     SkMatrix m = SkMatrix::MakeScale(1.5f, 0.8f); | 
 |     m.postTranslate(70, 0); | 
 |     canvas->drawDrawable(drawable.get(), &m); | 
 |  | 
 |     m.postTranslate(0, 150); | 
 |     canvas->drawDrawable(drawable.get(), &m); | 
 | } |