| 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 "Fuzz.h" | 7 #include "Fuzz.h" |
| 8 #include "Sk1DPathEffect.h" | 8 #include "Sk1DPathEffect.h" |
| 9 #include "Sk2DPathEffect.h" | 9 #include "Sk2DPathEffect.h" |
| 10 #include "SkAlphaThresholdFilter.h" | 10 #include "SkAlphaThresholdFilter.h" |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 } | 147 } |
| 148 | 148 |
| 149 static SkMatrix make_matrix() { | 149 static SkMatrix make_matrix() { |
| 150 SkMatrix m; | 150 SkMatrix m; |
| 151 for (int i = 0; i < 9; ++i) { | 151 for (int i = 0; i < 9; ++i) { |
| 152 m[i] = make_scalar(); | 152 m[i] = make_scalar(); |
| 153 } | 153 } |
| 154 return m; | 154 return m; |
| 155 } | 155 } |
| 156 | 156 |
| 157 static SkXfermode::Mode make_xfermode() { | 157 static SkBlendMode make_blendmode() { |
| 158 return static_cast<SkXfermode::Mode>(R(SkXfermode::kLastMode+1)); | 158 return static_cast<SkBlendMode>(R((int)SkBlendMode::kLastMode+1)); |
| 159 } | 159 } |
| 160 | 160 |
| 161 static SkPaint::Align make_paint_align() { | 161 static SkPaint::Align make_paint_align() { |
| 162 return static_cast<SkPaint::Align>(R(SkPaint::kRight_Align+1)); | 162 return static_cast<SkPaint::Align>(R(SkPaint::kRight_Align+1)); |
| 163 } | 163 } |
| 164 | 164 |
| 165 static SkPaint::Hinting make_paint_hinting() { | 165 static SkPaint::Hinting make_paint_hinting() { |
| 166 return static_cast<SkPaint::Hinting>(R(SkPaint::kFull_Hinting+1)); | 166 return static_cast<SkPaint::Hinting>(R(SkPaint::kFull_Hinting+1)); |
| 167 } | 167 } |
| 168 | 168 |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 uint8_t tableR[256]; | 362 uint8_t tableR[256]; |
| 363 uint8_t tableG[256]; | 363 uint8_t tableG[256]; |
| 364 uint8_t tableB[256]; | 364 uint8_t tableB[256]; |
| 365 rand_color_table(tableA); | 365 rand_color_table(tableA); |
| 366 rand_color_table(tableR); | 366 rand_color_table(tableR); |
| 367 rand_color_table(tableG); | 367 rand_color_table(tableG); |
| 368 rand_color_table(tableB); | 368 rand_color_table(tableB); |
| 369 return SkTableColorFilter::MakeARGB(tableA, tableR, tableG, tableB); | 369 return SkTableColorFilter::MakeARGB(tableA, tableR, tableG, tableB); |
| 370 } | 370 } |
| 371 case 3: | 371 case 3: |
| 372 return SkColorFilter::MakeModeFilter(make_color(), make_xfermode()); | 372 return SkColorFilter::MakeModeFilter(make_color(), (SkXfermode::Mode
)make_blendmode()); |
| 373 case 4: | 373 case 4: |
| 374 return SkColorMatrixFilter::MakeLightingFilter(make_color(), make_co
lor()); | 374 return SkColorMatrixFilter::MakeLightingFilter(make_color(), make_co
lor()); |
| 375 case 5: | 375 case 5: |
| 376 default: | 376 default: |
| 377 break; | 377 break; |
| 378 } | 378 } |
| 379 return nullptr; | 379 return nullptr; |
| 380 } | 380 } |
| 381 | 381 |
| 382 static SkPath make_path() { | 382 static SkPath make_path() { |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 paint.setFakeBoldText(make_bool()); | 498 paint.setFakeBoldText(make_bool()); |
| 499 paint.setDevKernText(make_bool()); | 499 paint.setDevKernText(make_bool()); |
| 500 paint.setFilterQuality(make_filter_quality()); | 500 paint.setFilterQuality(make_filter_quality()); |
| 501 paint.setStyle(make_paint_style()); | 501 paint.setStyle(make_paint_style()); |
| 502 paint.setColor(make_color()); | 502 paint.setColor(make_color()); |
| 503 paint.setStrokeWidth(make_scalar()); | 503 paint.setStrokeWidth(make_scalar()); |
| 504 paint.setStrokeMiter(make_scalar()); | 504 paint.setStrokeMiter(make_scalar()); |
| 505 paint.setStrokeCap(make_paint_cap()); | 505 paint.setStrokeCap(make_paint_cap()); |
| 506 paint.setStrokeJoin(make_paint_join()); | 506 paint.setStrokeJoin(make_paint_join()); |
| 507 paint.setColorFilter(make_color_filter()); | 507 paint.setColorFilter(make_color_filter()); |
| 508 paint.setXfermodeMode(make_xfermode()); | 508 paint.setBlendMode(make_blendmode()); |
| 509 paint.setPathEffect(make_path_effect()); | 509 paint.setPathEffect(make_path_effect()); |
| 510 paint.setMaskFilter(make_mask_filter()); | 510 paint.setMaskFilter(make_mask_filter()); |
| 511 | 511 |
| 512 if (false) { | 512 if (false) { |
| 513 // our validating buffer does not support typefaces yet, so skip this fo
r now | 513 // our validating buffer does not support typefaces yet, so skip this fo
r now |
| 514 paint.setTypeface(SkTypeface::MakeFromName(make_font_name().c_str(),make
_typeface_style())); | 514 paint.setTypeface(SkTypeface::MakeFromName(make_font_name().c_str(),make
_typeface_style())); |
| 515 } | 515 } |
| 516 | 516 |
| 517 SkLayerRasterizer::Builder rasterizerBuilder; | 517 SkLayerRasterizer::Builder rasterizerBuilder; |
| 518 SkPaint paintForRasterizer; | 518 SkPaint paintForRasterizer; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 533 | 533 |
| 534 static sk_sp<SkImageFilter> make_image_filter(bool canBeNull) { | 534 static sk_sp<SkImageFilter> make_image_filter(bool canBeNull) { |
| 535 sk_sp<SkImageFilter> filter; | 535 sk_sp<SkImageFilter> filter; |
| 536 | 536 |
| 537 // Add a 1 in 3 chance to get a nullptr input | 537 // Add a 1 in 3 chance to get a nullptr input |
| 538 if (canBeNull && (R(3) == 1)) { | 538 if (canBeNull && (R(3) == 1)) { |
| 539 return filter; | 539 return filter; |
| 540 } | 540 } |
| 541 | 541 |
| 542 enum { ALPHA_THRESHOLD, MERGE, COLOR, LUT3D, BLUR, MAGNIFIER, | 542 enum { ALPHA_THRESHOLD, MERGE, COLOR, LUT3D, BLUR, MAGNIFIER, |
| 543 XFERMODE, OFFSET, MATRIX, MATRIX_CONVOLUTION, COMPOSE, | 543 BLENDMODE, OFFSET, MATRIX, MATRIX_CONVOLUTION, COMPOSE, |
| 544 DISTANT_LIGHT, POINT_LIGHT, SPOT_LIGHT, NOISE, DROP_SHADOW, | 544 DISTANT_LIGHT, POINT_LIGHT, SPOT_LIGHT, NOISE, DROP_SHADOW, |
| 545 MORPHOLOGY, BITMAP, DISPLACE, TILE, PICTURE, PAINT, NUM_FILTERS }; | 545 MORPHOLOGY, BITMAP, DISPLACE, TILE, PICTURE, PAINT, NUM_FILTERS }; |
| 546 | 546 |
| 547 switch (R(NUM_FILTERS)) { | 547 switch (R(NUM_FILTERS)) { |
| 548 case ALPHA_THRESHOLD: | 548 case ALPHA_THRESHOLD: |
| 549 filter = SkAlphaThresholdFilter::Make(make_region(), | 549 filter = SkAlphaThresholdFilter::Make(make_region(), |
| 550 make_scalar(), | 550 make_scalar(), |
| 551 make_scalar(), | 551 make_scalar(), |
| 552 make_image_filter()); | 552 make_image_filter()); |
| 553 break; | 553 break; |
| 554 case MERGE: | 554 case MERGE: |
| 555 filter = SkMergeImageFilter::Make(make_image_filter(), | 555 filter = SkMergeImageFilter::Make(make_image_filter(), |
| 556 make_image_filter(), | 556 make_image_filter(), |
| 557 make_xfermode()); | 557 (SkXfermode::Mode)make_blendmode()); |
| 558 break; | 558 break; |
| 559 case COLOR: { | 559 case COLOR: { |
| 560 sk_sp<SkColorFilter> cf(make_color_filter()); | 560 sk_sp<SkColorFilter> cf(make_color_filter()); |
| 561 filter = cf ? SkColorFilterImageFilter::Make(std::move(cf), make_image_f
ilter()) | 561 filter = cf ? SkColorFilterImageFilter::Make(std::move(cf), make_image_f
ilter()) |
| 562 : nullptr; | 562 : nullptr; |
| 563 break; | 563 break; |
| 564 } | 564 } |
| 565 case LUT3D: { | 565 case LUT3D: { |
| 566 int cubeDimension; | 566 int cubeDimension; |
| 567 sk_sp<SkData> lut3D(make_3Dlut(&cubeDimension, (R(2) == 1), (R(2) == 1),
(R(2) == 1))); | 567 sk_sp<SkData> lut3D(make_3Dlut(&cubeDimension, (R(2) == 1), (R(2) == 1),
(R(2) == 1))); |
| 568 sk_sp<SkColorFilter> cf(SkColorCubeFilter::Make(std::move(lut3D), cubeDi
mension)); | 568 sk_sp<SkColorFilter> cf(SkColorCubeFilter::Make(std::move(lut3D), cubeDi
mension)); |
| 569 filter = cf ? SkColorFilterImageFilter::Make(std::move(cf), make_image_f
ilter()) | 569 filter = cf ? SkColorFilterImageFilter::Make(std::move(cf), make_image_f
ilter()) |
| 570 : nullptr; | 570 : nullptr; |
| 571 break; | 571 break; |
| 572 } | 572 } |
| 573 case BLUR: | 573 case BLUR: |
| 574 filter = SkBlurImageFilter::Make(make_scalar(true), | 574 filter = SkBlurImageFilter::Make(make_scalar(true), |
| 575 make_scalar(true), | 575 make_scalar(true), |
| 576 make_image_filter()); | 576 make_image_filter()); |
| 577 break; | 577 break; |
| 578 case MAGNIFIER: | 578 case MAGNIFIER: |
| 579 filter = SkMagnifierImageFilter::Make(make_rect(), | 579 filter = SkMagnifierImageFilter::Make(make_rect(), |
| 580 make_scalar(true), | 580 make_scalar(true), |
| 581 make_image_filter()); | 581 make_image_filter()); |
| 582 break; | 582 break; |
| 583 case XFERMODE: | 583 case BLENDMODE: |
| 584 filter = SkXfermodeImageFilter::Make(SkXfermode::Make(make_xfermode()), | 584 filter = SkXfermodeImageFilter::Make(make_blendmode(), |
| 585 make_image_filter(), | 585 make_image_filter(), |
| 586 make_image_filter(), | 586 make_image_filter(), |
| 587 nullptr); | 587 nullptr); |
| 588 break; | 588 break; |
| 589 case OFFSET: | 589 case OFFSET: |
| 590 filter = SkOffsetImageFilter::Make(make_scalar(), make_scalar(), make_im
age_filter()); | 590 filter = SkOffsetImageFilter::Make(make_scalar(), make_scalar(), make_im
age_filter()); |
| 591 break; | 591 break; |
| 592 case MATRIX: | 592 case MATRIX: |
| 593 filter = SkImageFilter::MakeMatrixFilter(make_matrix(), | 593 filter = SkImageFilter::MakeMatrixFilter(make_matrix(), |
| 594 (SkFilterQuality)R(4), | 594 (SkFilterQuality)R(4), |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 DEF_FUZZ(SerializedImageFilter, f) { | 775 DEF_FUZZ(SerializedImageFilter, f) { |
| 776 fuzz = f; | 776 fuzz = f; |
| 777 SkImageFilter* filter = make_serialized_image_filter(); | 777 SkImageFilter* filter = make_serialized_image_filter(); |
| 778 | 778 |
| 779 SkPaint paint; | 779 SkPaint paint; |
| 780 SkSafeUnref(paint.setImageFilter(filter)); | 780 SkSafeUnref(paint.setImageFilter(filter)); |
| 781 SkBitmap bitmap; | 781 SkBitmap bitmap; |
| 782 SkCanvas canvas(bitmap); | 782 SkCanvas canvas(bitmap); |
| 783 drawClippedBitmap(&canvas, 0, 0, paint); | 783 drawClippedBitmap(&canvas, 0, 0, paint); |
| 784 } | 784 } |
| OLD | NEW |