diff options
author | Mike Reed <reed@google.com> | 2018-01-19 11:43:34 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-01-19 17:18:13 +0000 |
commit | e3429e62b0d020b27de3daa55893953eff581c4f (patch) | |
tree | b75c1983db5f376305d1767c0f1c844136cb4574 | |
parent | 59a1df225d1229f7aedd58cab4337892e390574e (diff) |
rename inner AsFPArgs to stand-alone GrFPArgs
This prepares us to share this with other effects (most notably maskfilters)
Bug: skia:
Change-Id: I12530fdf10c4e5f2a9ab6d394bf9e87c54ea60c4
Reviewed-on: https://skia-review.googlesource.com/97062
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
27 files changed, 78 insertions, 56 deletions
diff --git a/src/gpu/GrFPArgs.h b/src/gpu/GrFPArgs.h new file mode 100644 index 0000000000..58f12c5cac --- /dev/null +++ b/src/gpu/GrFPArgs.h @@ -0,0 +1,38 @@ +/* + * Copyright 2018 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrFPArgs_DEFINED +#define GrFPArgs_DEFINED + +#include "SkFilterQuality.h" + +class SkMatrix; +class GrContext; +class GrColorSpaceInfo; + +struct GrFPArgs { + GrFPArgs() {} + GrFPArgs(GrContext* context, + const SkMatrix* viewMatrix, + const SkMatrix* localMatrix, + SkFilterQuality filterQuality, + const GrColorSpaceInfo* dstColorSpaceInfo) + : fContext(context) + , fViewMatrix(viewMatrix) + , fLocalMatrix(localMatrix) + , fFilterQuality(filterQuality) + , fDstColorSpaceInfo(dstColorSpaceInfo) {} + + GrContext* fContext; + const SkMatrix* fViewMatrix; + const SkMatrix* fLocalMatrix; + SkFilterQuality fFilterQuality; + const GrColorSpaceInfo* fDstColorSpaceInfo; +}; + +#endif + diff --git a/src/gpu/GrTestUtils.h b/src/gpu/GrTestUtils.h index 9a1ae28dac..12e2ea3493 100644 --- a/src/gpu/GrTestUtils.h +++ b/src/gpu/GrTestUtils.h @@ -14,6 +14,7 @@ #include "../private/SkTemplates.h" #include "GrColor.h" +#include "GrFPArgs.h" #include "GrSamplerState.h" #include "SkPathEffect.h" #include "SkRandom.h" @@ -54,10 +55,10 @@ class TestAsFPArgs { public: TestAsFPArgs(GrProcessorTestData*); ~TestAsFPArgs(); - const SkShaderBase::AsFPArgs& args() const { return fArgs; } + const GrFPArgs& args() const { return fArgs; } private: - SkShaderBase::AsFPArgs fArgs; + GrFPArgs fArgs; SkMatrix fViewMatrixStorage; std::unique_ptr<GrColorSpaceInfo> fColorSpaceInfoStorage; }; diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 8faa9d4557..58dbb10df0 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -382,7 +382,7 @@ static inline bool skpaint_to_grpaint_impl(GrContext* context, if (shaderProcessor) { shaderFP = std::move(*shaderProcessor); } else if (const auto* shader = as_SB(skPaint.getShader())) { - shaderFP = shader->asFragmentProcessor(SkShaderBase::AsFPArgs( + shaderFP = shader->asFragmentProcessor(GrFPArgs( context, &viewM, nullptr, skPaint.getFilterQuality(), &colorSpaceInfo)); } } @@ -559,7 +559,7 @@ bool SkPaintToGrPaintWithTexture(GrContext* context, std::unique_ptr<GrFragmentProcessor> shaderFP; if (textureIsAlphaOnly) { if (const auto* shader = as_SB(paint.getShader())) { - shaderFP = shader->asFragmentProcessor(SkShaderBase::AsFPArgs( + shaderFP = shader->asFragmentProcessor(GrFPArgs( context, &viewM, nullptr, paint.getFilterQuality(), &colorSpaceInfo)); if (!shaderFP) { return false; diff --git a/src/shaders/SkColorFilterShader.cpp b/src/shaders/SkColorFilterShader.cpp index b407ed817d..0bb3afcc0b 100644 --- a/src/shaders/SkColorFilterShader.cpp +++ b/src/shaders/SkColorFilterShader.cpp @@ -55,7 +55,7 @@ sk_sp<SkShader> SkColorFilterShader::onMakeColorSpace(SkColorSpaceXformer* xform ///////////////////////////////////////////////////////////////////// std::unique_ptr<GrFragmentProcessor> SkColorFilterShader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { auto fp1 = as_SB(fShader)->asFragmentProcessor(args); if (!fp1) { return nullptr; diff --git a/src/shaders/SkColorFilterShader.h b/src/shaders/SkColorFilterShader.h index f69aa0da75..e771f38123 100644 --- a/src/shaders/SkColorFilterShader.h +++ b/src/shaders/SkColorFilterShader.h @@ -18,7 +18,7 @@ public: SkColorFilterShader(sk_sp<SkShader> shader, sk_sp<SkColorFilter> filter); #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/SkColorShader.cpp b/src/shaders/SkColorShader.cpp index 74680d65ae..b5b13cd0ea 100644 --- a/src/shaders/SkColorShader.cpp +++ b/src/shaders/SkColorShader.cpp @@ -90,7 +90,7 @@ SkShader::GradientType SkColorShader::asAGradient(GradientInfo* info) const { #include "SkGr.h" #include "effects/GrConstColorProcessor.h" std::unique_ptr<GrFragmentProcessor> SkColorShader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { GrColor4f color = SkColorToPremulGrColor4f(fColor, *args.fDstColorSpaceInfo); return GrConstColorProcessor::Make(color, GrConstColorProcessor::InputMode::kModulateA); } @@ -210,7 +210,7 @@ SkShader::GradientType SkColor4Shader::asAGradient(GradientInfo* info) const { #include "effects/GrConstColorProcessor.h" std::unique_ptr<GrFragmentProcessor> SkColor4Shader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { // Construct an xform assuming float inputs. The color space can have a transfer function on // it, which will be applied below. auto colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), kRGBA_float_GrPixelConfig, diff --git a/src/shaders/SkColorShader.h b/src/shaders/SkColorShader.h index e545514976..4c67e09bdf 100644 --- a/src/shaders/SkColorShader.h +++ b/src/shaders/SkColorShader.h @@ -47,7 +47,7 @@ public: GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() @@ -103,7 +103,7 @@ public: GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/SkComposeShader.cpp b/src/shaders/SkComposeShader.cpp index 2feae7788e..a6df8b24e0 100644 --- a/src/shaders/SkComposeShader.cpp +++ b/src/shaders/SkComposeShader.cpp @@ -119,7 +119,7 @@ bool SkComposeShader::onAppendStages(const StageRec& rec) const { ///////////////////////////////////////////////////////////////////// std::unique_ptr<GrFragmentProcessor> SkComposeShader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { if (this->isJustMode()) { SkASSERT(fMode != SkBlendMode::kSrc && fMode != SkBlendMode::kDst); // caught in factory if (fMode == SkBlendMode::kClear) { diff --git a/src/shaders/SkComposeShader.h b/src/shaders/SkComposeShader.h index 85d56cc352..7efa06cd99 100644 --- a/src/shaders/SkComposeShader.h +++ b/src/shaders/SkComposeShader.h @@ -23,7 +23,7 @@ public: } #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif #ifdef SK_DEBUGx diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp index 77d172a81a..af3dab92a0 100644 --- a/src/shaders/SkImageShader.cpp +++ b/src/shaders/SkImageShader.cpp @@ -185,7 +185,7 @@ static GrSamplerState::WrapMode tile_mode_to_wrap_mode(const SkShader::TileMode } std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkMatrix lmInverse; if (!this->getLocalMatrix().invert(&lmInverse)) { return nullptr; diff --git a/src/shaders/SkImageShader.h b/src/shaders/SkImageShader.h index c981b5c8ad..a3cf3dbe7f 100644 --- a/src/shaders/SkImageShader.h +++ b/src/shaders/SkImageShader.h @@ -24,7 +24,7 @@ public: SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageShader) #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SkImageShader(sk_sp<SkImage>, TileMode tx, TileMode ty, const SkMatrix* localMatrix); diff --git a/src/shaders/SkLocalMatrixShader.cpp b/src/shaders/SkLocalMatrixShader.cpp index 172eca1f6c..a08fea14a5 100644 --- a/src/shaders/SkLocalMatrixShader.cpp +++ b/src/shaders/SkLocalMatrixShader.cpp @@ -13,13 +13,13 @@ #if SK_SUPPORT_GPU std::unique_ptr<GrFragmentProcessor> SkLocalMatrixShader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkMatrix tmp = this->getLocalMatrix(); if (args.fLocalMatrix) { tmp.preConcat(*args.fLocalMatrix); } return as_SB(fProxyShader) - ->asFragmentProcessor(AsFPArgs(args.fContext, args.fViewMatrix, &tmp, + ->asFragmentProcessor(GrFPArgs(args.fContext, args.fViewMatrix, &tmp, args.fFilterQuality, args.fDstColorSpaceInfo)); } #endif diff --git a/src/shaders/SkLocalMatrixShader.h b/src/shaders/SkLocalMatrixShader.h index b16b2431af..2d7e313ddd 100644 --- a/src/shaders/SkLocalMatrixShader.h +++ b/src/shaders/SkLocalMatrixShader.h @@ -28,7 +28,7 @@ public: } #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif sk_sp<SkShader> makeAsALocalMatrixShader(SkMatrix* localMatrix) const override { diff --git a/src/shaders/SkPerlinNoiseShader.cpp b/src/shaders/SkPerlinNoiseShader.cpp index 6577a12683..ba85a8b7ae 100644 --- a/src/shaders/SkPerlinNoiseShader.cpp +++ b/src/shaders/SkPerlinNoiseShader.cpp @@ -351,7 +351,7 @@ public: }; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() @@ -1378,7 +1378,7 @@ void GrGLImprovedPerlinNoise::onSetData(const GrGLSLProgramDataManager& pdman, ///////////////////////////////////////////////////////////////////// std::unique_ptr<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkASSERT(args.fContext); SkMatrix localMatrix = this->getLocalMatrix(); diff --git a/src/shaders/SkPictureShader.cpp b/src/shaders/SkPictureShader.cpp index c536350cf9..9e4eb5193b 100644 --- a/src/shaders/SkPictureShader.cpp +++ b/src/shaders/SkPictureShader.cpp @@ -357,7 +357,7 @@ void SkPictureShader::toString(SkString* str) const { #if SK_SUPPORT_GPU std::unique_ptr<GrFragmentProcessor> SkPictureShader::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { int maxTextureSize = 0; if (args.fContext) { maxTextureSize = args.fContext->caps()->maxTextureSize(); @@ -369,8 +369,7 @@ std::unique_ptr<GrFragmentProcessor> SkPictureShader::asFragmentProcessor( return nullptr; } return as_SB(bitmapShader) - ->asFragmentProcessor(SkShaderBase::AsFPArgs(args.fContext, args.fViewMatrix, nullptr, - args.fFilterQuality, - args.fDstColorSpaceInfo)); + ->asFragmentProcessor(GrFPArgs(args.fContext, args.fViewMatrix, nullptr, + args.fFilterQuality, args.fDstColorSpaceInfo)); } #endif diff --git a/src/shaders/SkPictureShader.h b/src/shaders/SkPictureShader.h index 6b23fa3388..fe388ee81d 100644 --- a/src/shaders/SkPictureShader.h +++ b/src/shaders/SkPictureShader.h @@ -32,7 +32,7 @@ public: SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPictureShader) #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif protected: diff --git a/src/shaders/SkShader.cpp b/src/shaders/SkShader.cpp index c72c759f5c..17b56a2e27 100644 --- a/src/shaders/SkShader.cpp +++ b/src/shaders/SkShader.cpp @@ -163,7 +163,7 @@ SkShader::GradientType SkShader::asAGradient(GradientInfo* info) const { } #if SK_SUPPORT_GPU -std::unique_ptr<GrFragmentProcessor> SkShaderBase::asFragmentProcessor(const AsFPArgs&) const { +std::unique_ptr<GrFragmentProcessor> SkShaderBase::asFragmentProcessor(const GrFPArgs&) const { return nullptr; } #endif diff --git a/src/shaders/SkShaderBase.h b/src/shaders/SkShaderBase.h index 85c08fe75d..8831878602 100644 --- a/src/shaders/SkShaderBase.h +++ b/src/shaders/SkShaderBase.h @@ -12,6 +12,10 @@ #include "SkMatrix.h" #include "SkShader.h" +#if SK_SUPPORT_GPU +#include "GrFPArgs.h" +#endif + class GrContext; class GrColorSpaceInfo; class GrFragmentProcessor; @@ -135,26 +139,6 @@ public: Context* makeBurstPipelineContext(const ContextRec&, SkArenaAlloc*) const; #if SK_SUPPORT_GPU - struct AsFPArgs { - AsFPArgs() {} - AsFPArgs(GrContext* context, - const SkMatrix* viewMatrix, - const SkMatrix* localMatrix, - SkFilterQuality filterQuality, - const GrColorSpaceInfo* dstColorSpaceInfo) - : fContext(context) - , fViewMatrix(viewMatrix) - , fLocalMatrix(localMatrix) - , fFilterQuality(filterQuality) - , fDstColorSpaceInfo(dstColorSpaceInfo) {} - - GrContext* fContext; - const SkMatrix* fViewMatrix; - const SkMatrix* fLocalMatrix; - SkFilterQuality fFilterQuality; - const GrColorSpaceInfo* fDstColorSpaceInfo; - }; - /** * Returns a GrFragmentProcessor that implements the shader for the GPU backend. NULL is * returned if there is no GPU implementation. @@ -168,7 +152,7 @@ public: * The returned GrFragmentProcessor should expect an unpremultiplied input color and * produce a premultiplied output. */ - virtual std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const; + virtual std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const; #endif /** diff --git a/src/shaders/gradients/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp index 40e227114d..86e8179daa 100644 --- a/src/shaders/gradients/SkLinearGradient.cpp +++ b/src/shaders/gradients/SkLinearGradient.cpp @@ -185,7 +185,7 @@ void GrLinearGradient::GLSLLinearProcessor::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// std::unique_ptr<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkASSERT(args.fContext); SkMatrix matrix; diff --git a/src/shaders/gradients/SkLinearGradient.h b/src/shaders/gradients/SkLinearGradient.h index c93f2b4ed3..efe399695e 100644 --- a/src/shaders/gradients/SkLinearGradient.h +++ b/src/shaders/gradients/SkLinearGradient.h @@ -16,7 +16,7 @@ public: GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/gradients/SkRadialGradient.cpp b/src/shaders/gradients/SkRadialGradient.cpp index 49cfae1471..becf4ff8d0 100644 --- a/src/shaders/gradients/SkRadialGradient.cpp +++ b/src/shaders/gradients/SkRadialGradient.cpp @@ -161,7 +161,7 @@ void GrRadialGradient::GLSLRadialProcessor::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// std::unique_ptr<GrFragmentProcessor> SkRadialGradient::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkASSERT(args.fContext); SkMatrix matrix; diff --git a/src/shaders/gradients/SkRadialGradient.h b/src/shaders/gradients/SkRadialGradient.h index 1f6441b5a4..06ba27ffb3 100644 --- a/src/shaders/gradients/SkRadialGradient.h +++ b/src/shaders/gradients/SkRadialGradient.h @@ -16,7 +16,7 @@ public: GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/gradients/SkSweepGradient.cpp b/src/shaders/gradients/SkSweepGradient.cpp index 93746f663c..e9e02085ee 100644 --- a/src/shaders/gradients/SkSweepGradient.cpp +++ b/src/shaders/gradients/SkSweepGradient.cpp @@ -214,7 +214,7 @@ void GrSweepGradient::GLSLSweepProcessor::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// std::unique_ptr<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkMatrix matrix; if (!this->getLocalMatrix().invert(&matrix)) { return nullptr; diff --git a/src/shaders/gradients/SkSweepGradient.h b/src/shaders/gradients/SkSweepGradient.h index 061d699887..c4b5c67830 100644 --- a/src/shaders/gradients/SkSweepGradient.h +++ b/src/shaders/gradients/SkSweepGradient.h @@ -17,7 +17,7 @@ public: GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.cpp b/src/shaders/gradients/SkTwoPointConicalGradient.cpp index a3b02bb64f..024937a472 100644 --- a/src/shaders/gradients/SkTwoPointConicalGradient.cpp +++ b/src/shaders/gradients/SkTwoPointConicalGradient.cpp @@ -174,7 +174,7 @@ void SkTwoPointConicalGradient::flatten(SkWriteBuffer& buffer) const { #include "SkTwoPointConicalGradient_gpu.h" std::unique_ptr<GrFragmentProcessor> SkTwoPointConicalGradient::asFragmentProcessor( - const AsFPArgs& args) const { + const GrFPArgs& args) const { SkASSERT(args.fContext); return Gr2PtConicalGradientEffect::Make( GrGradientEffect::CreateArgs(args.fContext, this, args.fLocalMatrix, fTileMode, diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.h b/src/shaders/gradients/SkTwoPointConicalGradient.h index 37c0471c22..413a199b3d 100644 --- a/src/shaders/gradients/SkTwoPointConicalGradient.h +++ b/src/shaders/gradients/SkTwoPointConicalGradient.h @@ -49,7 +49,7 @@ public: SkShader::GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const GrFPArgs&) const override; #endif bool isOpaque() const override; diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp index dfbb0045a6..1eb055f53a 100644 --- a/tests/TessellatingPathRendererTests.cpp +++ b/tests/TessellatingPathRendererTests.cpp @@ -446,8 +446,8 @@ static std::unique_ptr<GrFragmentProcessor> create_linear_gradient_processor(GrC sk_sp<SkShader> shader = SkGradientShader::MakeLinear( pts, colors, nullptr, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode); GrColorSpaceInfo colorSpaceInfo(nullptr, kRGBA_8888_GrPixelConfig); - SkShaderBase::AsFPArgs args(ctx, &SkMatrix::I(), &SkMatrix::I(), - SkFilterQuality::kLow_SkFilterQuality, &colorSpaceInfo); + GrFPArgs args(ctx, &SkMatrix::I(), &SkMatrix::I(), SkFilterQuality::kLow_SkFilterQuality, + &colorSpaceInfo); return as_SB(shader)->asFragmentProcessor(args); } |