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 "SkBlurImageFilter.h" | 10 #include "SkBlurImageFilter.h" |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 this->addFilter("offset", | 218 this->addFilter("offset", |
219 SkOffsetImageFilter::Make(SK_Scalar1, SK_Scalar1, input, | 219 SkOffsetImageFilter::Make(SK_Scalar1, SK_Scalar1, input, |
220 cropRect).release()); | 220 cropRect).release()); |
221 this->addFilter("dilate", SkDilateImageFilter::Make(3, 2, input, cropRec
t).release()); | 221 this->addFilter("dilate", SkDilateImageFilter::Make(3, 2, input, cropRec
t).release()); |
222 this->addFilter("erode", SkErodeImageFilter::Make(2, 3, input, cropRect)
.release()); | 222 this->addFilter("erode", SkErodeImageFilter::Make(2, 3, input, cropRect)
.release()); |
223 this->addFilter("tile", SkTileImageFilter::Create( | 223 this->addFilter("tile", SkTileImageFilter::Create( |
224 SkRect::MakeXYWH(0, 0, 50, 50), | 224 SkRect::MakeXYWH(0, 0, 50, 50), |
225 cropRect ? cropRect->rect() : SkRect::MakeXYWH(0, 0, 100, 100), | 225 cropRect ? cropRect->rect() : SkRect::MakeXYWH(0, 0, 100, 100), |
226 input.get())); | 226 input.get())); |
227 if (!cropRect) { | 227 if (!cropRect) { |
228 this->addFilter("matrix", SkImageFilter::CreateMatrixFilter( | 228 this->addFilter("matrix", |
229 matrix, kLow_SkFilterQuality, input.get())); | 229 SkImageFilter::MakeMatrixFilter(matrix, kLow_SkFilterQuality, in
put).release()); |
230 } | 230 } |
231 | 231 |
232 { | 232 { |
233 sk_sp<SkImageFilter> blur(SkBlurImageFilter::Make(five, five, input)
); | 233 sk_sp<SkImageFilter> blur(SkBlurImageFilter::Make(five, five, input)
); |
234 | 234 |
235 this->addFilter("blur and offset", SkOffsetImageFilter::Make(five, f
ive, | 235 this->addFilter("blur and offset", SkOffsetImageFilter::Make(five, f
ive, |
236 std::mo
ve(blur), | 236 std::mo
ve(blur), |
237 cropRec
t).release()); | 237 cropRec
t).release()); |
238 } | 238 } |
239 { | 239 { |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
794 } | 794 } |
795 | 795 |
796 static void draw_saveLayer_picture(int width, int height, int tileSize, | 796 static void draw_saveLayer_picture(int width, int height, int tileSize, |
797 SkBBHFactory* factory, SkBitmap* result) { | 797 SkBBHFactory* factory, SkBitmap* result) { |
798 | 798 |
799 SkMatrix matrix; | 799 SkMatrix matrix; |
800 matrix.setTranslate(SkIntToScalar(50), 0); | 800 matrix.setTranslate(SkIntToScalar(50), 0); |
801 | 801 |
802 sk_sp<SkColorFilter> cf(SkColorFilter::MakeModeFilter(SK_ColorWHITE, SkXferm
ode::kSrc_Mode)); | 802 sk_sp<SkColorFilter> cf(SkColorFilter::MakeModeFilter(SK_ColorWHITE, SkXferm
ode::kSrc_Mode)); |
803 sk_sp<SkImageFilter> cfif(SkColorFilterImageFilter::Make(std::move(cf), null
ptr)); | 803 sk_sp<SkImageFilter> cfif(SkColorFilterImageFilter::Make(std::move(cf), null
ptr)); |
804 sk_sp<SkImageFilter> imageFilter(SkImageFilter::CreateMatrixFilter(matrix, | 804 sk_sp<SkImageFilter> imageFilter(SkImageFilter::MakeMatrixFilter(matrix, |
805 kNone_SkF
ilterQuality, | 805 kNone_SkFil
terQuality, |
806 cfif.get(
))); | 806 std::move(c
fif))); |
807 | 807 |
808 SkPaint paint; | 808 SkPaint paint; |
809 paint.setImageFilter(std::move(imageFilter)); | 809 paint.setImageFilter(std::move(imageFilter)); |
810 SkPictureRecorder recorder; | 810 SkPictureRecorder recorder; |
811 SkRect bounds = SkRect::Make(SkIRect::MakeXYWH(0, 0, 50, 50)); | 811 SkRect bounds = SkRect::Make(SkIRect::MakeXYWH(0, 0, 50, 50)); |
812 SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(width), | 812 SkCanvas* recordingCanvas = recorder.beginRecording(SkIntToScalar(width), |
813 SkIntToScalar(height), | 813 SkIntToScalar(height), |
814 factory, 0); | 814 factory, 0); |
815 recordingCanvas->translate(-55, 0); | 815 recordingCanvas->translate(-55, 0); |
816 recordingCanvas->saveLayer(&bounds, &paint); | 816 recordingCanvas->saveLayer(&bounds, &paint); |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1390 SkCanvas canvas(temp); | 1390 SkCanvas canvas(temp); |
1391 canvas.clear(0x0); | 1391 canvas.clear(0x0); |
1392 | 1392 |
1393 SkBitmap bitmap; | 1393 SkBitmap bitmap; |
1394 bitmap.allocN32Pixels(10, 10); | 1394 bitmap.allocN32Pixels(10, 10); |
1395 bitmap.eraseColor(SK_ColorGREEN); | 1395 bitmap.eraseColor(SK_ColorGREEN); |
1396 | 1396 |
1397 SkMatrix matrix; | 1397 SkMatrix matrix; |
1398 matrix.setScale(SkIntToScalar(2), SkIntToScalar(2)); | 1398 matrix.setScale(SkIntToScalar(2), SkIntToScalar(2)); |
1399 matrix.postTranslate(SkIntToScalar(-20), SkIntToScalar(-20)); | 1399 matrix.postTranslate(SkIntToScalar(-20), SkIntToScalar(-20)); |
1400 SkAutoTUnref<SkImageFilter> matrixFilter( | 1400 sk_sp<SkImageFilter> matrixFilter( |
1401 SkImageFilter::CreateMatrixFilter(matrix, kLow_SkFilterQuality)); | 1401 SkImageFilter::MakeMatrixFilter(matrix, kLow_SkFilterQuality, nullptr)); |
1402 | 1402 |
1403 // Test that saveLayer() with a filter nested inside another saveLayer() app
lies the | 1403 // Test that saveLayer() with a filter nested inside another saveLayer() app
lies the |
1404 // correct offset to the filter matrix. | 1404 // correct offset to the filter matrix. |
1405 SkRect bounds1 = SkRect::MakeXYWH(10, 10, 30, 30); | 1405 SkRect bounds1 = SkRect::MakeXYWH(10, 10, 30, 30); |
1406 canvas.saveLayer(&bounds1, nullptr); | 1406 canvas.saveLayer(&bounds1, nullptr); |
1407 SkPaint filterPaint; | 1407 SkPaint filterPaint; |
1408 filterPaint.setImageFilter(matrixFilter); | 1408 filterPaint.setImageFilter(std::move(matrixFilter)); |
1409 SkRect bounds2 = SkRect::MakeXYWH(20, 20, 10, 10); | 1409 SkRect bounds2 = SkRect::MakeXYWH(20, 20, 10, 10); |
1410 canvas.saveLayer(&bounds2, &filterPaint); | 1410 canvas.saveLayer(&bounds2, &filterPaint); |
1411 SkPaint greenPaint; | 1411 SkPaint greenPaint; |
1412 greenPaint.setColor(SK_ColorGREEN); | 1412 greenPaint.setColor(SK_ColorGREEN); |
1413 canvas.drawRect(bounds2, greenPaint); | 1413 canvas.drawRect(bounds2, greenPaint); |
1414 canvas.restore(); | 1414 canvas.restore(); |
1415 canvas.restore(); | 1415 canvas.restore(); |
1416 SkPaint strokePaint; | 1416 SkPaint strokePaint; |
1417 strokePaint.setStyle(SkPaint::kStroke_Style); | 1417 strokePaint.setStyle(SkPaint::kStroke_Style); |
1418 strokePaint.setColor(SK_ColorRED); | 1418 strokePaint.setColor(SK_ColorRED); |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1704 | 1704 |
1705 test_xfermode_cropped_input(&canvas, reporter); | 1705 test_xfermode_cropped_input(&canvas, reporter); |
1706 } | 1706 } |
1707 | 1707 |
1708 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, ctxInfo) { | 1708 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, ctxInfo) { |
1709 auto surface(SkSurface::MakeRenderTarget(ctxInfo.fGrContext, SkBudgeted::kYe
s, | 1709 auto surface(SkSurface::MakeRenderTarget(ctxInfo.fGrContext, SkBudgeted::kYe
s, |
1710 SkImageInfo::MakeN32Premul(100, 100
))); | 1710 SkImageInfo::MakeN32Premul(100, 100
))); |
1711 test_large_blur_input(reporter, surface->getCanvas()); | 1711 test_large_blur_input(reporter, surface->getCanvas()); |
1712 } | 1712 } |
1713 #endif | 1713 #endif |
OLD | NEW |