diff options
Diffstat (limited to 'src/shaders/gradients')
-rw-r--r-- | src/shaders/gradients/SkLinearGradient.cpp | 21 | ||||
-rw-r--r-- | src/shaders/gradients/SkLinearGradient.h | 2 | ||||
-rw-r--r-- | src/shaders/gradients/SkRadialGradient.cpp | 21 | ||||
-rw-r--r-- | src/shaders/gradients/SkRadialGradient.h | 2 | ||||
-rw-r--r-- | src/shaders/gradients/SkSweepGradient.cpp | 26 | ||||
-rw-r--r-- | src/shaders/gradients/SkSweepGradient.h | 2 | ||||
-rw-r--r-- | src/shaders/gradients/SkTwoPointConicalGradient.cpp | 8 | ||||
-rw-r--r-- | src/shaders/gradients/SkTwoPointConicalGradient.h | 2 | ||||
-rw-r--r-- | src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp | 77 | ||||
-rw-r--r-- | src/shaders/gradients/SkTwoPointConicalGradient_gpu.h | 11 |
10 files changed, 90 insertions, 82 deletions
diff --git a/src/shaders/gradients/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp index 0ed5350c6e..551368b94d 100644 --- a/src/shaders/gradients/SkLinearGradient.cpp +++ b/src/shaders/gradients/SkLinearGradient.cpp @@ -333,15 +333,15 @@ class GrLinearGradient : public GrGradientEffect { public: class GLSLLinearProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args) { - auto processor = sk_sp<GrLinearGradient>(new GrLinearGradient(args)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args) { + auto processor = std::unique_ptr<GrLinearGradient>(new GrLinearGradient(args)); return processor->isValid() ? std::move(processor) : nullptr; } const char* name() const override { return "Linear Gradient"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new GrLinearGradient(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new GrLinearGradient(*this)); } private: @@ -396,7 +396,7 @@ void GrLinearGradient::onGetGLSLProcessorKey(const GrShaderCaps& caps, GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrLinearGradient); #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> GrLinearGradient::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> GrLinearGradient::TestCreate(GrProcessorTestData* d) { SkPoint points[] = {{d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}, {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}}; @@ -407,7 +407,7 @@ sk_sp<GrFragmentProcessor> GrLinearGradient::TestCreate(GrProcessorTestData* d) SkGradientShader::MakeLinear(points, params.fColors, params.fStops, params.fColorCount, params.fTileMode); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -432,7 +432,8 @@ void GrLinearGradient::GLSLLinearProcessor::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// -sk_sp<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor(const AsFPArgs& args) const { +std::unique_ptr<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor( + const AsFPArgs& args) const { SkASSERT(args.fContext); SkMatrix matrix; @@ -450,9 +451,9 @@ sk_sp<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor(const AsFPArgs& sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), args.fDstColorSpace); - sk_sp<GrFragmentProcessor> inner(GrLinearGradient::Make( - GrGradientEffect::CreateArgs(args.fContext, this, &matrix, fTileMode, - std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)))); + auto inner = GrLinearGradient::Make(GrGradientEffect::CreateArgs( + args.fContext, this, &matrix, fTileMode, std::move(colorSpaceXform), + SkToBool(args.fDstColorSpace))); if (!inner) { return nullptr; } diff --git a/src/shaders/gradients/SkLinearGradient.h b/src/shaders/gradients/SkLinearGradient.h index c0ba7f4dbf..64db9dcdb3 100644 --- a/src/shaders/gradients/SkLinearGradient.h +++ b/src/shaders/gradients/SkLinearGradient.h @@ -52,7 +52,7 @@ public: GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - sk_sp<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/gradients/SkRadialGradient.cpp b/src/shaders/gradients/SkRadialGradient.cpp index 02086ea9fa..94d823c90c 100644 --- a/src/shaders/gradients/SkRadialGradient.cpp +++ b/src/shaders/gradients/SkRadialGradient.cpp @@ -68,15 +68,15 @@ class GrRadialGradient : public GrGradientEffect { public: class GLSLRadialProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args) { - auto processor = sk_sp<GrRadialGradient>(new GrRadialGradient(args)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args) { + auto processor = std::unique_ptr<GrRadialGradient>(new GrRadialGradient(args)); return processor->isValid() ? std::move(processor) : nullptr; } const char* name() const override { return "Radial Gradient"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new GrRadialGradient(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new GrRadialGradient(*this)); } private: @@ -132,7 +132,7 @@ void GrRadialGradient::onGetGLSLProcessorKey(const GrShaderCaps& caps, GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrRadialGradient); #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> GrRadialGradient::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> GrRadialGradient::TestCreate(GrProcessorTestData* d) { sk_sp<SkShader> shader; do { RandomGradientParams params(d->fRandom); @@ -147,7 +147,7 @@ sk_sp<GrFragmentProcessor> GrRadialGradient::TestCreate(GrProcessorTestData* d) params.fTileMode); } while (!shader); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -172,7 +172,8 @@ void GrRadialGradient::GLSLRadialProcessor::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// -sk_sp<GrFragmentProcessor> SkRadialGradient::asFragmentProcessor(const AsFPArgs& args) const { +std::unique_ptr<GrFragmentProcessor> SkRadialGradient::asFragmentProcessor( + const AsFPArgs& args) const { SkASSERT(args.fContext); SkMatrix matrix; @@ -189,9 +190,9 @@ sk_sp<GrFragmentProcessor> SkRadialGradient::asFragmentProcessor(const AsFPArgs& matrix.postConcat(fPtsToUnit); sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), args.fDstColorSpace); - sk_sp<GrFragmentProcessor> inner(GrRadialGradient::Make( - GrGradientEffect::CreateArgs(args.fContext, this, &matrix, fTileMode, - std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)))); + auto inner = GrRadialGradient::Make(GrGradientEffect::CreateArgs( + args.fContext, this, &matrix, fTileMode, std::move(colorSpaceXform), + SkToBool(args.fDstColorSpace))); if (!inner) { return nullptr; } diff --git a/src/shaders/gradients/SkRadialGradient.h b/src/shaders/gradients/SkRadialGradient.h index 8cd7df2680..6a6dadfbc4 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 - sk_sp<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/gradients/SkSweepGradient.cpp b/src/shaders/gradients/SkSweepGradient.cpp index 011474ca24..87b82fdfac 100644 --- a/src/shaders/gradients/SkSweepGradient.cpp +++ b/src/shaders/gradients/SkSweepGradient.cpp @@ -74,16 +74,16 @@ class GrSweepGradient : public GrGradientEffect { public: class GLSLSweepProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args, SkScalar tBias, - SkScalar tScale) { - auto processor = sk_sp<GrSweepGradient>(new GrSweepGradient(args, tBias, tScale)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args, SkScalar tBias, + SkScalar tScale) { + auto processor = std::unique_ptr<GrSweepGradient>(new GrSweepGradient(args, tBias, tScale)); return processor->isValid() ? std::move(processor) : nullptr; } const char* name() const override { return "Sweep Gradient"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new GrSweepGradient(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new GrSweepGradient(*this)); } private: @@ -176,7 +176,7 @@ void GrSweepGradient::onGetGLSLProcessorKey(const GrShaderCaps& caps, GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSweepGradient); #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> GrSweepGradient::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> GrSweepGradient::TestCreate(GrProcessorTestData* d) { SkPoint center = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; RandomGradientParams params(d->fRandom); @@ -186,7 +186,7 @@ sk_sp<GrFragmentProcessor> GrSweepGradient::TestCreate(GrProcessorTestData* d) { SkGradientShader::MakeSweep(center.fX, center.fY, params.fColors, params.fStops, params.fColorCount); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -229,8 +229,8 @@ void GrSweepGradient::GLSLSweepProcessor::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// -sk_sp<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor(const AsFPArgs& args) const { - +std::unique_ptr<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor( + const AsFPArgs& args) const { SkMatrix matrix; if (!this->getLocalMatrix().invert(&matrix)) { return nullptr; @@ -246,10 +246,10 @@ sk_sp<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor(const AsFPArgs& sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), args.fDstColorSpace); - sk_sp<GrFragmentProcessor> inner(GrSweepGradient::Make( - GrGradientEffect::CreateArgs(args.fContext, this, &matrix, fTileMode, - std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)), - fTBias, fTScale)); + auto inner = GrSweepGradient::Make( + GrGradientEffect::CreateArgs(args.fContext, this, &matrix, fTileMode, + std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)), + fTBias, fTScale); if (!inner) { return nullptr; } diff --git a/src/shaders/gradients/SkSweepGradient.h b/src/shaders/gradients/SkSweepGradient.h index b42f270d5c..061d699887 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 - sk_sp<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.cpp b/src/shaders/gradients/SkTwoPointConicalGradient.cpp index 0bee74fe38..a1634727a9 100644 --- a/src/shaders/gradients/SkTwoPointConicalGradient.cpp +++ b/src/shaders/gradients/SkTwoPointConicalGradient.cpp @@ -133,14 +133,14 @@ void SkTwoPointConicalGradient::flatten(SkWriteBuffer& buffer) const { #include "SkGr.h" #include "SkTwoPointConicalGradient_gpu.h" -sk_sp<GrFragmentProcessor> SkTwoPointConicalGradient::asFragmentProcessor( +std::unique_ptr<GrFragmentProcessor> SkTwoPointConicalGradient::asFragmentProcessor( const AsFPArgs& args) const { SkASSERT(args.fContext); sk_sp<GrColorSpaceXform> colorSpaceXform = GrColorSpaceXform::Make(fColorSpace.get(), args.fDstColorSpace); - sk_sp<GrFragmentProcessor> inner(Gr2PtConicalGradientEffect::Make( - GrGradientEffect::CreateArgs(args.fContext, this, args.fLocalMatrix, fTileMode, - std::move(colorSpaceXform), SkToBool(args.fDstColorSpace)))); + auto inner = Gr2PtConicalGradientEffect::Make(GrGradientEffect::CreateArgs( + args.fContext, this, args.fLocalMatrix, fTileMode, std::move(colorSpaceXform), + SkToBool(args.fDstColorSpace))); if (!inner) { return nullptr; } diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.h b/src/shaders/gradients/SkTwoPointConicalGradient.h index 408f31d8d3..4b2827117c 100644 --- a/src/shaders/gradients/SkTwoPointConicalGradient.h +++ b/src/shaders/gradients/SkTwoPointConicalGradient.h @@ -19,7 +19,7 @@ public: SkShader::GradientType asAGradient(GradientInfo* info) const override; #if SK_SUPPORT_GPU - sk_sp<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; #endif bool isOpaque() const override; diff --git a/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp index 8263f88946..caada92159 100644 --- a/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp +++ b/src/shaders/gradients/SkTwoPointConicalGradient_gpu.cpp @@ -61,8 +61,8 @@ class Edge2PtConicalEffect : public GrGradientEffect { public: class GLSLEdge2PtConicalProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args) { - auto processor = sk_sp<Edge2PtConicalEffect>(new Edge2PtConicalEffect(args)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args) { + auto processor = std::unique_ptr<Edge2PtConicalEffect>(new Edge2PtConicalEffect(args)); return processor->isValid() ? std::move(processor) : nullptr; } @@ -75,8 +75,8 @@ public: SkScalar diffRadius() const { return fDiffRadius; } SkScalar radius() const { return fRadius0; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new Edge2PtConicalEffect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new Edge2PtConicalEffect(*this)); } private: @@ -193,7 +193,7 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(Edge2PtConicalEffect); * All Two point conical gradient test create functions may occasionally create edge case shaders */ #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> Edge2PtConicalEffect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> Edge2PtConicalEffect::TestCreate(GrProcessorTestData* d) { SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; SkScalar radius1 = d->fRandom->nextUScalar1(); SkPoint center2; @@ -219,7 +219,7 @@ sk_sp<GrFragmentProcessor> Edge2PtConicalEffect::TestCreate(GrProcessorTestData* params.fColors, params.fStops, params.fColorCount, params.fTileMode); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -381,9 +381,9 @@ class FocalOutside2PtConicalEffect : public GrGradientEffect { public: class GLSLFocalOutside2PtConicalProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args, SkScalar focalX) { - auto processor = - sk_sp<FocalOutside2PtConicalEffect>(new FocalOutside2PtConicalEffect(args, focalX)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args, SkScalar focalX) { + auto processor = std::unique_ptr<FocalOutside2PtConicalEffect>( + new FocalOutside2PtConicalEffect(args, focalX)); return processor->isValid() ? std::move(processor) : nullptr; } @@ -391,8 +391,8 @@ public: return "Two-Point Conical Gradient Focal Outside"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new FocalOutside2PtConicalEffect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new FocalOutside2PtConicalEffect(*this)); } bool isFlipped() const { return fIsFlipped; } @@ -481,7 +481,8 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalOutside2PtConicalEffect); * All Two point conical gradient test create functions may occasionally create edge case shaders */ #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> FocalOutside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> FocalOutside2PtConicalEffect::TestCreate( + GrProcessorTestData* d) { SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; SkScalar radius1 = 0.f; SkPoint center2; @@ -505,7 +506,7 @@ sk_sp<GrFragmentProcessor> FocalOutside2PtConicalEffect::TestCreate(GrProcessorT params.fColors, params.fStops, params.fColorCount, params.fTileMode); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -601,9 +602,9 @@ class FocalInside2PtConicalEffect : public GrGradientEffect { public: class GLSLFocalInside2PtConicalProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args, SkScalar focalX) { - auto processor = - sk_sp<FocalInside2PtConicalEffect>(new FocalInside2PtConicalEffect(args, focalX)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args, SkScalar focalX) { + auto processor = std::unique_ptr<FocalInside2PtConicalEffect>( + new FocalInside2PtConicalEffect(args, focalX)); return processor->isValid() ? std::move(processor) : nullptr; } @@ -611,8 +612,8 @@ public: return "Two-Point Conical Gradient Focal Inside"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new FocalInside2PtConicalEffect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new FocalInside2PtConicalEffect(*this)); } SkScalar focal() const { return fFocalX; } @@ -691,7 +692,8 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalInside2PtConicalEffect); * All Two point conical gradient test create functions may occasionally create edge case shaders */ #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> FocalInside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> FocalInside2PtConicalEffect::TestCreate( + GrProcessorTestData* d) { SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; SkScalar radius1 = 0.f; SkPoint center2; @@ -716,7 +718,7 @@ sk_sp<GrFragmentProcessor> FocalInside2PtConicalEffect::TestCreate(GrProcessorTe params.fColors, params.fStops, params.fColorCount, params.fTileMode); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -846,16 +848,17 @@ class CircleInside2PtConicalEffect : public GrGradientEffect { public: class GLSLCircleInside2PtConicalProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args, const CircleConicalInfo& info) { - auto processor = - sk_sp<CircleInside2PtConicalEffect>(new CircleInside2PtConicalEffect(args, info)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args, + const CircleConicalInfo& info) { + auto processor = std::unique_ptr<CircleInside2PtConicalEffect>( + new CircleInside2PtConicalEffect(args, info)); return processor->isValid() ? std::move(processor) : nullptr; } const char* name() const override { return "Two-Point Conical Gradient Inside"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new CircleInside2PtConicalEffect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new CircleInside2PtConicalEffect(*this)); } SkScalar centerX() const { return fInfo.fCenterEnd.fX; } @@ -945,7 +948,8 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleInside2PtConicalEffect); * All Two point conical gradient test create functions may occasionally create edge case shaders */ #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> CircleInside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> CircleInside2PtConicalEffect::TestCreate( + GrProcessorTestData* d) { SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius1 != 0 SkPoint center2; @@ -969,7 +973,7 @@ sk_sp<GrFragmentProcessor> CircleInside2PtConicalEffect::TestCreate(GrProcessorT params.fColors, params.fStops, params.fColorCount, params.fTileMode); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -1068,15 +1072,15 @@ class CircleOutside2PtConicalEffect : public GrGradientEffect { public: class GLSLCircleOutside2PtConicalProcessor; - static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args, const CircleConicalInfo& info) { - return sk_sp<GrFragmentProcessor>( - new CircleOutside2PtConicalEffect(args, info)); + static std::unique_ptr<GrFragmentProcessor> Make(const CreateArgs& args, + const CircleConicalInfo& info) { + return std::unique_ptr<GrFragmentProcessor>(new CircleOutside2PtConicalEffect(args, info)); } const char* name() const override { return "Two-Point Conical Gradient Outside"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new CircleOutside2PtConicalEffect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new CircleOutside2PtConicalEffect(*this)); } SkScalar centerX() const { return fInfo.fCenterEnd.fX; } @@ -1187,7 +1191,8 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleOutside2PtConicalEffect); * All Two point conical gradient test create functions may occasionally create edge case shaders */ #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> CircleOutside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> CircleOutside2PtConicalEffect::TestCreate( + GrProcessorTestData* d) { SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius1 != 0 SkPoint center2; @@ -1212,7 +1217,7 @@ sk_sp<GrFragmentProcessor> CircleOutside2PtConicalEffect::TestCreate(GrProcessor params.fColors, params.fStops, params.fColorCount, params.fTileMode); GrTest::TestAsFPArgs asFPArgs(d); - sk_sp<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); + std::unique_ptr<GrFragmentProcessor> fp = as_SB(shader)->asFragmentProcessor(asFPArgs.args()); GrAlwaysAssert(fp); return fp; } @@ -1334,8 +1339,8 @@ void CircleOutside2PtConicalEffect::GLSLCircleOutside2PtConicalProcessor::GenKey ////////////////////////////////////////////////////////////////////////////// -sk_sp<GrFragmentProcessor> Gr2PtConicalGradientEffect::Make( - const GrGradientEffect::CreateArgs& args) { +std::unique_ptr<GrFragmentProcessor> Gr2PtConicalGradientEffect::Make( + const GrGradientEffect::CreateArgs& args) { const SkTwoPointConicalGradient& shader = *static_cast<const SkTwoPointConicalGradient*>(args.fShader); diff --git a/src/shaders/gradients/SkTwoPointConicalGradient_gpu.h b/src/shaders/gradients/SkTwoPointConicalGradient_gpu.h index 46edb1f7d1..e7eac07299 100644 --- a/src/shaders/gradients/SkTwoPointConicalGradient_gpu.h +++ b/src/shaders/gradients/SkTwoPointConicalGradient_gpu.h @@ -14,11 +14,12 @@ class GrProcessor; class SkTwoPointConicalGradient; namespace Gr2PtConicalGradientEffect { - /** - * Creates an effect that produces a two point conical gradient based on the - * shader passed in. - */ - sk_sp<GrFragmentProcessor> Make(const GrGradientEffect::CreateArgs& args); + +/** + * Creates an effect that produces a two point conical gradient based on the shader passed in. + */ +std::unique_ptr<GrFragmentProcessor> Make(const GrGradientEffect::CreateArgs& args); + }; #endif |