| 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 |