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

Side by Side Diff: tests/ImageFilterTest.cpp

Issue 1822623002: switch colorfilters to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: manual rebase 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
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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 130
131 return surface->makeImageSnapshot(); 131 return surface->makeImageSnapshot();
132 } 132 }
133 133
134 static SkImageFilter* make_scale(float amount, SkImageFilter* input = nullptr) { 134 static SkImageFilter* make_scale(float amount, SkImageFilter* input = nullptr) {
135 SkScalar s = amount; 135 SkScalar s = amount;
136 SkScalar matrix[20] = { s, 0, 0, 0, 0, 136 SkScalar matrix[20] = { s, 0, 0, 0, 0,
137 0, s, 0, 0, 0, 137 0, s, 0, 0, 0,
138 0, 0, s, 0, 0, 138 0, 0, s, 0, 0,
139 0, 0, 0, s, 0 }; 139 0, 0, 0, s, 0 };
140 SkAutoTUnref<SkColorFilter> filter(SkColorMatrixFilter::Create(matrix)); 140 auto filter(SkColorFilter::MakeMatrixFilterRowMajor255(matrix));
141 return SkColorFilterImageFilter::Create(filter, input); 141 return SkColorFilterImageFilter::Create(filter.get(), input);
142 } 142 }
143 143
144 static SkImageFilter* make_grayscale(SkImageFilter* input, const SkImageFilter:: CropRect* cropRect) { 144 static SkImageFilter* make_grayscale(SkImageFilter* input, const SkImageFilter:: CropRect* cropRect) {
145 SkScalar matrix[20]; 145 SkScalar matrix[20];
146 memset(matrix, 0, 20 * sizeof(SkScalar)); 146 memset(matrix, 0, 20 * sizeof(SkScalar));
147 matrix[0] = matrix[5] = matrix[10] = 0.2126f; 147 matrix[0] = matrix[5] = matrix[10] = 0.2126f;
148 matrix[1] = matrix[6] = matrix[11] = 0.7152f; 148 matrix[1] = matrix[6] = matrix[11] = 0.7152f;
149 matrix[2] = matrix[7] = matrix[12] = 0.0722f; 149 matrix[2] = matrix[7] = matrix[12] = 0.0722f;
150 matrix[18] = 1.0f; 150 matrix[18] = 1.0f;
151 SkAutoTUnref<SkColorFilter> filter(SkColorMatrixFilter::Create(matrix)); 151 auto filter(SkColorFilter::MakeMatrixFilterRowMajor255(matrix));
152 return SkColorFilterImageFilter::Create(filter, input, cropRect); 152 return SkColorFilterImageFilter::Create(filter.get(), input, cropRect);
153 } 153 }
154 154
155 static SkImageFilter* make_blue(SkImageFilter* input, const SkImageFilter::CropR ect* cropRect) { 155 static SkImageFilter* make_blue(SkImageFilter* input, const SkImageFilter::CropR ect* cropRect) {
156 SkAutoTUnref<SkColorFilter> filter(SkColorFilter::CreateModeFilter(SK_ColorB LUE, 156 auto filter(SkColorFilter::MakeModeFilter(SK_ColorBLUE, SkXfermode::kSrcIn_M ode));
157 SkXfermod e::kSrcIn_Mode)); 157 return SkColorFilterImageFilter::Create(filter.get(), input, cropRect);
158 return SkColorFilterImageFilter::Create(filter, input, cropRect);
159 } 158 }
160 159
161 static sk_sp<SkSpecialSurface> create_empty_special_surface(GrContext* context, 160 static sk_sp<SkSpecialSurface> create_empty_special_surface(GrContext* context,
162 SkImageFilter::Proxy * proxy, 161 SkImageFilter::Proxy * proxy,
163 int widthHeight) { 162 int widthHeight) {
164 if (context) { 163 if (context) {
165 GrSurfaceDesc desc; 164 GrSurfaceDesc desc;
166 desc.fConfig = kSkia8888_GrPixelConfig; 165 desc.fConfig = kSkia8888_GrPixelConfig;
167 desc.fFlags = kRenderTarget_GrSurfaceFlag; 166 desc.fFlags = kRenderTarget_GrSurfaceFlag;
168 desc.fWidth = widthHeight; 167 desc.fWidth = widthHeight;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 REPORTER_ASSERT(reporter, false == grayWithCrop->asColorFilter(nullptr)) ; 250 REPORTER_ASSERT(reporter, false == grayWithCrop->asColorFilter(nullptr)) ;
252 } 251 }
253 252
254 { 253 {
255 // Check that two non-commutative matrices are concatenated in 254 // Check that two non-commutative matrices are concatenated in
256 // the correct order. 255 // the correct order.
257 SkScalar blueToRedMatrix[20] = { 0 }; 256 SkScalar blueToRedMatrix[20] = { 0 };
258 blueToRedMatrix[2] = blueToRedMatrix[18] = SK_Scalar1; 257 blueToRedMatrix[2] = blueToRedMatrix[18] = SK_Scalar1;
259 SkScalar redToGreenMatrix[20] = { 0 }; 258 SkScalar redToGreenMatrix[20] = { 0 };
260 redToGreenMatrix[5] = redToGreenMatrix[18] = SK_Scalar1; 259 redToGreenMatrix[5] = redToGreenMatrix[18] = SK_Scalar1;
261 SkAutoTUnref<SkColorFilter> blueToRed(SkColorMatrixFilter::Create(blueTo RedMatrix)); 260 auto blueToRed(SkColorFilter::MakeMatrixFilterRowMajor255(blueToRedMatri x));
262 SkAutoTUnref<SkImageFilter> filter1(SkColorFilterImageFilter::Create(blu eToRed.get())); 261 SkAutoTUnref<SkImageFilter> filter1(SkColorFilterImageFilter::Create(blu eToRed.get()));
263 SkAutoTUnref<SkColorFilter> redToGreen(SkColorMatrixFilter::Create(redTo GreenMatrix)); 262 auto redToGreen(SkColorFilter::MakeMatrixFilterRowMajor255(redToGreenMat rix));
264 SkAutoTUnref<SkImageFilter> filter2(SkColorFilterImageFilter::Create(red ToGreen.get(), filter1.get())); 263 SkAutoTUnref<SkImageFilter> filter2(SkColorFilterImageFilter::Create(red ToGreen.get(), filter1.get()));
265 264
266 SkBitmap result; 265 SkBitmap result;
267 result.allocN32Pixels(kBitmapSize, kBitmapSize); 266 result.allocN32Pixels(kBitmapSize, kBitmapSize);
268 267
269 SkPaint paint; 268 SkPaint paint;
270 paint.setColor(SK_ColorBLUE); 269 paint.setColor(SK_ColorBLUE);
271 paint.setImageFilter(filter2.get()); 270 paint.setImageFilter(filter2.get());
272 SkCanvas canvas(result); 271 SkCanvas canvas(result);
273 canvas.clear(0x0); 272 canvas.clear(0x0);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 // Check that all filters offset to their absolute crop rect, 312 // Check that all filters offset to their absolute crop rect,
314 // unaffected by the input crop rect. 313 // unaffected by the input crop rect.
315 // Tests pass by not asserting. 314 // Tests pass by not asserting.
316 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 100) ); 315 sk_sp<SkSpecialImage> srcImg(create_empty_special_image(context, proxy, 100) );
317 SkASSERT(srcImg); 316 SkASSERT(srcImg);
318 317
319 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80)); 318 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80));
320 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60)); 319 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60));
321 SkAutoTUnref<SkImageFilter> input(make_grayscale(nullptr, &inputCropRect)); 320 SkAutoTUnref<SkImageFilter> input(make_grayscale(nullptr, &inputCropRect));
322 321
323 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mode)); 322 auto cf(SkColorFilter::MakeModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mode)) ;
324 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1); 323 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1);
325 SkScalar kernel[9] = { 324 SkScalar kernel[9] = {
326 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), 325 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
327 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1), 326 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1),
328 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), 327 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
329 }; 328 };
330 SkISize kernelSize = SkISize::Make(3, 3); 329 SkISize kernelSize = SkISize::Make(3, 3);
331 SkScalar gain = SK_Scalar1, bias = 0; 330 SkScalar gain = SK_Scalar1, bias = 0;
332 331
333 SkImageFilter* filters[] = { 332 SkImageFilter* filters[] = {
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 DEF_GPUTEST_FOR_NATIVE_CONTEXT(TestZeroBlurSigma_Gpu, reporter, context) { 556 DEF_GPUTEST_FOR_NATIVE_CONTEXT(TestZeroBlurSigma_Gpu, reporter, context) {
558 run_gpu_test(reporter, context, 100, test_zero_blur_sigma); 557 run_gpu_test(reporter, context, 100, test_zero_blur_sigma);
559 } 558 }
560 #endif 559 #endif
561 560
562 DEF_TEST(ImageFilterDrawTiled, reporter) { 561 DEF_TEST(ImageFilterDrawTiled, reporter) {
563 // Check that all filters when drawn tiled (with subsequent clip rects) exac tly 562 // Check that all filters when drawn tiled (with subsequent clip rects) exac tly
564 // match the same filters drawn with a single full-canvas bitmap draw. 563 // match the same filters drawn with a single full-canvas bitmap draw.
565 // Tests pass by not asserting. 564 // Tests pass by not asserting.
566 565
567 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mode)); 566 auto cf(SkColorFilter::MakeModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mode)) ;
568 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1); 567 SkPoint3 location = SkPoint3::Make(0, 0, SK_Scalar1);
569 SkScalar kernel[9] = { 568 SkScalar kernel[9] = {
570 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), 569 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
571 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1), 570 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1),
572 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), 571 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1),
573 }; 572 };
574 const SkISize kernelSize = SkISize::Make(3, 3); 573 const SkISize kernelSize = SkISize::Make(3, 3);
575 const SkScalar gain = SK_Scalar1, bias = 0; 574 const SkScalar gain = SK_Scalar1, bias = 0;
576 const SkScalar five = SkIntToScalar(5); 575 const SkScalar five = SkIntToScalar(5);
577 576
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 SkSafeUnref(filters[i].fFilter); 685 SkSafeUnref(filters[i].fFilter);
687 } 686 }
688 } 687 }
689 688
690 static void draw_saveLayer_picture(int width, int height, int tileSize, 689 static void draw_saveLayer_picture(int width, int height, int tileSize,
691 SkBBHFactory* factory, SkBitmap* result) { 690 SkBBHFactory* factory, SkBitmap* result) {
692 691
693 SkMatrix matrix; 692 SkMatrix matrix;
694 matrix.setTranslate(SkIntToScalar(50), 0); 693 matrix.setTranslate(SkIntToScalar(50), 0);
695 694
696 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorWHITE , SkXfermode::kSrc_Mode)); 695 auto cf(SkColorFilter::MakeModeFilter(SK_ColorWHITE, SkXfermode::kSrc_Mode)) ;
697 SkAutoTUnref<SkImageFilter> cfif(SkColorFilterImageFilter::Create(cf.get())) ; 696 SkAutoTUnref<SkImageFilter> cfif(SkColorFilterImageFilter::Create(cf.get())) ;
698 SkAutoTUnref<SkImageFilter> imageFilter(SkImageFilter::CreateMatrixFilter(ma trix, kNone_SkFilterQuality, cfif.get())); 697 SkAutoTUnref<SkImageFilter> imageFilter(SkImageFilter::CreateMatrixFilter(ma trix, kNone_SkFilterQuality, cfif.get()));
699 698
700 SkPaint paint; 699 SkPaint paint;
701 paint.setImageFilter(imageFilter.get()); 700 paint.setImageFilter(imageFilter.get());
702 SkPictureRecorder recorder; 701 SkPictureRecorder recorder;
703 SkRect bounds = SkRect::Make(SkIRect::MakeXYWH(0, 0, 50, 50)); 702 SkRect bounds = SkRect::Make(SkIRect::MakeXYWH(0, 0, 50, 50));
704 SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(width), 703 SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(width),
705 SkIntToScalar(height), 704 SkIntToScalar(height),
706 factory, 0); 705 factory, 0);
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
1116 // Even when there's an empty saveLayer()/restore(), ensure that an image 1115 // Even when there's an empty saveLayer()/restore(), ensure that an image
1117 // filter or color filter which affects transparent black still draws. 1116 // filter or color filter which affects transparent black still draws.
1118 1117
1119 SkBitmap bitmap; 1118 SkBitmap bitmap;
1120 bitmap.allocN32Pixels(10, 10); 1119 bitmap.allocN32Pixels(10, 10);
1121 SkCanvas canvas(bitmap); 1120 SkCanvas canvas(bitmap);
1122 1121
1123 SkRTreeFactory factory; 1122 SkRTreeFactory factory;
1124 SkPictureRecorder recorder; 1123 SkPictureRecorder recorder;
1125 1124
1126 SkAutoTUnref<SkColorFilter> green( 1125 auto green(SkColorFilter::MakeModeFilter(SK_ColorGREEN, SkXfermode::kSrc_Mod e));
1127 SkColorFilter::CreateModeFilter(SK_ColorGREEN, SkXfermode::kSrc_Mode));
1128 SkAutoTUnref<SkImageFilter> imageFilter( 1126 SkAutoTUnref<SkImageFilter> imageFilter(
1129 SkColorFilterImageFilter::Create(green.get())); 1127 SkColorFilterImageFilter::Create(green.get()));
1130 SkPaint imageFilterPaint; 1128 SkPaint imageFilterPaint;
1131 imageFilterPaint.setImageFilter(imageFilter.get()); 1129 imageFilterPaint.setImageFilter(imageFilter.get());
1132 SkPaint colorFilterPaint; 1130 SkPaint colorFilterPaint;
1133 colorFilterPaint.setColorFilter(green.get()); 1131 colorFilterPaint.setColorFilter(green);
1134 1132
1135 SkRect bounds = SkRect::MakeWH(10, 10); 1133 SkRect bounds = SkRect::MakeWH(10, 10);
1136 1134
1137 SkCanvas* recordingCanvas = recorder.beginRecording(10, 10, &factory, 0); 1135 SkCanvas* recordingCanvas = recorder.beginRecording(10, 10, &factory, 0);
1138 recordingCanvas->saveLayer(&bounds, &imageFilterPaint); 1136 recordingCanvas->saveLayer(&bounds, &imageFilterPaint);
1139 recordingCanvas->restore(); 1137 recordingCanvas->restore();
1140 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); 1138 sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
1141 1139
1142 canvas.clear(0); 1140 canvas.clear(0);
1143 canvas.drawPicture(picture); 1141 canvas.drawPicture(picture);
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 REPORTER_ASSERT(reporter, nullptr == conv.get()); 1237 REPORTER_ASSERT(reporter, nullptr == conv.get());
1240 } 1238 }
1241 1239
1242 static void test_xfermode_cropped_input(SkCanvas* canvas, skiatest::Reporter* re porter) { 1240 static void test_xfermode_cropped_input(SkCanvas* canvas, skiatest::Reporter* re porter) {
1243 canvas->clear(0); 1241 canvas->clear(0);
1244 1242
1245 SkBitmap bitmap; 1243 SkBitmap bitmap;
1246 bitmap.allocN32Pixels(1, 1); 1244 bitmap.allocN32Pixels(1, 1);
1247 bitmap.eraseARGB(255, 255, 255, 255); 1245 bitmap.eraseARGB(255, 255, 255, 255);
1248 1246
1249 SkAutoTUnref<SkColorFilter> green( 1247 auto green(SkColorFilter::MakeModeFilter(SK_ColorGREEN, SkXfermode::kSrcIn_M ode));
1250 SkColorFilter::CreateModeFilter(SK_ColorGREEN, SkXfermode::kSrcIn_Mode)) ;
1251 SkAutoTUnref<SkImageFilter> greenFilter(SkColorFilterImageFilter::Create(gre en.get())); 1248 SkAutoTUnref<SkImageFilter> greenFilter(SkColorFilterImageFilter::Create(gre en.get()));
1252 SkImageFilter::CropRect cropRect(SkRect::MakeEmpty()); 1249 SkImageFilter::CropRect cropRect(SkRect::MakeEmpty());
1253 SkAutoTUnref<SkImageFilter> croppedOut( 1250 SkAutoTUnref<SkImageFilter> croppedOut(
1254 SkColorFilterImageFilter::Create(green.get(), nullptr, &cropRect)); 1251 SkColorFilterImageFilter::Create(green.get(), nullptr, &cropRect));
1255 1252
1256 // Check that an xfermode image filter whose input has been cropped out stil l draws the other 1253 // Check that an xfermode image filter whose input has been cropped out stil l draws the other
1257 // input. Also check that drawing with both inputs cropped out doesn't cause a GPU warning. 1254 // input. Also check that drawing with both inputs cropped out doesn't cause a GPU warning.
1258 SkXfermode* mode = SkXfermode::Create(SkXfermode::kSrcOver_Mode); 1255 SkXfermode* mode = SkXfermode::Create(SkXfermode::kSrcOver_Mode);
1259 SkAutoTUnref<SkImageFilter> xfermodeNoFg( 1256 SkAutoTUnref<SkImageFilter> xfermodeNoFg(
1260 SkXfermodeImageFilter::Create(mode, greenFilter, croppedOut)); 1257 SkXfermodeImageFilter::Create(mode, greenFilter, croppedOut));
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1461 } 1458 }
1462 REPORTER_ASSERT(reporter, gray->canComputeFastBounds()); 1459 REPORTER_ASSERT(reporter, gray->canComputeFastBounds());
1463 1460
1464 SkAutoTUnref<SkImageFilter> grayBlur(SkBlurImageFilter::Create(SK_Scalar1, S K_Scalar1, gray.get())); 1461 SkAutoTUnref<SkImageFilter> grayBlur(SkBlurImageFilter::Create(SK_Scalar1, S K_Scalar1, gray.get()));
1465 REPORTER_ASSERT(reporter, grayBlur->canComputeFastBounds()); 1462 REPORTER_ASSERT(reporter, grayBlur->canComputeFastBounds());
1466 1463
1467 SkScalar greenMatrix[20] = { 0, 0, 0, 0, 0, 1464 SkScalar greenMatrix[20] = { 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 1, 1465 0, 0, 0, 0, 1,
1469 0, 0, 0, 0, 0, 1466 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 1 }; 1467 0, 0, 0, 0, 1 };
1471 SkAutoTUnref<SkColorFilter> greenCF(SkColorMatrixFilter::Create(greenMatrix) ); 1468 auto greenCF(SkColorFilter::MakeMatrixFilterRowMajor255(greenMatrix));
1472 SkAutoTUnref<SkImageFilter> green(SkColorFilterImageFilter::Create(greenCF)) ; 1469 SkAutoTUnref<SkImageFilter> green(SkColorFilterImageFilter::Create(greenCF.g et()));
1473 1470
1474 REPORTER_ASSERT(reporter, greenCF->affectsTransparentBlack()); 1471 REPORTER_ASSERT(reporter, greenCF->affectsTransparentBlack());
1475 REPORTER_ASSERT(reporter, !green->canComputeFastBounds()); 1472 REPORTER_ASSERT(reporter, !green->canComputeFastBounds());
1476 1473
1477 SkAutoTUnref<SkImageFilter> greenBlur(SkBlurImageFilter::Create(SK_Scalar1, SK_Scalar1, green.get())); 1474 SkAutoTUnref<SkImageFilter> greenBlur(SkBlurImageFilter::Create(SK_Scalar1, SK_Scalar1, green.get()));
1478 REPORTER_ASSERT(reporter, !greenBlur->canComputeFastBounds()); 1475 REPORTER_ASSERT(reporter, !greenBlur->canComputeFastBounds());
1479 1476
1480 uint8_t allOne[256], identity[256]; 1477 uint8_t allOne[256], identity[256];
1481 for (int i = 0; i < 256; ++i) { 1478 for (int i = 0; i < 256; ++i) {
1482 identity[i] = i; 1479 identity[i] = i;
1483 allOne[i] = 255; 1480 allOne[i] = 255;
1484 } 1481 }
1485 1482
1486 SkAutoTUnref<SkColorFilter> identityCF( 1483 auto identityCF(SkTableColorFilter::MakeARGB(identity, identity, identity, a llOne));
1487 SkTableColorFilter::CreateARGB(identity, identity, identity, allOne));
1488 SkAutoTUnref<SkImageFilter> identityFilter(SkColorFilterImageFilter::Create( identityCF.get())); 1484 SkAutoTUnref<SkImageFilter> identityFilter(SkColorFilterImageFilter::Create( identityCF.get()));
1489 REPORTER_ASSERT(reporter, !identityCF->affectsTransparentBlack()); 1485 REPORTER_ASSERT(reporter, !identityCF->affectsTransparentBlack());
1490 REPORTER_ASSERT(reporter, identityFilter->canComputeFastBounds()); 1486 REPORTER_ASSERT(reporter, identityFilter->canComputeFastBounds());
1491 1487
1492 SkAutoTUnref<SkColorFilter> forceOpaqueCF( 1488 auto forceOpaqueCF(SkTableColorFilter::MakeARGB(allOne, identity, identity, identity));
1493 SkTableColorFilter::CreateARGB(allOne, identity, identity, identity));
1494 SkAutoTUnref<SkImageFilter> forceOpaque(SkColorFilterImageFilter::Create(for ceOpaqueCF.get())); 1489 SkAutoTUnref<SkImageFilter> forceOpaque(SkColorFilterImageFilter::Create(for ceOpaqueCF.get()));
1495 REPORTER_ASSERT(reporter, forceOpaqueCF->affectsTransparentBlack()); 1490 REPORTER_ASSERT(reporter, forceOpaqueCF->affectsTransparentBlack());
1496 REPORTER_ASSERT(reporter, !forceOpaque->canComputeFastBounds()); 1491 REPORTER_ASSERT(reporter, !forceOpaque->canComputeFastBounds());
1497 } 1492 }
1498 1493
1499 // Verify that SkImageSource survives serialization 1494 // Verify that SkImageSource survives serialization
1500 DEF_TEST(ImageFilterImageSourceSerialization, reporter) { 1495 DEF_TEST(ImageFilterImageSourceSerialization, reporter) {
1501 SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterN32Premul(10, 10)); 1496 SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterN32Premul(10, 10));
1502 surface->getCanvas()->clear(SK_ColorGREEN); 1497 surface->getCanvas()->clear(SK_ColorGREEN);
1503 sk_sp<SkImage> image(surface->makeImageSnapshot()); 1498 sk_sp<SkImage> image(surface->makeImageSnapshot());
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1599 test_xfermode_cropped_input(&canvas, reporter); 1594 test_xfermode_cropped_input(&canvas, reporter);
1600 } 1595 }
1601 1596
1602 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { 1597 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) {
1603 SkAutoTUnref<SkSurface> surface( 1598 SkAutoTUnref<SkSurface> surface(
1604 SkSurface::NewRenderTarget(context, SkBudgeted::kYes, 1599 SkSurface::NewRenderTarget(context, SkBudgeted::kYes,
1605 SkImageInfo::MakeN32Premul(100, 100))); 1600 SkImageInfo::MakeN32Premul(100, 100)));
1606 test_large_blur_input(reporter, surface->getCanvas()); 1601 test_large_blur_input(reporter, surface->getCanvas());
1607 } 1602 }
1608 #endif 1603 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698