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

Side by Side Diff: tests/ImageFilterTest.cpp

Issue 1829913002: Make a generic list of filters for use in ImageFilterTests. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 9 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 | « no previous file | no next file » | 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 /* 2 /*
3 * Copyright 2013 Google Inc. 3 * Copyright 2013 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkBitmapDevice.h" 10 #include "SkBitmapDevice.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 buffer.writeMatrix(fExpectedMatrix); 72 buffer.writeMatrix(fExpectedMatrix);
73 } 73 }
74 74
75 private: 75 private:
76 skiatest::Reporter* fReporter; 76 skiatest::Reporter* fReporter;
77 SkMatrix fExpectedMatrix; 77 SkMatrix fExpectedMatrix;
78 78
79 typedef SkImageFilter INHERITED; 79 typedef SkImageFilter INHERITED;
80 }; 80 };
81 81
82 void draw_gradient_circle(SkCanvas* canvas, int width, int height) {
83 SkScalar x = SkIntToScalar(width / 2);
84 SkScalar y = SkIntToScalar(height / 2);
85 SkScalar radius = SkMinScalar(x, y) * 0.8f;
86 canvas->clear(0x00000000);
87 SkColor colors[2];
88 colors[0] = SK_ColorWHITE;
89 colors[1] = SK_ColorBLACK;
90 sk_sp<SkShader> shader(
91 SkGradientShader::MakeRadial(SkPoint::Make(x, y), radius, colors, nullpt r, 2,
92 SkShader::kClamp_TileMode)
93 );
94 SkPaint paint;
95 paint.setShader(shader);
96 canvas->drawCircle(x, y, radius, paint);
97 }
98
99 SkBitmap make_gradient_circle(int width, int height) {
100 SkBitmap bitmap;
101 bitmap.allocN32Pixels(width, height);
102 SkCanvas canvas(bitmap);
103 draw_gradient_circle(&canvas, width, height);
104 return bitmap;
105 }
106
107 class FilterList {
108 public:
109 FilterList() {
110 auto cf(SkColorFilter::MakeModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mo de));
111 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1);
112 SkScalar kernel[9] = {
113 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
114 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1),
115 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
116 };
117 const SkISize kernelSize = SkISize::Make(3, 3);
118 const SkScalar gain = SK_Scalar1, bias = 0;
119 const SkScalar five = SkIntToScalar(5);
120
121 sk_sp<SkImage> gradientImage(SkImage::MakeFromBitmap(make_gradient_circl e(64, 64)));
122 SkAutoTUnref<SkImageFilter> gradientSource(SkImageSource::Create(gradien tImage.get()));
123 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(five, five));
124 SkMatrix matrix;
125
126 matrix.setTranslate(SK_Scalar1, SK_Scalar1);
127 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1);
128
129 SkRTreeFactory factory;
130 SkPictureRecorder recorder;
131 SkCanvas* recordingCanvas = recorder.beginRecording(64, 64, &factory, 0) ;
132
133 SkPaint greenPaint;
134 greenPaint.setColor(SK_ColorGREEN);
135 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeXYWH(10, 10, 30, 20) ), greenPaint);
136 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
137 SkAutoTUnref<SkImageFilter> pictureFilter(SkPictureImageFilter::Create(p icture.get()));
138 SkAutoTUnref<SkShader> shader(SkPerlinNoiseShader::CreateTurbulence(SK_S calar1, SK_Scalar1, 1, 0));
139
140 SkPaint paint;
141 paint.setShader(shader);
142 SkAutoTUnref<SkImageFilter> paintFilter(SkPaintImageFilter::Create(paint ));
143
144 sk_sp<SkShader> greenColorShader(SkShader::MakeColorShader(SK_ColorGREEN ));
145 SkPaint greenColorShaderPaint;
146 greenColorShaderPaint.setShader(greenColorShader);
147 SkImageFilter::CropRect leftSideCropRect(SkRect::MakeXYWH(0, 0, 32, 64)) ;
148 SkAutoTUnref<SkImageFilter> paintFilterLeft(SkPaintImageFilter::Create(g reenColorShaderPaint, &leftSideCropRect));
149 SkImageFilter::CropRect rightSideCropRect(SkRect::MakeXYWH(32, 0, 32, 64 ));
150 SkAutoTUnref<SkImageFilter> paintFilterRight(SkPaintImageFilter::Create( greenColorShaderPaint, &rightSideCropRect));
151
robertphillips 2016/03/23 19:48:48 all these become "this->addFilter" ?
Stephen White 2016/03/23 20:03:00 Done.
152 AddFilter("color filter", SkColorFilterImageFilter::Create(cf.get()));
153 AddFilter("displacement map", SkDisplacementMapEffect::Create(
154 SkDisplacementMapEffect::kR_ChannelSelectorType,
155 SkDisplacementMapEffect::kB_ChannelSelectorType,
156 20.0f, gradientSource.get()));
157 AddFilter("blur", SkBlurImageFilter::Create(SK_Scalar1, SK_Scalar1));
158 AddFilter("drop shadow", SkDropShadowImageFilter::Create(
159 SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_ColorGREEN,
160 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode)) ;
161 AddFilter("diffuse lighting", SkLightingImageFilter::CreatePointLitDiffu se(
162 location, SK_ColorGREEN, 0, 0));
163 AddFilter("specular lighting",
164 SkLightingImageFilter::CreatePointLitSpecular(location, SK_Col orGREEN, 0, 0, 0));
165 AddFilter("matrix convolution",
166 SkMatrixConvolutionImageFilter::Create(
167 kernelSize, kernel, gain, bias, SkIPoint::Make(1, 1),
168 SkMatrixConvolutionImageFilter::kRepeat_TileMode, false));
169 AddFilter("merge", SkMergeImageFilter::Create(nullptr, nullptr, SkXfermo de::kSrcOver_Mode));
170 AddFilter("merge with disjoint inputs", SkMergeImageFilter::Create(
171 paintFilterLeft, paintFilterRight, SkXfermode::kSrcOver_Mode)) ;
172 AddFilter("offset", SkOffsetImageFilter::Create(SK_Scalar1, SK_Scalar1)) ;
173 AddFilter("dilate", SkDilateImageFilter::Create(3, 2));
174 AddFilter("erode", SkErodeImageFilter::Create(2, 3));
175 AddFilter("tile", SkTileImageFilter::Create(SkRect::MakeXYWH(0, 0, 50, 5 0),
176 SkRect::MakeXYWH(0, 0, 100, 100) , nullptr));
177 AddFilter("matrix", SkImageFilter::CreateMatrixFilter(matrix, kLow_SkFil terQuality));
178 AddFilter("blur and offset", SkOffsetImageFilter::Create(five, five, blu r.get()));
179 AddFilter("picture and blur", SkBlurImageFilter::Create(five, five, pict ureFilter.get()));
180 AddFilter("rect shader and blur", SkBlurImageFilter::Create(five, five, paintFilter.get()));
181 AddFilter("xfermode", SkXfermodeImageFilter::Create(SkXfermode::Create(S kXfermode::kSrc_Mode), nullptr));
182 }
183 ~FilterList() {
184 for (int i = 0; i < count(); ++i) {
185 getFilter(i)->unref();
186 }
187 }
188 int count() const { return fFilters.count(); }
189 SkImageFilter* getFilter(int index) const { return fFilters[index].fFilter; }
190 const char* getName(int index) const { return fFilters[index].fName; }
191 private:
192 struct Filter {
193 Filter() : fName(nullptr), fFilter(nullptr) {}
194 Filter(const char* name, SkImageFilter* filter) : fName(name), fFilter(f ilter) {}
195 const char* fName;
robertphillips 2016/03/23 19:48:48 Could we make these SkAutoTUnrefs and remove the a
Stephen White 2016/03/23 20:03:00 Done.
196 SkImageFilter* fFilter;
197 };
robertphillips 2016/03/23 19:48:48 addFilter ?
Stephen White 2016/03/23 20:03:00 Done.
198 void AddFilter(const char* name, SkImageFilter* filter) {
199 fFilters.push_back() = Filter(name, filter);
200 }
201
202 SkTArray<Filter> fFilters;
203 };
204
82 } 205 }
83 206
84 SkFlattenable* MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) { 207 SkFlattenable* MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) {
85 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); 208 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1);
86 skiatest::Reporter* reporter = (skiatest::Reporter*)buffer.readFunctionPtr() ; 209 skiatest::Reporter* reporter = (skiatest::Reporter*)buffer.readFunctionPtr() ;
87 SkMatrix matrix; 210 SkMatrix matrix;
88 buffer.readMatrix(&matrix); 211 buffer.readMatrix(&matrix);
89 return new MatrixTestImageFilter(reporter, matrix); 212 return new MatrixTestImageFilter(reporter, matrix);
90 } 213 }
91 214
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 SkAutoTUnref<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, &offset)); 482 SkAutoTUnref<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ctx, &offset));
360 REPORTER_ASSERT_MESSAGE(reporter, resultImg, str.c_str()); 483 REPORTER_ASSERT_MESSAGE(reporter, resultImg, str.c_str());
361 REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, st r.c_str()); 484 REPORTER_ASSERT_MESSAGE(reporter, offset.fX == 20 && offset.fY == 30, st r.c_str());
362 } 485 }
363 486
364 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { 487 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) {
365 SkSafeUnref(filters[i]); 488 SkSafeUnref(filters[i]);
366 } 489 }
367 } 490 }
368 491
369 static SkBitmap make_gradient_circle(int width, int height) {
370 SkBitmap bitmap;
371 SkScalar x = SkIntToScalar(width / 2);
372 SkScalar y = SkIntToScalar(height / 2);
373 SkScalar radius = SkMinScalar(x, y) * 0.8f;
374 bitmap.allocN32Pixels(width, height);
375 SkCanvas canvas(bitmap);
376 canvas.clear(0x00000000);
377 SkColor colors[2];
378 colors[0] = SK_ColorWHITE;
379 colors[1] = SK_ColorBLACK;
380 SkPaint paint;
381 paint.setShader(SkGradientShader::MakeRadial(SkPoint::Make(x, y), radius, co lors, nullptr, 2,
382 SkShader::kClamp_TileMode));
383 canvas.drawCircle(x, y, radius, paint);
384 return bitmap;
385 }
386
387
388
389 static void test_negative_blur_sigma(SkImageFilter::Proxy* proxy, 492 static void test_negative_blur_sigma(SkImageFilter::Proxy* proxy,
390 skiatest::Reporter* reporter, 493 skiatest::Reporter* reporter,
391 GrContext* context) { 494 GrContext* context) {
392 // Check that SkBlurImageFilter will accept a negative sigma, either in 495 // Check that SkBlurImageFilter will accept a negative sigma, either in
393 // the given arguments or after CTM application. 496 // the given arguments or after CTM application.
394 const int width = 32, height = 32; 497 const int width = 32, height = 32;
395 const SkScalar five = SkIntToScalar(5); 498 const SkScalar five = SkIntToScalar(5);
396 499
397 SkAutoTUnref<SkImageFilter> positiveFilter(SkBlurImageFilter::Create(five, f ive)); 500 SkAutoTUnref<SkImageFilter> positiveFilter(SkBlurImageFilter::Create(five, f ive));
398 SkAutoTUnref<SkImageFilter> negativeFilter(SkBlurImageFilter::Create(-five, five)); 501 SkAutoTUnref<SkImageFilter> negativeFilter(SkBlurImageFilter::Create(-five, five));
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 DEF_GPUTEST_FOR_NATIVE_CONTEXT(TestZeroBlurSigma_Gpu, reporter, context) { 659 DEF_GPUTEST_FOR_NATIVE_CONTEXT(TestZeroBlurSigma_Gpu, reporter, context) {
557 run_gpu_test(reporter, context, 100, test_zero_blur_sigma); 660 run_gpu_test(reporter, context, 100, test_zero_blur_sigma);
558 } 661 }
559 #endif 662 #endif
560 663
561 DEF_TEST(ImageFilterDrawTiled, reporter) { 664 DEF_TEST(ImageFilterDrawTiled, reporter) {
562 // Check that all filters when drawn tiled (with subsequent clip rects) exac tly 665 // Check that all filters when drawn tiled (with subsequent clip rects) exac tly
563 // match the same filters drawn with a single full-canvas bitmap draw. 666 // match the same filters drawn with a single full-canvas bitmap draw.
564 // Tests pass by not asserting. 667 // Tests pass by not asserting.
565 668
566 auto cf(SkColorFilter::MakeModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mode)) ; 669 FilterList filters;
567 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1);
568 SkScalar kernel[9] = {
569 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
570 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1),
571 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
572 };
573 const SkISize kernelSize = SkISize::Make(3, 3);
574 const SkScalar gain = SK_Scalar1, bias = 0;
575 const SkScalar five = SkIntToScalar(5);
576
577 sk_sp<SkImage> gradientImage(SkImage::MakeFromBitmap(make_gradient_circle(64 , 64)));
578 SkAutoTUnref<SkImageFilter> gradientSource(SkImageSource::Create(gradientIma ge.get()));
579 SkAutoTUnref<SkImageFilter> blur(SkBlurImageFilter::Create(five, five));
580 SkMatrix matrix;
581
582 matrix.setTranslate(SK_Scalar1, SK_Scalar1);
583 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1);
584
585 SkRTreeFactory factory;
586 SkPictureRecorder recorder;
587 SkCanvas* recordingCanvas = recorder.beginRecording(64, 64, &factory, 0);
588
589 SkPaint greenPaint;
590 greenPaint.setColor(SK_ColorGREEN);
591 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeXYWH(10, 10, 30, 20)), g reenPaint);
592 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
593 SkAutoTUnref<SkImageFilter> pictureFilter(SkPictureImageFilter::Create(pictu re.get()));
594 SkAutoTUnref<SkShader> shader(SkPerlinNoiseShader::CreateTurbulence(SK_Scala r1, SK_Scalar1, 1, 0));
595 SkPaint noisePaint;
596 noisePaint.setShader(shader);
597
598 SkAutoTUnref<SkImageFilter> paintFilter(SkPaintImageFilter::Create(noisePain t));
599
600 SkImageFilter::CropRect leftSideCropRect(SkRect::MakeXYWH(0, 0, 32, 64));
601 SkAutoTUnref<SkImageFilter> paintFilterLeft(SkPaintImageFilter::Create(green Paint, &leftSideCropRect));
602 SkImageFilter::CropRect rightSideCropRect(SkRect::MakeXYWH(32, 0, 32, 64));
603 SkAutoTUnref<SkImageFilter> paintFilterRight(SkPaintImageFilter::Create(gree nPaint, &rightSideCropRect));
604
605 struct {
606 const char* fName;
607 SkImageFilter* fFilter;
608 } filters[] = {
609 { "color filter", SkColorFilterImageFilter::Create(cf.get()) },
610 { "displacement map", SkDisplacementMapEffect::Create(
611 SkDisplacementMapEffect::kR_ChannelSelectorType,
612 SkDisplacementMapEffect::kB_ChannelSelectorType,
613 20.0f, gradientSource.get()) },
614 { "blur", SkBlurImageFilter::Create(SK_Scalar1, SK_Scalar1) },
615 { "drop shadow", SkDropShadowImageFilter::Create(
616 SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_ColorGREEN,
617 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode) },
618 { "diffuse lighting", SkLightingImageFilter::CreatePointLitDiffuse(
619 location, SK_ColorGREEN, 0, 0) },
620 { "specular lighting",
621 SkLightingImageFilter::CreatePointLitSpecular(location, SK_ColorGR EEN, 0, 0, 0) },
622 { "matrix convolution",
623 SkMatrixConvolutionImageFilter::Create(
624 kernelSize, kernel, gain, bias, SkIPoint::Make(1, 1),
625 SkMatrixConvolutionImageFilter::kRepeat_TileMode, false) },
626 { "merge", SkMergeImageFilter::Create(nullptr, nullptr, SkXfermode::kSrc Over_Mode) },
627 { "merge with disjoint inputs", SkMergeImageFilter::Create(
628 paintFilterLeft, paintFilterRight, SkXfermode::kSrcOver_Mode) },
629 { "offset", SkOffsetImageFilter::Create(SK_Scalar1, SK_Scalar1) },
630 { "dilate", SkDilateImageFilter::Create(3, 2) },
631 { "erode", SkErodeImageFilter::Create(2, 3) },
632 { "tile", SkTileImageFilter::Create(SkRect::MakeXYWH(0, 0, 50, 50),
633 SkRect::MakeXYWH(0, 0, 100, 100), nu llptr) },
634 { "matrix", SkImageFilter::CreateMatrixFilter(matrix, kLow_SkFilterQuali ty) },
635 { "blur and offset", SkOffsetImageFilter::Create(five, five, blur.get()) },
636 { "picture and blur", SkBlurImageFilter::Create(five, five, pictureFilte r.get()) },
637 { "paint and blur", SkBlurImageFilter::Create(five, five, paintFilter.ge t()) },
638 };
639 670
640 SkBitmap untiledResult, tiledResult; 671 SkBitmap untiledResult, tiledResult;
641 const int width = 64, height = 64; 672 const int width = 64, height = 64;
642 untiledResult.allocN32Pixels(width, height); 673 untiledResult.allocN32Pixels(width, height);
643 tiledResult.allocN32Pixels(width, height); 674 tiledResult.allocN32Pixels(width, height);
644 SkCanvas tiledCanvas(tiledResult); 675 SkCanvas tiledCanvas(tiledResult);
645 SkCanvas untiledCanvas(untiledResult); 676 SkCanvas untiledCanvas(untiledResult);
646 int tileSize = 8; 677 int tileSize = 8;
647 678
648 for (int scale = 1; scale <= 2; ++scale) { 679 for (int scale = 1; scale <= 2; ++scale) {
649 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) { 680 for (int i = 0; i < filters.count(); ++i) {
650 tiledCanvas.clear(0); 681 tiledCanvas.clear(0);
651 untiledCanvas.clear(0); 682 untiledCanvas.clear(0);
652 SkPaint paint; 683 SkPaint paint;
653 paint.setImageFilter(filters[i].fFilter); 684 paint.setImageFilter(filters.getFilter(i));
654 paint.setTextSize(SkIntToScalar(height)); 685 paint.setTextSize(SkIntToScalar(height));
655 paint.setColor(SK_ColorWHITE); 686 paint.setColor(SK_ColorWHITE);
656 SkString str; 687 SkString str;
657 const char* text = "ABC"; 688 const char* text = "ABC";
658 SkScalar ypos = SkIntToScalar(height); 689 SkScalar ypos = SkIntToScalar(height);
659 untiledCanvas.save(); 690 untiledCanvas.save();
660 untiledCanvas.scale(SkIntToScalar(scale), SkIntToScalar(scale)); 691 untiledCanvas.scale(SkIntToScalar(scale), SkIntToScalar(scale));
661 untiledCanvas.drawText(text, strlen(text), 0, ypos, paint); 692 untiledCanvas.drawText(text, strlen(text), 0, ypos, paint);
662 untiledCanvas.restore(); 693 untiledCanvas.restore();
663 for (int y = 0; y < height; y += tileSize) { 694 for (int y = 0; y < height; y += tileSize) {
664 for (int x = 0; x < width; x += tileSize) { 695 for (int x = 0; x < width; x += tileSize) {
665 tiledCanvas.save(); 696 tiledCanvas.save();
666 tiledCanvas.clipRect(SkRect::Make(SkIRect::MakeXYWH(x, y, ti leSize, tileSize))); 697 tiledCanvas.clipRect(SkRect::Make(SkIRect::MakeXYWH(x, y, ti leSize, tileSize)));
667 tiledCanvas.scale(SkIntToScalar(scale), SkIntToScalar(scale) ); 698 tiledCanvas.scale(SkIntToScalar(scale), SkIntToScalar(scale) );
668 tiledCanvas.drawText(text, strlen(text), 0, ypos, paint); 699 tiledCanvas.drawText(text, strlen(text), 0, ypos, paint);
669 tiledCanvas.restore(); 700 tiledCanvas.restore();
670 } 701 }
671 } 702 }
672 untiledCanvas.flush(); 703 untiledCanvas.flush();
673 tiledCanvas.flush(); 704 tiledCanvas.flush();
674 for (int y = 0; y < height; y++) { 705 for (int y = 0; y < height; y++) {
675 int diffs = memcmp(untiledResult.getAddr32(0, y), tiledResult.ge tAddr32(0, y), untiledResult.rowBytes()); 706 int diffs = memcmp(untiledResult.getAddr32(0, y), tiledResult.ge tAddr32(0, y), untiledResult.rowBytes());
676 REPORTER_ASSERT_MESSAGE(reporter, !diffs, filters[i].fName); 707 REPORTER_ASSERT_MESSAGE(reporter, !diffs, filters.getName(i));
677 if (diffs) { 708 if (diffs) {
678 break; 709 break;
679 } 710 }
680 } 711 }
681 } 712 }
682 } 713 }
683
684 for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) {
685 SkSafeUnref(filters[i].fFilter);
686 }
687 } 714 }
688 715
689 static void draw_saveLayer_picture(int width, int height, int tileSize, 716 static void draw_saveLayer_picture(int width, int height, int tileSize,
690 SkBBHFactory* factory, SkBitmap* result) { 717 SkBBHFactory* factory, SkBitmap* result) {
691 718
692 SkMatrix matrix; 719 SkMatrix matrix;
693 matrix.setTranslate(SkIntToScalar(50), 0); 720 matrix.setTranslate(SkIntToScalar(50), 0);
694 721
695 auto cf(SkColorFilter::MakeModeFilter(SK_ColorWHITE, SkXfermode::kSrc_Mode)) ; 722 auto cf(SkColorFilter::MakeModeFilter(SK_ColorWHITE, SkXfermode::kSrc_Mode)) ;
696 SkAutoTUnref<SkImageFilter> cfif(SkColorFilterImageFilter::Create(cf.get())) ; 723 SkAutoTUnref<SkImageFilter> cfif(SkColorFilterImageFilter::Create(cf.get())) ;
(...skipping 896 matching lines...) Expand 10 before | Expand all | Expand 10 after
1593 test_xfermode_cropped_input(&canvas, reporter); 1620 test_xfermode_cropped_input(&canvas, reporter);
1594 } 1621 }
1595 1622
1596 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { 1623 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) {
1597 SkAutoTUnref<SkSurface> surface( 1624 SkAutoTUnref<SkSurface> surface(
1598 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, 1625 SkSurface::NewRenderTarget(context, SkBudgeted::kYes,
1599 SkImageInfo::MakeN32Premul(100, 100))); 1626 SkImageInfo::MakeN32Premul(100, 100)));
1600 test_large_blur_input(reporter, surface->getCanvas()); 1627 test_large_blur_input(reporter, surface->getCanvas());
1601 } 1628 }
1602 #endif 1629 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698