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 /src/shaders | |
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>
Diffstat (limited to 'src/shaders')
23 files changed, 33 insertions, 50 deletions
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; |