// Create a selection of imagefilter-based paints to test static void create_paints(SkTArray<SkPaint>* paints, sk_sp<SkImageFilter> source) { { SkMatrix scale; scale.setScale(2.0f, 2.0f); sk_sp<SkImageFilter> scaleMIF( SkImageFilter::MakeMatrixFilter(scale, kLow_SkFilterQuality, source)); add_paint(paints, std::move(scaleMIF)); } { SkMatrix rot; rot.setRotate(-33.3f); sk_sp<SkImageFilter> rotMIF( SkImageFilter::MakeMatrixFilter(rot, kLow_SkFilterQuality, source)); add_paint(paints, std::move(rotMIF)); } { SkRect src = SkRect::MakeXYWH(20, 20, 10, 10); SkRect dst = SkRect::MakeXYWH(30, 30, 30, 30); sk_sp<SkImageFilter> tileIF(SkTileImageFilter::Make(src, dst, nullptr)); add_paint(paints, std::move(tileIF)); } { constexpr SkDropShadowImageFilter::ShadowMode kBoth = SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode; sk_sp<SkImageFilter> dsif(SkDropShadowImageFilter::Make(10.0f, 10.0f, 3.0f, 3.0f, SK_ColorRED, kBoth, source)); add_paint(paints, std::move(dsif)); } { sk_sp<SkImageFilter> dsif( SkDropShadowImageFilter::Make(27.0f, 27.0f, 3.0f, 3.0f, SK_ColorRED, SkDropShadowImageFilter::kDrawShadowOnly_ShadowMode, source)); add_paint(paints, std::move(dsif)); } add_paint(paints, SkBlurImageFilter::Make(3, 3, source)); add_paint(paints, SkOffsetImageFilter::Make(15, 15, source)); }
// Create a selection of imagefilter-based paints to test static void create_paints(SkImageFilter* source, SkTArray<SkPaint>* paints) { { SkMatrix scale; scale.setScale(2.0f, 2.0f); SkAutoTUnref<SkImageFilter> scaleMIF( SkImageFilter::CreateMatrixFilter(scale, kLow_SkFilterQuality, source)); add_paint(scaleMIF, paints); } { SkMatrix rot; rot.setRotate(-33.3f); SkAutoTUnref<SkImageFilter> rotMIF( SkImageFilter::CreateMatrixFilter(rot, kLow_SkFilterQuality, source)); add_paint(rotMIF, paints); } { static const SkDropShadowImageFilter::ShadowMode kBoth = SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode; SkAutoTUnref<SkDropShadowImageFilter> dsif( SkDropShadowImageFilter::Create(10.0f, 10.0f, 3.0f, 3.0f, SK_ColorRED, kBoth, source, nullptr)); add_paint(dsif, paints); } { SkAutoTUnref<SkDropShadowImageFilter> dsif( SkDropShadowImageFilter::Create(27.0f, 27.0f, 3.0f, 3.0f, SK_ColorRED, SkDropShadowImageFilter::kDrawShadowOnly_ShadowMode, source, nullptr)); add_paint(dsif, paints); } { SkAutoTUnref<SkBlurImageFilter> bif(SkBlurImageFilter::Create(3, 3, source)); add_paint(bif, paints); } { SkAutoTUnref<SkOffsetImageFilter> oif(SkOffsetImageFilter::Create(15, 15, source)); add_paint(oif, paints); } }