Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(599)

Side by Side Diff: gm/drawregionrotate.cpp

Issue 2277053002: Add drawRegion() API to SkCanvas (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Improve gm, fallback to paths in appropriate cases Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2016 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 "SkBlurMaskFilter.h"
10 #include "SkCanvas.h"
11 #include "SkDashPathEffect.h"
12 #include "SkImageFilter.h"
13
14 class DrawRegionRotateGM : public skiagm::GM {
15 public:
16 DrawRegionRotateGM() {}
17
18 protected:
19 SkString onShortName() override {
20 return SkString("drawregionrotate");
21 }
22
23 SkISize onISize() override {
24 return SkISize::Make(375, 375);
25 }
26
27 void onOnceBeforeDraw() override {
28 fRegion.op( 50, 50, 100, 100, SkRegion::kUnion_Op);
29 fRegion.op( 50, 100, 150, 150, SkRegion::kUnion_Op);
30 }
31
32 void onDraw(SkCanvas* canvas) override {
33 canvas->clear(SK_ColorGREEN);
34
35 SkPaint paint;
36 paint.setStyle(SkPaint::kFill_Style);
37 paint.setColor(0xFFFF0000);
38 paint.setAntiAlias(true);
39
40 canvas->translate(-50.0f, 75.0f);
41 canvas->rotate(-45.0f);
42 canvas->drawRegion(fRegion, paint);
43
44 canvas->translate(125.0f, 125.0f);
45 paint.setImageFilter(SkImageFilter::MakeBlur(5.0f, 5.0f, nullptr, nullpt r));
46 canvas->drawRegion(fRegion, paint);
47
48 canvas->translate(-125.0f, 125.0f);
49 paint.setImageFilter(nullptr);
50 SkRect occluder = SkRect::MakeEmpty();
51 paint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, 5.0f, oc cluder, 0));
52 canvas->drawRegion(fRegion, paint);
53
54 canvas->translate(-125.0f, -125.0f);
55 paint.setMaskFilter(nullptr);
56 paint.setStyle(SkPaint::kStroke_Style);
57 float intervals[] = { 5.0f, 5.0f };
58 paint.setPathEffect(SkDashPathEffect::Make(intervals, 2, 2.5f));
59 canvas->drawRegion(fRegion, paint);
60 }
61
62 SkRegion fRegion;
63
64 private:
65 typedef skiagm::GM INHERITED;
66 };
67 DEF_GM( return new DrawRegionRotateGM; )
OLDNEW
« no previous file with comments | « gm/drawregion.cpp ('k') | include/core/SkCanvas.h » ('j') | include/core/SkCanvas.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698