diff options
Diffstat (limited to 'src/effects/gradients')
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 10 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 4 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 10 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 10 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 10 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 143 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.cpp | 28 |
7 files changed, 105 insertions, 110 deletions
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index 6413f4fe5d..23c473fa9c 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -1001,9 +1001,9 @@ static inline void set_mul_color_uni(const GrGLProgramDataManager& pdman, } void GrGLGradientEffect::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { + const GrDrawEffect& drawEffect) { - const GrGradientEffect& e = effect.cast<GrGradientEffect>(); + const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); if (SkGradientShaderBase::kTwo_GpuColorType == e.getColorType()){ @@ -1038,8 +1038,8 @@ void GrGLGradientEffect::setData(const GrGLProgramDataManager& pdman, } -uint32_t GrGLGradientEffect::GenBaseGradientKey(const GrEffect& effect) { - const GrGradientEffect& e = effect.cast<GrGradientEffect>(); +uint32_t GrGLGradientEffect::GenBaseGradientKey(const GrDrawEffect& drawEffect) { + const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); uint32_t key = 0; @@ -1186,7 +1186,7 @@ GrGradientEffect::~GrGradientEffect() { } bool GrGradientEffect::onIsEqual(const GrEffect& effect) const { - const GrGradientEffect& s = effect.cast<GrGradientEffect>(); + const GrGradientEffect& s = CastEffect<GrGradientEffect>(effect); if (this->fColorType == s.getColorType()){ diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index cc5b2e9a24..3ae59f5e97 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -403,7 +403,7 @@ public: GrGLGradientEffect(const GrBackendEffectFactory& factory); virtual ~GrGLGradientEffect(); - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; protected: /** @@ -411,7 +411,7 @@ protected: * by the base class. The subclasses must stick it in their key and then pass it to the below * emit* functions from their emitCode function. */ - static uint32_t GenBaseGradientKey(const GrEffect&); + static uint32_t GenBaseGradientKey(const GrDrawEffect&); // Emits the uniform used as the y-coord to texture samples in derived classes. Subclasses // should call this method from their emitCode(). diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index d978e5ada0..b26d60626b 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -468,21 +468,21 @@ void SkLinearGradient::LinearGradientContext::shadeSpan16(int x, int y, class GrGLLinearGradient : public GrGLGradientEffect { public: - GrGLLinearGradient(const GrBackendEffectFactory& factory, const GrEffect&) + GrGLLinearGradient(const GrBackendEffectFactory& factory, const GrDrawEffect&) : INHERITED (factory) { } virtual ~GrGLLinearGradient() { } virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - static void GenKey(const GrEffect& effect, const GrGLCaps&, GrEffectKeyBuilder* b) { - b->add32(GenBaseGradientKey(effect)); + static void GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { + b->add32(GenBaseGradientKey(drawEffect)); } private: @@ -551,7 +551,7 @@ GrEffect* GrLinearGradient::TestCreate(SkRandom* random, ///////////////////////////////////////////////////////////////////// void GrGLLinearGradient::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index 90d945839d..895dbb99ca 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -477,19 +477,19 @@ class GrGLRadialGradient : public GrGLGradientEffect { public: GrGLRadialGradient(const GrBackendEffectFactory& factory, - const GrEffect&) : INHERITED (factory) { } + const GrDrawEffect&) : INHERITED (factory) { } virtual ~GrGLRadialGradient() { } virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - static void GenKey(const GrEffect& effect, const GrGLCaps&, GrEffectKeyBuilder* b) { - b->add32(GenBaseGradientKey(effect)); + static void GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { + b->add32(GenBaseGradientKey(drawEffect)); } private: @@ -560,7 +560,7 @@ GrEffect* GrRadialGradient::TestCreate(SkRandom* random, ///////////////////////////////////////////////////////////////////// void GrGLRadialGradient::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index 6aaa92fc31..c56cf1494c 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -192,19 +192,19 @@ class GrGLSweepGradient : public GrGLGradientEffect { public: GrGLSweepGradient(const GrBackendEffectFactory& factory, - const GrEffect&) : INHERITED (factory) { } + const GrDrawEffect&) : INHERITED (factory) { } virtual ~GrGLSweepGradient() { } virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - static void GenKey(const GrEffect& effect, const GrGLCaps&, GrEffectKeyBuilder* b) { - b->add32(GenBaseGradientKey(effect)); + static void GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { + b->add32(GenBaseGradientKey(drawEffect)); } private: @@ -266,7 +266,7 @@ GrEffect* GrSweepGradient::TestCreate(SkRandom* random, ///////////////////////////////////////////////////////////////////// void GrGLSweepGradient::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp index 4c474b28dc..a3ba479cb7 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp @@ -81,7 +81,7 @@ public: private: virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const Edge2PtConicalEffect& s = sBase.cast<Edge2PtConicalEffect>(); + const Edge2PtConicalEffect& s = CastEffect<Edge2PtConicalEffect>(sBase); return (INHERITED::onIsEqual(sBase) && this->fCenterX1 == s.fCenterX1 && this->fRadius0 == s.fRadius0 && @@ -134,19 +134,19 @@ private: class GLEdge2PtConicalEffect : public GrGLGradientEffect { public: - GLEdge2PtConicalEffect(const GrBackendEffectFactory& factory, const GrEffect&); + GLEdge2PtConicalEffect(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GLEdge2PtConicalEffect() { } virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; - static void GenKey(const GrEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); + static void GenKey(const GrDrawEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); protected: UniformHandle fParamUni; @@ -210,7 +210,7 @@ GrEffect* Edge2PtConicalEffect::TestCreate(SkRandom* random, } GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrBackendEffectFactory& factory, - const GrEffect& effect) + const GrDrawEffect& drawEffect) : INHERITED(factory) , fVSVaryingName(NULL) , fFSVaryingName(NULL) @@ -218,7 +218,7 @@ GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrBackendEffectFactory& fac , fCachedDiffRadius(-SK_ScalarMax) {} void GLEdge2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, @@ -246,8 +246,7 @@ void GLEdge2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, GrGLFragmentShaderBuilder* fsBuilder = builder->getFragmentShaderBuilder(); if (kVec3f_GrSLType == coords[0].type()) { fsBuilder->codeAppendf("\tvec3 interpolants = vec3(%s.xy / %s.z, %s.x / %s.z);\n", - coords[0].c_str(), coords[0].c_str(), coords[1].c_str(), - coords[1].c_str()); + coords[0].c_str(), coords[0].c_str(), coords[1].c_str(), coords[1].c_str()); coords2D = "interpolants.xy"; bVar = "interpolants.z"; } else { @@ -276,9 +275,9 @@ void GLEdge2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, } void GLEdge2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { - INHERITED::setData(pdman, effect); - const Edge2PtConicalEffect& data = effect.cast<Edge2PtConicalEffect>(); + const GrDrawEffect& drawEffect) { + INHERITED::setData(pdman, drawEffect); + const Edge2PtConicalEffect& data = drawEffect.castEffect<Edge2PtConicalEffect>(); SkScalar radius0 = data.radius(); SkScalar diffRadius = data.diffRadius(); @@ -297,9 +296,9 @@ void GLEdge2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, } } -void GLEdge2PtConicalEffect::GenKey(const GrEffect& effect, +void GLEdge2PtConicalEffect::GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { - b->add32(GenBaseGradientKey(effect)); + b->add32(GenBaseGradientKey(drawEffect)); } ////////////////////////////////////////////////////////////////////////////// @@ -389,7 +388,7 @@ public: private: virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const FocalOutside2PtConicalEffect& s = sBase.cast<FocalOutside2PtConicalEffect>(); + const FocalOutside2PtConicalEffect& s = CastEffect<FocalOutside2PtConicalEffect>(sBase); return (INHERITED::onIsEqual(sBase) && this->fFocalX == s.fFocalX && this->fIsFlipped == s.fIsFlipped); @@ -412,19 +411,19 @@ private: class GLFocalOutside2PtConicalEffect : public GrGLGradientEffect { public: - GLFocalOutside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrEffect&); + GLFocalOutside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GLFocalOutside2PtConicalEffect() { } virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; - static void GenKey(const GrEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); + static void GenKey(const GrDrawEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); protected: UniformHandle fParamUni; @@ -486,17 +485,17 @@ GrEffect* FocalOutside2PtConicalEffect::TestCreate(SkRandom* random, } GLFocalOutside2PtConicalEffect::GLFocalOutside2PtConicalEffect(const GrBackendEffectFactory& factory, - const GrEffect& effect) + const GrDrawEffect& drawEffect) : INHERITED(factory) , fVSVaryingName(NULL) , fFSVaryingName(NULL) , fCachedFocal(SK_ScalarMax) { - const FocalOutside2PtConicalEffect& data = effect.cast<FocalOutside2PtConicalEffect>(); + const FocalOutside2PtConicalEffect& data = drawEffect.castEffect<FocalOutside2PtConicalEffect>(); fIsFlipped = data.isFlipped(); } void GLFocalOutside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, @@ -545,9 +544,9 @@ void GLFocalOutside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, } void GLFocalOutside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { - INHERITED::setData(pdman, effect); - const FocalOutside2PtConicalEffect& data = effect.cast<FocalOutside2PtConicalEffect>(); + const GrDrawEffect& drawEffect) { + INHERITED::setData(pdman, drawEffect); + const FocalOutside2PtConicalEffect& data = drawEffect.castEffect<FocalOutside2PtConicalEffect>(); SkASSERT(data.isFlipped() == fIsFlipped); SkScalar focal = data.focal(); @@ -564,11 +563,11 @@ void GLFocalOutside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman } } -void GLFocalOutside2PtConicalEffect::GenKey(const GrEffect& effect, +void GLFocalOutside2PtConicalEffect::GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { uint32_t* key = b->add32n(2); - key[0] = GenBaseGradientKey(effect); - key[1] = effect.cast<FocalOutside2PtConicalEffect>().isFlipped(); + key[0] = GenBaseGradientKey(drawEffect); + key[1] = drawEffect.castEffect<FocalOutside2PtConicalEffect>().isFlipped(); } ////////////////////////////////////////////////////////////////////////////// @@ -597,7 +596,7 @@ public: private: virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const FocalInside2PtConicalEffect& s = sBase.cast<FocalInside2PtConicalEffect>(); + const FocalInside2PtConicalEffect& s = CastEffect<FocalInside2PtConicalEffect>(sBase); return (INHERITED::onIsEqual(sBase) && this->fFocalX == s.fFocalX); } @@ -618,19 +617,19 @@ private: class GLFocalInside2PtConicalEffect : public GrGLGradientEffect { public: - GLFocalInside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrEffect&); + GLFocalInside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GLFocalInside2PtConicalEffect() {} virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; - static void GenKey(const GrEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); + static void GenKey(const GrDrawEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); protected: UniformHandle fFocalUni; @@ -692,14 +691,14 @@ GrEffect* FocalInside2PtConicalEffect::TestCreate(SkRandom* random, } GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrBackendEffectFactory& factory, - const GrEffect& effect) + const GrDrawEffect& drawEffect) : INHERITED(factory) , fVSVaryingName(NULL) , fFSVaryingName(NULL) , fCachedFocal(SK_ScalarMax) {} void GLFocalInside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, @@ -728,9 +727,9 @@ void GLFocalInside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, } void GLFocalInside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { - INHERITED::setData(pdman, effect); - const FocalInside2PtConicalEffect& data = effect.cast<FocalInside2PtConicalEffect>(); + const GrDrawEffect& drawEffect) { + INHERITED::setData(pdman, drawEffect); + const FocalInside2PtConicalEffect& data = drawEffect.castEffect<FocalInside2PtConicalEffect>(); SkScalar focal = data.focal(); if (fCachedFocal != focal) { @@ -739,9 +738,9 @@ void GLFocalInside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, } } -void GLFocalInside2PtConicalEffect::GenKey(const GrEffect& effect, +void GLFocalInside2PtConicalEffect::GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { - b->add32(GenBaseGradientKey(effect)); + b->add32(GenBaseGradientKey(drawEffect)); } ////////////////////////////////////////////////////////////////////////////// @@ -836,7 +835,7 @@ public: private: virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const CircleInside2PtConicalEffect& s = sBase.cast<CircleInside2PtConicalEffect>(); + const CircleInside2PtConicalEffect& s = CastEffect<CircleInside2PtConicalEffect>(sBase); return (INHERITED::onIsEqual(sBase) && this->fInfo.fCenterEnd == s.fInfo.fCenterEnd && this->fInfo.fA == s.fInfo.fA && @@ -860,19 +859,19 @@ private: class GLCircleInside2PtConicalEffect : public GrGLGradientEffect { public: - GLCircleInside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrEffect&); + GLCircleInside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GLCircleInside2PtConicalEffect() {} virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; - static void GenKey(const GrEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); + static void GenKey(const GrDrawEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); protected: UniformHandle fCenterUni; @@ -938,7 +937,7 @@ GrEffect* CircleInside2PtConicalEffect::TestCreate(SkRandom* random, } GLCircleInside2PtConicalEffect::GLCircleInside2PtConicalEffect(const GrBackendEffectFactory& factory, - const GrEffect& effect) + const GrDrawEffect& drawEffect) : INHERITED(factory) , fVSVaryingName(NULL) , fFSVaryingName(NULL) @@ -949,7 +948,7 @@ GLCircleInside2PtConicalEffect::GLCircleInside2PtConicalEffect(const GrBackendEf , fCachedC(SK_ScalarMax) {} void GLCircleInside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, @@ -983,8 +982,7 @@ void GLCircleInside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, // d = dot(e, p) + B // t = d +/- sqrt(d^2 - A * dot(p, p) + C) fsBuilder->codeAppendf("\tfloat pDotp = dot(%s, %s);\n", coords2D, coords2D); - fsBuilder->codeAppendf("\tfloat d = dot(%s, %s) + %s.y;\n", coords2D, center.c_str(), - params.c_str()); + fsBuilder->codeAppendf("\tfloat d = dot(%s, %s) + %s.y;\n", coords2D, center.c_str(), params.c_str()); fsBuilder->codeAppendf("\tfloat %s = d + sqrt(d * d - %s.x * pDotp + %s.z);\n", tName.c_str(), params.c_str(), params.c_str()); @@ -992,9 +990,9 @@ void GLCircleInside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, } void GLCircleInside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { - INHERITED::setData(pdman, effect); - const CircleInside2PtConicalEffect& data = effect.cast<CircleInside2PtConicalEffect>(); + const GrDrawEffect& drawEffect) { + INHERITED::setData(pdman, drawEffect); + const CircleInside2PtConicalEffect& data = drawEffect.castEffect<CircleInside2PtConicalEffect>(); SkScalar centerX = data.centerX(); SkScalar centerY = data.centerY(); SkScalar A = data.A(); @@ -1015,9 +1013,9 @@ void GLCircleInside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman } } -void GLCircleInside2PtConicalEffect::GenKey(const GrEffect& effect, +void GLCircleInside2PtConicalEffect::GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { - b->add32(GenBaseGradientKey(effect)); + b->add32(GenBaseGradientKey(drawEffect)); } ////////////////////////////////////////////////////////////////////////////// @@ -1052,7 +1050,7 @@ public: private: virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const CircleOutside2PtConicalEffect& s = sBase.cast<CircleOutside2PtConicalEffect>(); + const CircleOutside2PtConicalEffect& s = CastEffect<CircleOutside2PtConicalEffect>(sBase); return (INHERITED::onIsEqual(sBase) && this->fInfo.fCenterEnd == s.fInfo.fCenterEnd && this->fInfo.fA == s.fInfo.fA && @@ -1069,8 +1067,7 @@ private: const CircleConicalInfo& info) : INHERITED(ctx, shader, matrix, tm), fInfo(info) { if (shader.getStartRadius() != shader.getEndRadius()) { - fTLimit = SkScalarDiv(shader.getStartRadius(), - (shader.getStartRadius() - shader.getEndRadius())); + fTLimit = SkScalarDiv(shader.getStartRadius(), (shader.getStartRadius() - shader.getEndRadius())); } else { fTLimit = SK_ScalarMin; } @@ -1089,19 +1086,19 @@ private: class GLCircleOutside2PtConicalEffect : public GrGLGradientEffect { public: - GLCircleOutside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrEffect&); + GLCircleOutside2PtConicalEffect(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GLCircleOutside2PtConicalEffect() {} virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; - static void GenKey(const GrEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); + static void GenKey(const GrDrawEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); protected: UniformHandle fCenterUni; @@ -1171,7 +1168,7 @@ GrEffect* CircleOutside2PtConicalEffect::TestCreate(SkRandom* random, } GLCircleOutside2PtConicalEffect::GLCircleOutside2PtConicalEffect(const GrBackendEffectFactory& factory, - const GrEffect& effect) + const GrDrawEffect& drawEffect) : INHERITED(factory) , fVSVaryingName(NULL) , fFSVaryingName(NULL) @@ -1181,12 +1178,12 @@ GLCircleOutside2PtConicalEffect::GLCircleOutside2PtConicalEffect(const GrBackend , fCachedB(SK_ScalarMax) , fCachedC(SK_ScalarMax) , fCachedTLimit(SK_ScalarMax) { - const CircleOutside2PtConicalEffect& data = effect.cast<CircleOutside2PtConicalEffect>(); + const CircleOutside2PtConicalEffect& data = drawEffect.castEffect<CircleOutside2PtConicalEffect>(); fIsFlipped = data.isFlipped(); } void GLCircleOutside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey& key, const char* outputColor, const char* inputColor, @@ -1225,10 +1222,8 @@ void GLCircleOutside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, // t = d +/- sqrt(d^2 - A * dot(p, p) + C) fsBuilder->codeAppendf("\tfloat pDotp = dot(%s, %s);\n", coords2D, coords2D); - fsBuilder->codeAppendf("\tfloat d = dot(%s, %s) + %s.y;\n", coords2D, center.c_str(), - params.c_str()); - fsBuilder->codeAppendf("\tfloat deter = d * d - %s.x * pDotp + %s.z;\n", params.c_str(), - params.c_str()); + fsBuilder->codeAppendf("\tfloat d = dot(%s, %s) + %s.y;\n", coords2D, center.c_str(), params.c_str()); + fsBuilder->codeAppendf("\tfloat deter = d * d - %s.x * pDotp + %s.z;\n", params.c_str(), params.c_str()); // Must check to see if we flipped the circle order (to make sure start radius < end radius) // If so we must also flip sign on sqrt @@ -1245,9 +1240,9 @@ void GLCircleOutside2PtConicalEffect::emitCode(GrGLProgramBuilder* builder, } void GLCircleOutside2PtConicalEffect::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { - INHERITED::setData(pdman, effect); - const CircleOutside2PtConicalEffect& data = effect.cast<CircleOutside2PtConicalEffect>(); + const GrDrawEffect& drawEffect) { + INHERITED::setData(pdman, drawEffect); + const CircleOutside2PtConicalEffect& data = drawEffect.castEffect<CircleOutside2PtConicalEffect>(); SkASSERT(data.isFlipped() == fIsFlipped); SkScalar centerX = data.centerX(); SkScalar centerY = data.centerY(); @@ -1272,11 +1267,11 @@ void GLCircleOutside2PtConicalEffect::setData(const GrGLProgramDataManager& pdma } } -void GLCircleOutside2PtConicalEffect::GenKey(const GrEffect& effect, +void GLCircleOutside2PtConicalEffect::GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { uint32_t* key = b->add32n(2); - key[0] = GenBaseGradientKey(effect); - key[1] = effect.cast<CircleOutside2PtConicalEffect>().isFlipped(); + key[0] = GenBaseGradientKey(drawEffect); + key[1] = drawEffect.castEffect<CircleOutside2PtConicalEffect>().isFlipped(); } ////////////////////////////////////////////////////////////////////////////// diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp index 70a2cf8256..75b1e79d7a 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.cpp +++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp @@ -408,19 +408,19 @@ class GrGLRadial2Gradient : public GrGLGradientEffect { public: - GrGLRadial2Gradient(const GrBackendEffectFactory& factory, const GrEffect&); + GrGLRadial2Gradient(const GrBackendEffectFactory& factory, const GrDrawEffect&); virtual ~GrGLRadial2Gradient() { } virtual void emitCode(GrGLProgramBuilder*, - const GrEffect&, + const GrDrawEffect&, const GrEffectKey&, const char* outputColor, const char* inputColor, const TransformedCoordsArray&, const TextureSamplerArray&) SK_OVERRIDE; - virtual void setData(const GrGLProgramDataManager&, const GrEffect&) SK_OVERRIDE; + virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_OVERRIDE; - static void GenKey(const GrEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); + static void GenKey(const GrDrawEffect&, const GrGLCaps& caps, GrEffectKeyBuilder* b); protected: @@ -474,7 +474,7 @@ public: private: virtual bool onIsEqual(const GrEffect& sBase) const SK_OVERRIDE { - const GrRadial2Gradient& s = sBase.cast<GrRadial2Gradient>(); + const GrRadial2Gradient& s = CastEffect<GrRadial2Gradient>(sBase); return (INHERITED::onIsEqual(sBase) && this->fCenterX1 == s.fCenterX1 && this->fRadius0 == s.fRadius0 && @@ -555,7 +555,7 @@ GrEffect* GrRadial2Gradient::TestCreate(SkRandom* random, ///////////////////////////////////////////////////////////////////// GrGLRadial2Gradient::GrGLRadial2Gradient(const GrBackendEffectFactory& factory, - const GrEffect& effect) + const GrDrawEffect& drawEffect) : INHERITED(factory) , fVSVaryingName(NULL) , fFSVaryingName(NULL) @@ -563,12 +563,12 @@ GrGLRadial2Gradient::GrGLRadial2Gradient(const GrBackendEffectFactory& factory, , fCachedRadius(-SK_ScalarMax) , fCachedPosRoot(0) { - const GrRadial2Gradient& data = effect.cast<GrRadial2Gradient>(); + const GrRadial2Gradient& data = drawEffect.castEffect<GrRadial2Gradient>(); fIsDegenerate = data.isDegenerate(); } void GrGLRadial2Gradient::emitCode(GrGLProgramBuilder* builder, - const GrEffect& effect, + const GrDrawEffect& drawEffect, const GrEffectKey& key, const char* outputColor, const char* inputColor, @@ -642,9 +642,9 @@ void GrGLRadial2Gradient::emitCode(GrGLProgramBuilder* builder, } void GrGLRadial2Gradient::setData(const GrGLProgramDataManager& pdman, - const GrEffect& effect) { - INHERITED::setData(pdman, effect); - const GrRadial2Gradient& data = effect.cast<GrRadial2Gradient>(); + const GrDrawEffect& drawEffect) { + INHERITED::setData(pdman, drawEffect); + const GrRadial2Gradient& data = drawEffect.castEffect<GrRadial2Gradient>(); SkASSERT(data.isDegenerate() == fIsDegenerate); SkScalar centerX1 = data.center(); SkScalar radius0 = data.radius(); @@ -675,11 +675,11 @@ void GrGLRadial2Gradient::setData(const GrGLProgramDataManager& pdman, } } -void GrGLRadial2Gradient::GenKey(const GrEffect& effect, +void GrGLRadial2Gradient::GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffectKeyBuilder* b) { uint32_t* key = b->add32n(2); - key[0] = GenBaseGradientKey(effect); - key[1] = effect.cast<GrRadial2Gradient>().isDegenerate(); + key[0] = GenBaseGradientKey(drawEffect); + key[1] = drawEffect.castEffect<GrRadial2Gradient>().isDegenerate(); } ///////////////////////////////////////////////////////////////////// |