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 | 7 |
8 #include "SkBitmap.h" | 8 #include "SkBitmap.h" |
9 #include "SkBitmapDevice.h" | 9 #include "SkBitmapDevice.h" |
10 #include "SkBitmapSource.h" | 10 #include "SkBitmapSource.h" |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 } | 228 } |
229 } | 229 } |
230 | 230 |
231 static void test_crop_rects(SkBaseDevice* device, skiatest::Reporter* reporter)
{ | 231 static void test_crop_rects(SkBaseDevice* device, skiatest::Reporter* reporter)
{ |
232 // Check that all filters offset to their absolute crop rect, | 232 // Check that all filters offset to their absolute crop rect, |
233 // unaffected by the input crop rect. | 233 // unaffected by the input crop rect. |
234 // Tests pass by not asserting. | 234 // Tests pass by not asserting. |
235 SkBitmap bitmap; | 235 SkBitmap bitmap; |
236 bitmap.allocN32Pixels(100, 100); | 236 bitmap.allocN32Pixels(100, 100); |
237 bitmap.eraseARGB(0, 0, 0, 0); | 237 bitmap.eraseARGB(0, 0, 0, 0); |
238 SkDeviceImageFilterProxy proxy(device); | 238 SkDeviceImageFilterProxy proxy(device, SkSurfaceProps(SkSurfaceProps::kLegac
yFontHost_InitType)); |
239 | 239 |
240 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80)); | 240 SkImageFilter::CropRect inputCropRect(SkRect::MakeXYWH(8, 13, 80, 80)); |
241 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60)); | 241 SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(20, 30, 60, 60)); |
242 SkAutoTUnref<SkImageFilter> input(make_grayscale(NULL, &inputCropRect)); | 242 SkAutoTUnref<SkImageFilter> input(make_grayscale(NULL, &inputCropRect)); |
243 | 243 |
244 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorRED,
SkXfermode::kSrcIn_Mode)); | 244 SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorRED,
SkXfermode::kSrcIn_Mode)); |
245 SkPoint3 location(0, 0, SK_Scalar1); | 245 SkPoint3 location(0, 0, SK_Scalar1); |
246 SkPoint3 target(SK_Scalar1, SK_Scalar1, SK_Scalar1); | 246 SkPoint3 target(SK_Scalar1, SK_Scalar1, SK_Scalar1); |
247 SkScalar kernel[9] = { | 247 SkScalar kernel[9] = { |
248 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), | 248 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 SkPaint paint; | 308 SkPaint paint; |
309 paint.setShader(shader); | 309 paint.setShader(shader); |
310 canvas.drawCircle(x, y, radius, paint); | 310 canvas.drawCircle(x, y, radius, paint); |
311 return bitmap; | 311 return bitmap; |
312 } | 312 } |
313 | 313 |
314 static void test_negative_blur_sigma(SkBaseDevice* device, skiatest::Reporter* r
eporter) { | 314 static void test_negative_blur_sigma(SkBaseDevice* device, skiatest::Reporter* r
eporter) { |
315 // Check that SkBlurImageFilter will accept a negative sigma, either in | 315 // Check that SkBlurImageFilter will accept a negative sigma, either in |
316 // the given arguments or after CTM application. | 316 // the given arguments or after CTM application. |
317 int width = 32, height = 32; | 317 int width = 32, height = 32; |
318 SkDeviceImageFilterProxy proxy(device); | 318 SkDeviceImageFilterProxy proxy(device, SkSurfaceProps(SkSurfaceProps::kLegac
yFontHost_InitType)); |
319 SkScalar five = SkIntToScalar(5); | 319 SkScalar five = SkIntToScalar(5); |
320 | 320 |
321 SkAutoTUnref<SkBlurImageFilter> positiveFilter( | 321 SkAutoTUnref<SkBlurImageFilter> positiveFilter( |
322 SkBlurImageFilter::Create(five, five) | 322 SkBlurImageFilter::Create(five, five) |
323 ); | 323 ); |
324 | 324 |
325 SkAutoTUnref<SkBlurImageFilter> negativeFilter( | 325 SkAutoTUnref<SkBlurImageFilter> negativeFilter( |
326 SkBlurImageFilter::Create(-five, five) | 326 SkBlurImageFilter::Create(-five, five) |
327 ); | 327 ); |
328 | 328 |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
818 | 818 |
819 SkAutoTUnref<SkImageFilter> imageFilter( | 819 SkAutoTUnref<SkImageFilter> imageFilter( |
820 SkPictureImageFilter::Create(picture.get())); | 820 SkPictureImageFilter::Create(picture.get())); |
821 | 821 |
822 SkBitmap result; | 822 SkBitmap result; |
823 SkIPoint offset; | 823 SkIPoint offset; |
824 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), NUL
L); | 824 SkImageFilter::Context ctx(SkMatrix::I(), SkIRect::MakeXYWH(1, 1, 1, 1), NUL
L); |
825 SkBitmap bitmap; | 825 SkBitmap bitmap; |
826 bitmap.allocN32Pixels(2, 2); | 826 bitmap.allocN32Pixels(2, 2); |
827 SkBitmapDevice device(bitmap); | 827 SkBitmapDevice device(bitmap); |
828 SkDeviceImageFilterProxy proxy(&device); | 828 SkDeviceImageFilterProxy proxy(&device, SkSurfaceProps(SkSurfaceProps::kLega
cyFontHost_InitType)); |
829 REPORTER_ASSERT(reporter, !imageFilter->filterImage(&proxy, bitmap, ctx, &re
sult, &offset)); | 829 REPORTER_ASSERT(reporter, !imageFilter->filterImage(&proxy, bitmap, ctx, &re
sult, &offset)); |
830 } | 830 } |
831 | 831 |
832 DEF_TEST(ImageFilterEmptySaveLayer, reporter) { | 832 DEF_TEST(ImageFilterEmptySaveLayer, reporter) { |
833 // Even when there's an empty saveLayer()/restore(), ensure that an image | 833 // Even when there's an empty saveLayer()/restore(), ensure that an image |
834 // filter or color filter which affects transparent black still draws. | 834 // filter or color filter which affects transparent black still draws. |
835 | 835 |
836 SkBitmap bitmap; | 836 SkBitmap bitmap; |
837 bitmap.allocN32Pixels(10, 10); | 837 bitmap.allocN32Pixels(10, 10); |
838 SkBitmapDevice device(bitmap); | 838 SkBitmapDevice device(bitmap); |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 | 1095 |
1096 DEF_GPUTEST(TestNegativeBlurSigmaGPU, reporter, factory) { | 1096 DEF_GPUTEST(TestNegativeBlurSigmaGPU, reporter, factory) { |
1097 GrContext* context = factory->get(static_cast<GrContextFactory::GLContextTyp
e>(0)); | 1097 GrContext* context = factory->get(static_cast<GrContextFactory::GLContextTyp
e>(0)); |
1098 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(context, | 1098 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(context, |
1099 SkImageInfo::MakeN32Pre
mul(1, 1), | 1099 SkImageInfo::MakeN32Pre
mul(1, 1), |
1100 gProps, | 1100 gProps, |
1101 0)); | 1101 0)); |
1102 test_negative_blur_sigma(device, reporter); | 1102 test_negative_blur_sigma(device, reporter); |
1103 } | 1103 } |
1104 #endif | 1104 #endif |
OLD | NEW |