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 "SkBlurMask.h" | 9 #include "SkBlurMask.h" |
10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 fName.appendf("-WH-%ix%i-unevenCorners", width, height); | 35 fName.appendf("-WH-%ix%i-unevenCorners", width, height); |
36 SkVector radii[4]; | 36 SkVector radii[4]; |
37 radii[0].set(SkIntToScalar(30), SkIntToScalar(30)); | 37 radii[0].set(SkIntToScalar(30), SkIntToScalar(30)); |
38 radii[1].set(SkIntToScalar(10), SkIntToScalar(10)); | 38 radii[1].set(SkIntToScalar(10), SkIntToScalar(10)); |
39 radii[2].set(SkIntToScalar(30), SkIntToScalar(30)); | 39 radii[2].set(SkIntToScalar(30), SkIntToScalar(30)); |
40 radii[3].set(SkIntToScalar(10), SkIntToScalar(10)); | 40 radii[3].set(SkIntToScalar(10), SkIntToScalar(10)); |
41 SkRect r = SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height)); | 41 SkRect r = SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height)); |
42 fRRect.setRectRadii(r, radii); | 42 fRRect.setRectRadii(r, radii); |
43 } | 43 } |
44 | 44 |
45 virtual SkString onShortName() SK_OVERRIDE { | 45 SkString onShortName() SK_OVERRIDE { |
46 return fName; | 46 return fName; |
47 } | 47 } |
48 | 48 |
49 virtual SkISize onISize() SK_OVERRIDE { | 49 SkISize onISize() SK_OVERRIDE { |
50 return SkISize::Make(SkScalarCeilToInt(fRRect.rect().width()), | 50 return SkISize::Make(SkScalarCeilToInt(fRRect.rect().width()), |
51 SkScalarCeilToInt(fRRect.rect().height())); | 51 SkScalarCeilToInt(fRRect.rect().height())); |
52 } | 52 } |
53 | 53 |
54 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 54 void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
55 SkLayerDrawLooper::Builder looperBuilder; | 55 SkLayerDrawLooper::Builder looperBuilder; |
56 { | 56 { |
57 SkLayerDrawLooper::LayerInfo info; | 57 SkLayerDrawLooper::LayerInfo info; |
58 info.fPaintBits = SkLayerDrawLooper::kMaskFilter_Bit | 58 info.fPaintBits = SkLayerDrawLooper::kMaskFilter_Bit |
59 | SkLayerDrawLooper::kColorFilter_Bit; | 59 | SkLayerDrawLooper::kColorFilter_Bit; |
60 info.fColorMode = SkXfermode::kSrc_Mode; | 60 info.fColorMode = SkXfermode::kSrc_Mode; |
61 info.fOffset = SkPoint::Make(SkIntToScalar(-1), SkIntToScalar(0)); | 61 info.fOffset = SkPoint::Make(SkIntToScalar(-1), SkIntToScalar(0)); |
62 info.fPostTranslate = false; | 62 info.fPostTranslate = false; |
63 SkPaint* paint = looperBuilder.addLayerOnTop(info); | 63 SkPaint* paint = looperBuilder.addLayerOnTop(info); |
64 SkMaskFilter* maskFilter = SkBlurMaskFilter::Create( | 64 SkMaskFilter* maskFilter = SkBlurMaskFilter::Create( |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 } | 119 } |
120 | 120 |
121 // Simpler blurred RR test cases where all the radii are the same. | 121 // Simpler blurred RR test cases where all the radii are the same. |
122 class SimpleBlurRoundRectGM : public skiagm::GM { | 122 class SimpleBlurRoundRectGM : public skiagm::GM { |
123 public: | 123 public: |
124 SimpleBlurRoundRectGM() | 124 SimpleBlurRoundRectGM() |
125 : fName("simpleblurroundrect") { | 125 : fName("simpleblurroundrect") { |
126 } | 126 } |
127 | 127 |
128 protected: | 128 protected: |
129 virtual uint32_t onGetFlags() const SK_OVERRIDE { | 129 uint32_t onGetFlags() const SK_OVERRIDE { |
130 return kSkipTiled_Flag; | 130 return kSkipTiled_Flag; |
131 } | 131 } |
132 | 132 |
133 virtual SkString onShortName() SK_OVERRIDE { | 133 SkString onShortName() SK_OVERRIDE { |
134 return fName; | 134 return fName; |
135 } | 135 } |
136 | 136 |
137 virtual SkISize onISize() SK_OVERRIDE { | 137 SkISize onISize() SK_OVERRIDE { |
138 return SkISize::Make(1000, 500); | 138 return SkISize::Make(1000, 500); |
139 } | 139 } |
140 | 140 |
141 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 141 void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
142 canvas->scale(1.5f, 1.5f); | 142 canvas->scale(1.5f, 1.5f); |
143 canvas->translate(50,50); | 143 canvas->translate(50,50); |
144 | 144 |
145 const float blurRadii[] = { 1,5,10,20 }; | 145 const float blurRadii[] = { 1,5,10,20 }; |
146 const int cornerRadii[] = { 1,5,10,20 }; | 146 const int cornerRadii[] = { 1,5,10,20 }; |
147 const SkRect r = SkRect::MakeWH(SkIntToScalar(25), SkIntToScalar(25)); | 147 const SkRect r = SkRect::MakeWH(SkIntToScalar(25), SkIntToScalar(25)); |
148 for (size_t i = 0; i < SK_ARRAY_COUNT(blurRadii); ++i) { | 148 for (size_t i = 0; i < SK_ARRAY_COUNT(blurRadii); ++i) { |
149 SkAutoCanvasRestore autoRestore(canvas, true); | 149 SkAutoCanvasRestore autoRestore(canvas, true); |
150 canvas->translate(0, (r.height() + SkIntToScalar(50)) * i); | 150 canvas->translate(0, (r.height() + SkIntToScalar(50)) * i); |
151 for (size_t j = 0; j < SK_ARRAY_COUNT(cornerRadii); ++j) { | 151 for (size_t j = 0; j < SK_ARRAY_COUNT(cornerRadii); ++j) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 // TODO(scroggo): Disabled in an attempt to rememdy | 183 // TODO(scroggo): Disabled in an attempt to rememdy |
184 // https://code.google.com/p/skia/issues/detail?id=1801 ('Win7 Test bots all fai
ling GenerateGMs: | 184 // https://code.google.com/p/skia/issues/detail?id=1801 ('Win7 Test bots all fai
ling GenerateGMs: |
185 // ran wrong number of tests') | 185 // ran wrong number of tests') |
186 //DEF_GM(return new BlurRoundRectGM(600, 5514, 6);) | 186 //DEF_GM(return new BlurRoundRectGM(600, 5514, 6);) |
187 | 187 |
188 // Rounded rect with two opposite corners with large radii, the other two | 188 // Rounded rect with two opposite corners with large radii, the other two |
189 // small. | 189 // small. |
190 DEF_GM(return new BlurRoundRectGM(100, 100);) | 190 DEF_GM(return new BlurRoundRectGM(100, 100);) |
191 | 191 |
192 DEF_GM(return new SimpleBlurRoundRectGM();) | 192 DEF_GM(return new SimpleBlurRoundRectGM();) |
OLD | NEW |