OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "SkColorFilter.h" | 9 #include "SkColorFilter.h" |
10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
11 | 11 |
12 namespace skiagm { | 12 namespace skiagm { |
13 | 13 |
14 /** | 14 /** |
15 * This test exercises bug 1719. An anti-aliased blurred path is rendered throug
h a soft clip. On | 15 * This test exercises bug 1719. An anti-aliased blurred path is rendered throug
h a soft clip. On |
16 * the GPU a scratch texture was used to hold the original path mask as well as
the blurred path | 16 * the GPU a scratch texture was used to hold the original path mask as well as
the blurred path |
17 * result. The same texture is then incorrectly used to generate the soft clip m
ask for the draw. | 17 * result. The same texture is then incorrectly used to generate the soft clip m
ask for the draw. |
18 * Thus the same texture is used for both the blur mask and soft mask in a singl
e draw. | 18 * Thus the same texture is used for both the blur mask and soft mask in a singl
e draw. |
19 * | 19 * |
20 * The correct image should look like a thin stroked round rect. | 20 * The correct image should look like a thin stroked round rect. |
21 */ | 21 */ |
22 class SkBug1719GM : public GM { | 22 class SkBug1719GM : public GM { |
23 public: | 23 public: |
24 SkBug1719GM() {} | 24 SkBug1719GM() {} |
25 | 25 |
26 protected: | 26 protected: |
27 virtual SkString onShortName() SK_OVERRIDE { | 27 SkString onShortName() SK_OVERRIDE { |
28 return SkString("skbug1719"); | 28 return SkString("skbug1719"); |
29 } | 29 } |
30 | 30 |
31 virtual SkISize onISize() SK_OVERRIDE { | 31 SkISize onISize() SK_OVERRIDE { |
32 return SkISize::Make(300, 100); | 32 return SkISize::Make(300, 100); |
33 } | 33 } |
34 | 34 |
35 virtual void onDrawBackground(SkCanvas* canvas) SK_OVERRIDE { | 35 void onDrawBackground(SkCanvas* canvas) SK_OVERRIDE { |
36 SkPaint bgPaint; | 36 SkPaint bgPaint; |
37 bgPaint.setColor(0xFF303030); | 37 bgPaint.setColor(0xFF303030); |
38 canvas->drawPaint(bgPaint); | 38 canvas->drawPaint(bgPaint); |
39 } | 39 } |
40 | 40 |
41 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 41 void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
42 canvas->translate(SkIntToScalar(-800), SkIntToScalar(-650)); | 42 canvas->translate(SkIntToScalar(-800), SkIntToScalar(-650)); |
43 | 43 |
44 // The data is lifted from an SKP that exhibited the bug. | 44 // The data is lifted from an SKP that exhibited the bug. |
45 | 45 |
46 // This is a round rect. | 46 // This is a round rect. |
47 SkPath clipPath; | 47 SkPath clipPath; |
48 clipPath.moveTo(832.f, 654.f); | 48 clipPath.moveTo(832.f, 654.f); |
49 clipPath.lineTo(1034.f, 654.f); | 49 clipPath.lineTo(1034.f, 654.f); |
50 clipPath.cubicTo(1038.4183f, 654.f, 1042.f, 657.58173f, 1042.f, 662.f); | 50 clipPath.cubicTo(1038.4183f, 654.f, 1042.f, 657.58173f, 1042.f, 662.f); |
51 clipPath.lineTo(1042.f, 724.f); | 51 clipPath.lineTo(1042.f, 724.f); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 private: | 93 private: |
94 | 94 |
95 typedef GM INHERITED; | 95 typedef GM INHERITED; |
96 }; | 96 }; |
97 | 97 |
98 ////////////////////////////////////////////////////////////////////////////// | 98 ////////////////////////////////////////////////////////////////////////////// |
99 | 99 |
100 DEF_GM(return new SkBug1719GM;) | 100 DEF_GM(return new SkBug1719GM;) |
101 | 101 |
102 } | 102 } |
OLD | NEW |