OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * Copyright 2013 Google Inc. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license that can be | |
5 * found in the LICENSE file. | |
6 */ | |
7 | |
8 #include "gm.h" | |
9 #include "SkCanvas.h" | |
10 #include "SkLerpXfermode.h" | |
11 | |
12 static void show_circlelayers(SkCanvas* canvas, SkXfermode* mode) { | |
13 SkPaint paint; | |
14 paint.setAntiAlias(true); | |
15 SkRect r, bounds = { 10, 10, 110, 110 }; | |
16 | |
17 r = bounds; | |
18 r.fRight = bounds.centerX(); | |
19 canvas->drawRect(r, paint); | |
20 | |
21 canvas->saveLayer(&bounds, NULL); | |
22 | |
23 paint.setColor(0x80FF0000); | |
24 r = bounds; | |
25 r.inset(20, 0); | |
26 canvas->drawOval(r, paint); | |
27 | |
28 paint.setColor(0x800000FF); | |
29 r = bounds; | |
30 r.inset(0, 20); | |
31 paint.setXfermode(mode); | |
32 canvas->drawOval(r, paint); | |
33 | |
34 canvas->restore(); | |
35 } | |
36 | |
37 class LerpXfermodeGM : public skiagm::GM { | |
38 public: | |
39 LerpXfermodeGM() {} | |
40 | |
41 protected: | |
42 virtual SkString onShortName() { | |
bsalomon
2013/05/21 20:27:11
override (here and below)
| |
43 return SkString("lerpmode"); | |
44 } | |
45 | |
46 virtual SkISize onISize() { | |
47 return SkISize::Make(240, 120); | |
48 } | |
49 | |
50 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | |
51 show_circlelayers(canvas, NULL); | |
52 canvas->translate(150, 0); | |
53 SkAutoTUnref<SkXfermode> mode(SkLerpXfermode::Create(0.5f)); | |
54 show_circlelayers(canvas, mode.get()); | |
55 } | |
56 | |
57 private: | |
58 typedef skiagm::GM INHERITED; | |
59 }; | |
60 | |
61 ////////////////////////////////////////////////////////////////////////////// | |
62 | |
63 DEF_GM( return SkNEW(LerpXfermodeGM); ) | |
64 | |
OLD | NEW |