| 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 #include "GrContext.h" | 44 #include "GrContext.h" |
| 45 #include "SkGpuDevice.h" | 45 #include "SkGpuDevice.h" |
| 46 #endif | 46 #endif |
| 47 | 47 |
| 48 static const int kBitmapSize = 4; | 48 static const int kBitmapSize = 4; |
| 49 | 49 |
| 50 namespace { | 50 namespace { |
| 51 | 51 |
| 52 class MatrixTestImageFilter : public SkImageFilter { | 52 class MatrixTestImageFilter : public SkImageFilter { |
| 53 public: | 53 public: |
| 54 MatrixTestImageFilter(skiatest::Reporter* reporter, const SkMatrix& expected
Matrix) | 54 static sk_sp<SkImageFilter> Make(skiatest::Reporter* reporter, |
| 55 : SkImageFilter(0, nullptr), fReporter(reporter), fExpectedMatrix(expected
Matrix) { | 55 const SkMatrix& expectedMatrix) { |
| 56 return sk_sp<SkImageFilter>(new MatrixTestImageFilter(reporter, expected
Matrix)); |
| 56 } | 57 } |
| 57 | 58 |
| 59 SK_TO_STRING_OVERRIDE() |
| 60 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(MatrixTestImageFilter) |
| 61 |
| 62 protected: |
| 58 bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context& ctx
, | 63 bool onFilterImageDeprecated(Proxy*, const SkBitmap& src, const Context& ctx
, |
| 59 SkBitmap* result, SkIPoint* offset) const overr
ide { | 64 SkBitmap* result, SkIPoint* offset) const overr
ide { |
| 60 REPORTER_ASSERT(fReporter, ctx.ctm() == fExpectedMatrix); | 65 REPORTER_ASSERT(fReporter, ctx.ctm() == fExpectedMatrix); |
| 61 return true; | 66 return true; |
| 62 } | 67 } |
| 63 | 68 |
| 64 SK_TO_STRING_OVERRIDE() | |
| 65 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(MatrixTestImageFilter) | |
| 66 | |
| 67 protected: | |
| 68 void flatten(SkWriteBuffer& buffer) const override { | 69 void flatten(SkWriteBuffer& buffer) const override { |
| 69 this->INHERITED::flatten(buffer); | 70 this->INHERITED::flatten(buffer); |
| 70 buffer.writeFunctionPtr(fReporter); | 71 buffer.writeFunctionPtr(fReporter); |
| 71 buffer.writeMatrix(fExpectedMatrix); | 72 buffer.writeMatrix(fExpectedMatrix); |
| 72 } | 73 } |
| 73 | 74 |
| 74 private: | 75 private: |
| 76 MatrixTestImageFilter(skiatest::Reporter* reporter, const SkMatrix& expected
Matrix) |
| 77 : INHERITED(nullptr, 0, nullptr) |
| 78 , fReporter(reporter) |
| 79 , fExpectedMatrix(expectedMatrix) { |
| 80 } |
| 81 |
| 75 skiatest::Reporter* fReporter; | 82 skiatest::Reporter* fReporter; |
| 76 SkMatrix fExpectedMatrix; | 83 SkMatrix fExpectedMatrix; |
| 77 | 84 |
| 78 typedef SkImageFilter INHERITED; | 85 typedef SkImageFilter INHERITED; |
| 79 }; | 86 }; |
| 80 | 87 |
| 81 void draw_gradient_circle(SkCanvas* canvas, int width, int height) { | 88 void draw_gradient_circle(SkCanvas* canvas, int width, int height) { |
| 82 SkScalar x = SkIntToScalar(width / 2); | 89 SkScalar x = SkIntToScalar(width / 2); |
| 83 SkScalar y = SkIntToScalar(height / 2); | 90 SkScalar y = SkIntToScalar(height / 2); |
| 84 SkScalar radius = SkMinScalar(x, y) * 0.8f; | 91 SkScalar radius = SkMinScalar(x, y) * 0.8f; |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 SkTArray<Filter> fFilters; | 224 SkTArray<Filter> fFilters; |
| 218 }; | 225 }; |
| 219 | 226 |
| 220 } | 227 } |
| 221 | 228 |
| 222 sk_sp<SkFlattenable> MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) { | 229 sk_sp<SkFlattenable> MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) { |
| 223 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); | 230 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); |
| 224 skiatest::Reporter* reporter = (skiatest::Reporter*)buffer.readFunctionPtr()
; | 231 skiatest::Reporter* reporter = (skiatest::Reporter*)buffer.readFunctionPtr()
; |
| 225 SkMatrix matrix; | 232 SkMatrix matrix; |
| 226 buffer.readMatrix(&matrix); | 233 buffer.readMatrix(&matrix); |
| 227 return sk_make_sp<MatrixTestImageFilter>(reporter, matrix); | 234 return MatrixTestImageFilter::Make(reporter, matrix); |
| 228 } | 235 } |
| 229 | 236 |
| 230 #ifndef SK_IGNORE_TO_STRING | 237 #ifndef SK_IGNORE_TO_STRING |
| 231 void MatrixTestImageFilter::toString(SkString* str) const { | 238 void MatrixTestImageFilter::toString(SkString* str) const { |
| 232 str->appendf("MatrixTestImageFilter: ("); | 239 str->appendf("MatrixTestImageFilter: ("); |
| 233 str->append(")"); | 240 str->append(")"); |
| 234 } | 241 } |
| 235 #endif | 242 #endif |
| 236 | 243 |
| 237 static sk_sp<SkImage> make_small_image() { | 244 static sk_sp<SkImage> make_small_image() { |
| (...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 995 SkCanvas canvas(temp); | 1002 SkCanvas canvas(temp); |
| 996 canvas.scale(SkIntToScalar(2), SkIntToScalar(2)); | 1003 canvas.scale(SkIntToScalar(2), SkIntToScalar(2)); |
| 997 | 1004 |
| 998 SkMatrix expectedMatrix = canvas.getTotalMatrix(); | 1005 SkMatrix expectedMatrix = canvas.getTotalMatrix(); |
| 999 | 1006 |
| 1000 SkRTreeFactory factory; | 1007 SkRTreeFactory factory; |
| 1001 SkPictureRecorder recorder; | 1008 SkPictureRecorder recorder; |
| 1002 SkCanvas* recordingCanvas = recorder.beginRecording(100, 100, &factory, 0); | 1009 SkCanvas* recordingCanvas = recorder.beginRecording(100, 100, &factory, 0); |
| 1003 | 1010 |
| 1004 SkPaint paint; | 1011 SkPaint paint; |
| 1005 SkAutoTUnref<MatrixTestImageFilter> imageFilter( | 1012 paint.setImageFilter(MatrixTestImageFilter::Make(reporter, expectedMatrix)); |
| 1006 new MatrixTestImageFilter(reporter, expectedMatrix)); | |
| 1007 paint.setImageFilter(imageFilter.get()); | |
| 1008 recordingCanvas->saveLayer(nullptr, &paint); | 1013 recordingCanvas->saveLayer(nullptr, &paint); |
| 1009 SkPaint solidPaint; | 1014 SkPaint solidPaint; |
| 1010 solidPaint.setColor(0xFFFFFFFF); | 1015 solidPaint.setColor(0xFFFFFFFF); |
| 1011 recordingCanvas->save(); | 1016 recordingCanvas->save(); |
| 1012 recordingCanvas->scale(SkIntToScalar(10), SkIntToScalar(10)); | 1017 recordingCanvas->scale(SkIntToScalar(10), SkIntToScalar(10)); |
| 1013 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(100, 100)), solidPain
t); | 1018 recordingCanvas->drawRect(SkRect::Make(SkIRect::MakeWH(100, 100)), solidPain
t); |
| 1014 recordingCanvas->restore(); // scale | 1019 recordingCanvas->restore(); // scale |
| 1015 recordingCanvas->restore(); // saveLayer | 1020 recordingCanvas->restore(); // saveLayer |
| 1016 | 1021 |
| 1017 canvas.drawPicture(recorder.finishRecordingAsPicture()); | 1022 canvas.drawPicture(recorder.finishRecordingAsPicture()); |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1592 | 1597 |
| 1593 test_xfermode_cropped_input(&canvas, reporter); | 1598 test_xfermode_cropped_input(&canvas, reporter); |
| 1594 } | 1599 } |
| 1595 | 1600 |
| 1596 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { | 1601 DEF_GPUTEST_FOR_ALL_CONTEXTS(BlurLargeImage_Gpu, reporter, context) { |
| 1597 auto surface(SkSurface::MakeRenderTarget(context, SkBudgeted::kYes, | 1602 auto surface(SkSurface::MakeRenderTarget(context, SkBudgeted::kYes, |
| 1598 SkImageInfo::MakeN32Premul(100, 100
))); | 1603 SkImageInfo::MakeN32Premul(100, 100
))); |
| 1599 test_large_blur_input(reporter, surface->getCanvas()); | 1604 test_large_blur_input(reporter, surface->getCanvas()); |
| 1600 } | 1605 } |
| 1601 #endif | 1606 #endif |
| OLD | NEW |