OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 "SkColor.h" | 9 #include "SkColor.h" |
10 #include "SkBitmapSource.h" | 10 #include "SkBitmapSource.h" |
11 #include "SkBlurImageFilter.h" | 11 #include "SkBlurImageFilter.h" |
12 #include "SkDisplacementMapEffect.h" | 12 #include "SkDisplacementMapEffect.h" |
13 #include "SkDropShadowImageFilter.h" | 13 #include "SkDropShadowImageFilter.h" |
14 #include "SkGradientShader.h" | 14 #include "SkGradientShader.h" |
| 15 #include "SkLightingImageFilter.h" |
15 #include "SkMorphologyImageFilter.h" | 16 #include "SkMorphologyImageFilter.h" |
16 #include "SkOffsetImageFilter.h" | 17 #include "SkOffsetImageFilter.h" |
17 #include "SkPerlinNoiseShader.h" | 18 #include "SkPerlinNoiseShader.h" |
18 #include "SkRectShaderImageFilter.h" | 19 #include "SkRectShaderImageFilter.h" |
19 #include "SkResizeImageFilter.h" | 20 #include "SkResizeImageFilter.h" |
20 #include "SkScalar.h" | 21 #include "SkScalar.h" |
21 | 22 |
22 #define RESIZE_FACTOR SkIntToScalar(4) | 23 #define RESIZE_FACTOR SkIntToScalar(4) |
23 | 24 |
24 namespace skiagm { | 25 namespace skiagm { |
25 | 26 |
26 class ImageFiltersScaledGM : public GM { | 27 class ImageFiltersScaledGM : public GM { |
27 public: | 28 public: |
28 ImageFiltersScaledGM() : fInitialized(false) { | 29 ImageFiltersScaledGM() : fInitialized(false) { |
29 this->setBGColor(0x00000000); | 30 this->setBGColor(0x00000000); |
30 } | 31 } |
31 | 32 |
32 protected: | 33 protected: |
33 virtual SkString onShortName() { | 34 virtual SkString onShortName() { |
34 return SkString("imagefiltersscaled"); | 35 return SkString("imagefiltersscaled"); |
35 } | 36 } |
36 | 37 |
37 virtual SkISize onISize() { | 38 virtual SkISize onISize() { |
38 return make_isize(1140, 500); | 39 return make_isize(1428, 500); |
39 } | 40 } |
40 | 41 |
41 void make_checkerboard() { | 42 void make_checkerboard() { |
42 fCheckerboard.allocN32Pixels(64, 64); | 43 fCheckerboard.allocN32Pixels(64, 64); |
43 SkCanvas canvas(fCheckerboard); | 44 SkCanvas canvas(fCheckerboard); |
44 canvas.clear(0x00000000); | 45 canvas.clear(0x00000000); |
45 SkPaint darkPaint; | 46 SkPaint darkPaint; |
46 darkPaint.setColor(0xFF404040); | 47 darkPaint.setColor(0xFF404040); |
47 SkPaint lightPaint; | 48 SkPaint lightPaint; |
48 lightPaint.setColor(0xFFA0A0A0); | 49 lightPaint.setColor(0xFFA0A0A0); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 this->make_gradient_circle(64, 64); | 85 this->make_gradient_circle(64, 64); |
85 fInitialized = true; | 86 fInitialized = true; |
86 } | 87 } |
87 canvas->clear(0x00000000); | 88 canvas->clear(0x00000000); |
88 | 89 |
89 SkAutoTUnref<SkImageFilter> gradient(SkBitmapSource::Create(fGradientCir
cle)); | 90 SkAutoTUnref<SkImageFilter> gradient(SkBitmapSource::Create(fGradientCir
cle)); |
90 SkAutoTUnref<SkImageFilter> checkerboard(SkBitmapSource::Create(fChecker
board)); | 91 SkAutoTUnref<SkImageFilter> checkerboard(SkBitmapSource::Create(fChecker
board)); |
91 SkAutoTUnref<SkShader> noise(SkPerlinNoiseShader::CreateFractalNoise( | 92 SkAutoTUnref<SkShader> noise(SkPerlinNoiseShader::CreateFractalNoise( |
92 SkDoubleToScalar(0.1), SkDoubleToScalar(0.05), 1, 0)); | 93 SkDoubleToScalar(0.1), SkDoubleToScalar(0.05), 1, 0)); |
93 | 94 |
| 95 SkPoint3 pointLocation(0, 0, SkIntToScalar(10)); |
| 96 SkPoint3 spotLocation(SkIntToScalar(-10), SkIntToScalar(-10), SkIntToSca
lar(20)); |
| 97 SkPoint3 spotTarget(SkIntToScalar(40), SkIntToScalar(40), 0); |
| 98 SkScalar spotExponent = SK_Scalar1; |
| 99 SkScalar cutoffAngle = SkIntToScalar(15); |
| 100 SkScalar kd = SkIntToScalar(2); |
| 101 SkScalar surfaceScale = SkIntToScalar(1); |
| 102 SkColor white(0xFFFFFFFF); |
| 103 |
94 SkImageFilter* filters[] = { | 104 SkImageFilter* filters[] = { |
95 SkBlurImageFilter::Create(SkIntToScalar(4), SkIntToScalar(4)), | 105 SkBlurImageFilter::Create(SkIntToScalar(4), SkIntToScalar(4)), |
96 SkDropShadowImageFilter::Create(SkIntToScalar(5), SkIntToScalar(10),
SkIntToScalar(3), | 106 SkDropShadowImageFilter::Create(SkIntToScalar(5), SkIntToScalar(10),
SkIntToScalar(3), |
97 SK_ColorYELLOW), | 107 SK_ColorYELLOW), |
98 SkDisplacementMapEffect::Create(SkDisplacementMapEffect::kR_ChannelS
electorType, | 108 SkDisplacementMapEffect::Create(SkDisplacementMapEffect::kR_ChannelS
electorType, |
99 SkDisplacementMapEffect::kR_ChannelS
electorType, | 109 SkDisplacementMapEffect::kR_ChannelS
electorType, |
100 SkIntToScalar(12), | 110 SkIntToScalar(12), |
101 gradient.get(), | 111 gradient.get(), |
102 checkerboard.get()), | 112 checkerboard.get()), |
103 SkDilateImageFilter::Create(1, 1, checkerboard.get()), | 113 SkDilateImageFilter::Create(1, 1, checkerboard.get()), |
104 SkErodeImageFilter::Create(1, 1, checkerboard.get()), | 114 SkErodeImageFilter::Create(1, 1, checkerboard.get()), |
105 SkOffsetImageFilter::Create(SkIntToScalar(32), 0), | 115 SkOffsetImageFilter::Create(SkIntToScalar(32), 0), |
106 SkResizeImageFilter::Create(RESIZE_FACTOR, RESIZE_FACTOR, SkPaint::k
None_FilterLevel), | 116 SkResizeImageFilter::Create(RESIZE_FACTOR, RESIZE_FACTOR, SkPaint::k
None_FilterLevel), |
107 SkRectShaderImageFilter::Create(noise), | 117 SkRectShaderImageFilter::Create(noise), |
| 118 SkLightingImageFilter::CreatePointLitDiffuse(pointLocation, white, s
urfaceScale, kd), |
| 119 SkLightingImageFilter::CreateSpotLitDiffuse(spotLocation, spotTarget
, spotExponent, |
| 120 cutoffAngle, white, surf
aceScale, kd), |
108 }; | 121 }; |
109 | 122 |
110 SkVector scales[] = { | 123 SkVector scales[] = { |
111 SkVector::Make(SkScalarInvert(2), SkScalarInvert(2)), | 124 SkVector::Make(SkScalarInvert(2), SkScalarInvert(2)), |
112 SkVector::Make(SkIntToScalar(1), SkIntToScalar(1)), | 125 SkVector::Make(SkIntToScalar(1), SkIntToScalar(1)), |
113 SkVector::Make(SkIntToScalar(1), SkIntToScalar(2)), | 126 SkVector::Make(SkIntToScalar(1), SkIntToScalar(2)), |
114 SkVector::Make(SkIntToScalar(2), SkIntToScalar(1)), | 127 SkVector::Make(SkIntToScalar(2), SkIntToScalar(1)), |
115 SkVector::Make(SkIntToScalar(2), SkIntToScalar(2)), | 128 SkVector::Make(SkIntToScalar(2), SkIntToScalar(2)), |
116 }; | 129 }; |
117 | 130 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 SkBitmap fGradientCircle; | 168 SkBitmap fGradientCircle; |
156 typedef GM INHERITED; | 169 typedef GM INHERITED; |
157 }; | 170 }; |
158 | 171 |
159 ////////////////////////////////////////////////////////////////////////////// | 172 ////////////////////////////////////////////////////////////////////////////// |
160 | 173 |
161 static GM* MyFactory(void*) { return new ImageFiltersScaledGM; } | 174 static GM* MyFactory(void*) { return new ImageFiltersScaledGM; } |
162 static GMRegistry reg(MyFactory); | 175 static GMRegistry reg(MyFactory); |
163 | 176 |
164 } | 177 } |
OLD | NEW |