1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2015 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "gm.h"
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkCanvas.h"
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkDrawable.h"
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkPath.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotstruct MyDrawable : public SkDrawable {
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkRect onGetBounds() override { return SkRect::MakeWH(50, 100);  }
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    void onDraw(SkCanvas* canvas) override {
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       SkPath path;
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       path.moveTo(10, 10);
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       path.conicTo(10, 90, 50, 90, 0.9f);
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       SkPaint paint;
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       paint.setColor(SK_ColorBLUE);
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       canvas->drawRect(path.getBounds(), paint);
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       paint.setAntiAlias(true);
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       paint.setColor(SK_ColorWHITE);
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot       canvas->drawPath(path, paint);
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    }
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *  Test calling drawables w/ translate and matrices
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team RobotDEF_SIMPLE_GM(drawable, canvas, 180, 275) {
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    sk_sp<SkDrawable> drawable(new MyDrawable);
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    canvas->translate(10, 10);
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    canvas->drawDrawable(drawable.get());
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    canvas->drawDrawable(drawable.get(), 0, 150);
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkMatrix m = SkMatrix::MakeScale(1.5f, 0.8f);
42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    m.postTranslate(70, 0);
43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    canvas->drawDrawable(drawable.get(), &m);
44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    m.postTranslate(0, 150);
46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    canvas->drawDrawable(drawable.get(), &m);
47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}
48