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 |