OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "gm.h" | 8 #include "gm.h" |
9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
10 #include "SkPath.h" | 10 #include "SkPath.h" |
11 | 11 |
12 static void do_draw(SkCanvas* canvas, const SkRect& r) { | |
13 SkPaint paint; | |
14 paint.setXfermodeMode(SkXfermode::kSrc_Mode); | |
15 paint.setColor(0x800000FF); | |
16 canvas->drawRect(r, paint); | |
17 } | |
18 | |
19 DEF_SIMPLE_GM(dont_clip_to_layer, canvas, 350, 120) { | |
mtklein
2016/09/06 14:05:19
were there going to be 2 more horizontally?
reed1
2016/09/06 14:36:32
The scrolling code in android sometimes does that:
mtklein
2016/09/06 14:51:21
Sorry, was just wondering about why this was so wi
reed1
2016/09/06 15:06:29
Ah, gotcha. Will fix.
| |
20 SkRect r { 10, 10, 110, 110 }; | |
21 SkRect r0 = SkRect::MakeXYWH(r.left(), r.top(), r.width(), r.height()/2); | |
22 | |
23 SkCanvas::SaveLayerRec rec; | |
24 rec.fPaint = nullptr; | |
25 rec.fBounds = &r0; | |
26 rec.fBackdrop = nullptr; | |
27 rec.fSaveLayerFlags = 1 << 31;//SkCanvas::kDontClipToLayer_Legacy_SaveLayerF lag; | |
28 canvas->saveLayer(rec); | |
mtklein
2016/09/06 14:05:19
Can you add a comment about the effect that we're
reed1
2016/09/06 14:36:32
Done.
| |
29 do_draw(canvas, r); | |
30 canvas->restore(); | |
31 } | |
32 | |
12 /** Draw a 2px border around the target, then red behind the target; | 33 /** Draw a 2px border around the target, then red behind the target; |
13 set the clip to match the target, then draw >> the target in blue. | 34 set the clip to match the target, then draw >> the target in blue. |
14 */ | 35 */ |
15 | 36 |
16 static void draw(SkCanvas* canvas, SkRect& target, int x, int y) { | 37 static void draw(SkCanvas* canvas, SkRect& target, int x, int y) { |
17 SkPaint borderPaint; | 38 SkPaint borderPaint; |
18 borderPaint.setColor(SkColorSetRGB(0x0, 0xDD, 0x0)); | 39 borderPaint.setColor(SkColorSetRGB(0x0, 0xDD, 0x0)); |
19 borderPaint.setAntiAlias(true); | 40 borderPaint.setAntiAlias(true); |
20 SkPaint backgroundPaint; | 41 SkPaint backgroundPaint; |
21 backgroundPaint.setColor(SkColorSetRGB(0xDD, 0x0, 0x0)); | 42 backgroundPaint.setColor(SkColorSetRGB(0xDD, 0x0, 0x0)); |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
254 canvas->translate(80, 10); | 275 canvas->translate(80, 10); |
255 this->drawAndClip(canvas, fVPath, 200, 0); | 276 this->drawAndClip(canvas, fVPath, 200, 0); |
256 canvas->translate(0, 200); | 277 canvas->translate(0, 200); |
257 this->drawAndClip(canvas, fHPath, 200, 0); | 278 this->drawAndClip(canvas, fHPath, 200, 0); |
258 } | 279 } |
259 | 280 |
260 private: | 281 private: |
261 typedef skiagm::GM INHERITED; | 282 typedef skiagm::GM INHERITED; |
262 }; | 283 }; |
263 DEF_GM(return new ClipCubicGM;) | 284 DEF_GM(return new ClipCubicGM;) |
OLD | NEW |