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 "SkBicubicImageFilter.h" | 8 #include "SkBicubicImageFilter.h" |
9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
10 #include "SkBitmapDevice.h" | 10 #include "SkBitmapDevice.h" |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 SkPoint3 target(SK_Scalar1, SK_Scalar1, SK_Scalar1); | 293 SkPoint3 target(SK_Scalar1, SK_Scalar1, SK_Scalar1); |
294 SkScalar kernel[9] = { | 294 SkScalar kernel[9] = { |
295 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), | 295 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), |
296 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1), | 296 SkIntToScalar( 1), SkIntToScalar(-7), SkIntToScalar( 1), |
297 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), | 297 SkIntToScalar( 1), SkIntToScalar( 1), SkIntToScalar( 1), |
298 }; | 298 }; |
299 SkISize kernelSize = SkISize::Make(3, 3); | 299 SkISize kernelSize = SkISize::Make(3, 3); |
300 SkScalar gain = SK_Scalar1, bias = 0; | 300 SkScalar gain = SK_Scalar1, bias = 0; |
301 | 301 |
302 SkAutoTUnref<SkImageFilter> gradient_source(SkBitmapSource::Create(make_grad
ient_circle(64, 64))); | 302 SkAutoTUnref<SkImageFilter> gradient_source(SkBitmapSource::Create(make_grad
ient_circle(64, 64))); |
| 303 SkMatrix matrix; |
| 304 matrix.setTranslate(SK_Scalar1, SK_Scalar1); |
| 305 matrix.postRotate(SkIntToScalar(45), SK_Scalar1, SK_Scalar1); |
303 | 306 |
304 struct { | 307 struct { |
305 const char* fName; | 308 const char* fName; |
306 SkImageFilter* fFilter; | 309 SkImageFilter* fFilter; |
307 } filters[] = { | 310 } filters[] = { |
308 { "color filter", SkColorFilterImageFilter::Create(cf.get()) }, | 311 { "color filter", SkColorFilterImageFilter::Create(cf.get()) }, |
309 { "displacement map", SkDisplacementMapEffect::Create( | 312 { "displacement map", SkDisplacementMapEffect::Create( |
310 SkDisplacementMapEffect::kR_ChannelSelectorType, | 313 SkDisplacementMapEffect::kR_ChannelSelectorType, |
311 SkDisplacementMapEffect::kB_ChannelSelectorType, | 314 SkDisplacementMapEffect::kB_ChannelSelectorType, |
312 20.0f, gradient_source.get()) }, | 315 20.0f, gradient_source.get()) }, |
313 { "blur", SkBlurImageFilter::Create(SK_Scalar1, SK_Scalar1) }, | 316 { "blur", SkBlurImageFilter::Create(SK_Scalar1, SK_Scalar1) }, |
314 { "drop shadow", SkDropShadowImageFilter::Create( | 317 { "drop shadow", SkDropShadowImageFilter::Create( |
315 SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_ColorGREEN) }, | 318 SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_ColorGREEN) }, |
316 { "diffuse lighting", SkLightingImageFilter::CreatePointLitDiffuse( | 319 { "diffuse lighting", SkLightingImageFilter::CreatePointLitDiffuse( |
317 location, SK_ColorGREEN, 0, 0) }, | 320 location, SK_ColorGREEN, 0, 0) }, |
318 { "specular lighting", | 321 { "specular lighting", |
319 SkLightingImageFilter::CreatePointLitSpecular(location, SK_ColorGR
EEN, 0, 0, 0) }, | 322 SkLightingImageFilter::CreatePointLitSpecular(location, SK_ColorGR
EEN, 0, 0, 0) }, |
320 { "matrix convolution", | 323 { "matrix convolution", |
321 SkMatrixConvolutionImageFilter::Create( | 324 SkMatrixConvolutionImageFilter::Create( |
322 kernelSize, kernel, gain, bias, SkIPoint::Make(1, 1), | 325 kernelSize, kernel, gain, bias, SkIPoint::Make(1, 1), |
323 SkMatrixConvolutionImageFilter::kRepeat_TileMode, false) }, | 326 SkMatrixConvolutionImageFilter::kRepeat_TileMode, false) }, |
324 { "merge", SkMergeImageFilter::Create(NULL, NULL, SkXfermode::kSrcOver_M
ode) }, | 327 { "merge", SkMergeImageFilter::Create(NULL, NULL, SkXfermode::kSrcOver_M
ode) }, |
325 { "offset", SkOffsetImageFilter::Create(SK_Scalar1, SK_Scalar1) }, | 328 { "offset", SkOffsetImageFilter::Create(SK_Scalar1, SK_Scalar1) }, |
326 { "dilate", SkDilateImageFilter::Create(3, 2) }, | 329 { "dilate", SkDilateImageFilter::Create(3, 2) }, |
327 { "erode", SkErodeImageFilter::Create(2, 3) }, | 330 { "erode", SkErodeImageFilter::Create(2, 3) }, |
328 { "tile", SkTileImageFilter::Create(SkRect::MakeXYWH(0, 0, 50, 50), | 331 { "tile", SkTileImageFilter::Create(SkRect::MakeXYWH(0, 0, 50, 50), |
329 SkRect::MakeXYWH(0, 0, 100, 100), NU
LL) }, | 332 SkRect::MakeXYWH(0, 0, 100, 100), NU
LL) }, |
| 333 { "matrix", SkMatrixImageFilter::Create(matrix, SkPaint::kLow_FilterLeve
l) }, |
330 }; | 334 }; |
331 | 335 |
332 SkBitmap untiledResult, tiledResult; | 336 SkBitmap untiledResult, tiledResult; |
333 int width = 64, height = 64; | 337 int width = 64, height = 64; |
334 untiledResult.allocN32Pixels(width, height); | 338 untiledResult.allocN32Pixels(width, height); |
335 tiledResult.allocN32Pixels(width, height); | 339 tiledResult.allocN32Pixels(width, height); |
336 SkCanvas tiledCanvas(tiledResult); | 340 SkCanvas tiledCanvas(tiledResult); |
337 SkCanvas untiledCanvas(untiledResult); | 341 SkCanvas untiledCanvas(untiledResult); |
338 int tileSize = 8; | 342 int tileSize = 8; |
339 | 343 |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 } | 676 } |
673 | 677 |
674 DEF_GPUTEST(XfermodeImageFilterCroppedInputGPU, reporter, factory) { | 678 DEF_GPUTEST(XfermodeImageFilterCroppedInputGPU, reporter, factory) { |
675 GrContext* context = factory->get(static_cast<GrContextFactory::GLContextTyp
e>(0)); | 679 GrContext* context = factory->get(static_cast<GrContextFactory::GLContextTyp
e>(0)); |
676 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(context, | 680 SkAutoTUnref<SkGpuDevice> device(SkGpuDevice::Create(context, |
677 SkImageInfo::MakeN32Pre
mul(1, 1), | 681 SkImageInfo::MakeN32Pre
mul(1, 1), |
678 0)); | 682 0)); |
679 test_xfermode_cropped_input(device, reporter); | 683 test_xfermode_cropped_input(device, reporter); |
680 } | 684 } |
681 #endif | 685 #endif |
OLD | NEW |