Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Side by Side Diff: fuzz/FilterFuzz.cpp

Issue 2396953002: Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" (Closed)
Patch Set: add tmp virtual to unroll legacy arithmodes Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « dm/DMSrcSink.cpp ('k') | gm/aaclip.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « dm/DMSrcSink.cpp ('k') | gm/aaclip.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698