| 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 #include "SampleCode.h" | 7 #include "SampleCode.h" |
| 8 #include "SkBicubicImageFilter.h" | 8 #include "SkBicubicImageFilter.h" |
| 9 #include "SkBitmapDevice.h" | 9 #include "SkBitmapDevice.h" |
| 10 #include "SkBitmapSource.h" | 10 #include "SkBitmapSource.h" |
| 11 #include "SkBlurImageFilter.h" | 11 #include "SkBlurImageFilter.h" |
| 12 #include "SkCanvas.h" | 12 #include "SkCanvas.h" |
| 13 #include "SkColorFilter.h" | 13 #include "SkColorFilter.h" |
| 14 #include "SkColorFilterImageFilter.h" | 14 #include "SkColorFilterImageFilter.h" |
| 15 #include "SkComposeImageFilter.h" | 15 #include "SkComposeImageFilter.h" |
| 16 #include "SkData.h" | 16 #include "SkData.h" |
| 17 #include "SkDisplacementMapEffect.h" | 17 #include "SkDisplacementMapEffect.h" |
| 18 #include "SkDropShadowImageFilter.h" | 18 #include "SkDropShadowImageFilter.h" |
| 19 #include "SkFlattenableSerialization.h" | 19 #include "SkFlattenableSerialization.h" |
| 20 #include "SkLightingImageFilter.h" | 20 #include "SkLightingImageFilter.h" |
| 21 #include "SkMagnifierImageFilter.h" | 21 #include "SkMagnifierImageFilter.h" |
| 22 #include "SkMergeImageFilter.h" | 22 #include "SkMergeImageFilter.h" |
| 23 #include "SkMorphologyImageFilter.h" | 23 #include "SkMorphologyImageFilter.h" |
| 24 #include "SkOffsetImageFilter.h" | 24 #include "SkOffsetImageFilter.h" |
| 25 #include "SkPerlinNoiseShader.h" | 25 #include "SkPerlinNoiseShader.h" |
| 26 #include "SkPictureImageFilter.h" |
| 26 #include "SkRandom.h" | 27 #include "SkRandom.h" |
| 27 #include "SkRectShaderImageFilter.h" | 28 #include "SkRectShaderImageFilter.h" |
| 28 #include "SkTileImageFilter.h" | 29 #include "SkTileImageFilter.h" |
| 29 #include "SkView.h" | 30 #include "SkView.h" |
| 30 #include "SkXfermodeImageFilter.h" | 31 #include "SkXfermodeImageFilter.h" |
| 31 #include <stdio.h> | 32 #include <stdio.h> |
| 32 #include <time.h> | 33 #include <time.h> |
| 33 | 34 |
| 34 //#define SK_ADD_RANDOM_BIT_FLIPS | 35 //#define SK_ADD_RANDOM_BIT_FLIPS |
| 35 //#define SK_FUZZER_IS_VERBOSE | 36 //#define SK_FUZZER_IS_VERBOSE |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 } | 167 } |
| 167 | 168 |
| 168 static SkImageFilter* make_image_filter(bool canBeNull = true) { | 169 static SkImageFilter* make_image_filter(bool canBeNull = true) { |
| 169 SkImageFilter* filter = 0; | 170 SkImageFilter* filter = 0; |
| 170 | 171 |
| 171 // Add a 1 in 3 chance to get a NULL input | 172 // Add a 1 in 3 chance to get a NULL input |
| 172 if (canBeNull && (R(3) == 1)) { return filter; } | 173 if (canBeNull && (R(3) == 1)) { return filter; } |
| 173 | 174 |
| 174 enum { BICUBIC, MERGE, COLOR, BLUR, MAGNIFIER, XFERMODE, OFFSET, COMPOSE, | 175 enum { BICUBIC, MERGE, COLOR, BLUR, MAGNIFIER, XFERMODE, OFFSET, COMPOSE, |
| 175 DISTANT_LIGHT, POINT_LIGHT, SPOT_LIGHT, NOISE, DROP_SHADOW, | 176 DISTANT_LIGHT, POINT_LIGHT, SPOT_LIGHT, NOISE, DROP_SHADOW, |
| 176 MORPHOLOGY, BITMAP, DISPLACE, TILE, NUM_FILTERS }; | 177 MORPHOLOGY, BITMAP, DISPLACE, TILE, PICTURE, NUM_FILTERS }; |
| 177 | 178 |
| 178 switch (R(NUM_FILTERS)) { | 179 switch (R(NUM_FILTERS)) { |
| 179 case BICUBIC: | 180 case BICUBIC: |
| 180 // Scale is set to 1 here so that it can fit in the DAG without resizing
the output | 181 // Scale is set to 1 here so that it can fit in the DAG without resizing
the output |
| 181 filter = SkBicubicImageFilter::CreateMitchell(SkSize::Make(1, 1), make_i
mage_filter()); | 182 filter = SkBicubicImageFilter::CreateMitchell(SkSize::Make(1, 1), make_i
mage_filter()); |
| 182 break; | 183 break; |
| 183 case MERGE: | 184 case MERGE: |
| 184 filter = new SkMergeImageFilter(make_image_filter(), make_image_filter()
, make_xfermode()); | 185 filter = new SkMergeImageFilter(make_image_filter(), make_image_filter()
, make_xfermode()); |
| 185 break; | 186 break; |
| 186 case COLOR: | 187 case COLOR: |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 } | 268 } |
| 268 break; | 269 break; |
| 269 case DISPLACE: | 270 case DISPLACE: |
| 270 filter = new SkDisplacementMapEffect(make_channel_selector_type(), | 271 filter = new SkDisplacementMapEffect(make_channel_selector_type(), |
| 271 make_channel_selector_type(), make_scalar(), | 272 make_channel_selector_type(), make_scalar(), |
| 272 make_image_filter(false), make_image_filter()); | 273 make_image_filter(false), make_image_filter()); |
| 273 break; | 274 break; |
| 274 case TILE: | 275 case TILE: |
| 275 filter = new SkTileImageFilter(make_rect(), make_rect(), make_image_filt
er(false)); | 276 filter = new SkTileImageFilter(make_rect(), make_rect(), make_image_filt
er(false)); |
| 276 break; | 277 break; |
| 278 case PICTURE: |
| 279 filter = new SkPictureImageFilter(NULL, make_rect()); |
| 280 break; |
| 277 default: | 281 default: |
| 278 break; | 282 break; |
| 279 } | 283 } |
| 280 return (filter || canBeNull) ? filter : make_image_filter(canBeNull); | 284 return (filter || canBeNull) ? filter : make_image_filter(canBeNull); |
| 281 } | 285 } |
| 282 | 286 |
| 283 static SkImageFilter* make_serialized_image_filter() { | 287 static SkImageFilter* make_serialized_image_filter() { |
| 284 SkAutoTUnref<SkImageFilter> filter(make_image_filter(false)); | 288 SkAutoTUnref<SkImageFilter> filter(make_image_filter(false)); |
| 285 SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(filter)); | 289 SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(filter)); |
| 286 const unsigned char* ptr = static_cast<const unsigned char*>(data->data()); | 290 const unsigned char* ptr = static_cast<const unsigned char*>(data->data()); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 } | 374 } |
| 371 | 375 |
| 372 private: | 376 private: |
| 373 typedef SkView INHERITED; | 377 typedef SkView INHERITED; |
| 374 }; | 378 }; |
| 375 | 379 |
| 376 ////////////////////////////////////////////////////////////////////////////// | 380 ////////////////////////////////////////////////////////////////////////////// |
| 377 | 381 |
| 378 static SkView* MyFactory() { return new ImageFilterFuzzView; } | 382 static SkView* MyFactory() { return new ImageFilterFuzzView; } |
| 379 static SkViewRegister reg(MyFactory); | 383 static SkViewRegister reg(MyFactory); |
| OLD | NEW |