From d3b32bf8322877cf263229735aef4f04df5415c4 Mon Sep 17 00:00:00 2001 From: robertphillips Date: Fri, 5 Feb 2016 07:15:39 -0800 Subject: Last bit of GrGLSLFragmentProcessor-derived class cleanup I believe these are the last two that used the dispreferred constructor pattern. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1667953005 Review URL: https://codereview.chromium.org/1667953005 --- src/effects/SkLightingImageFilter.cpp | 43 ++++++++++++----------------------- 1 file changed, 15 insertions(+), 28 deletions(-) (limited to 'src/effects') diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp index f701b4c894..a891fe135c 100644 --- a/src/effects/SkLightingImageFilter.cpp +++ b/src/effects/SkLightingImageFilter.cpp @@ -1517,8 +1517,8 @@ SkString emitNormalFunc(BoundaryMode mode, class GrGLLightingEffect : public GrGLSLFragmentProcessor { public: - GrGLLightingEffect(const GrProcessor&); - virtual ~GrGLLightingEffect(); + GrGLLightingEffect() : fLight(nullptr) { } + virtual ~GrGLLightingEffect() { delete fLight; } void emitCode(EmitArgs&) override; @@ -1540,14 +1540,12 @@ private: UniformHandle fImageIncrementUni; UniformHandle fSurfaceScaleUni; GrGLLight* fLight; - BoundaryMode fBoundaryMode; }; /////////////////////////////////////////////////////////////////////////////// class GrGLDiffuseLightingEffect : public GrGLLightingEffect { public: - GrGLDiffuseLightingEffect(const GrProcessor&); void emitLightFunc(GrGLSLUniformHandler*, GrGLSLFragmentBuilder*, SkString* funcName) override; protected: @@ -1563,7 +1561,6 @@ private: class GrGLSpecularLightingEffect : public GrGLLightingEffect { public: - GrGLSpecularLightingEffect(const GrProcessor&); void emitLightFunc(GrGLSLUniformHandler*, GrGLSLFragmentBuilder*, SkString* funcName) override; protected: @@ -1619,8 +1616,7 @@ GrDiffuseLightingEffect::GrDiffuseLightingEffect(GrTexture* texture, bool GrDiffuseLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const { const GrDiffuseLightingEffect& s = sBase.cast(); - return INHERITED::onIsEqual(sBase) && - this->kd() == s.kd(); + return INHERITED::onIsEqual(sBase) && this->kd() == s.kd(); } void GrDiffuseLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, @@ -1629,7 +1625,7 @@ void GrDiffuseLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, } GrGLSLFragmentProcessor* GrDiffuseLightingEffect::onCreateGLSLInstance() const { - return new GrGLDiffuseLightingEffect(*this); + return new GrGLDiffuseLightingEffect; } GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrDiffuseLightingEffect); @@ -1650,17 +1646,12 @@ const GrFragmentProcessor* GrDiffuseLightingEffect::TestCreate(GrProcessorTestDa /////////////////////////////////////////////////////////////////////////////// -GrGLLightingEffect::GrGLLightingEffect(const GrProcessor& fp) { - const GrLightingEffect& m = fp.cast(); - fLight = m.light()->createGLLight(); - fBoundaryMode = m.boundaryMode(); -} - -GrGLLightingEffect::~GrGLLightingEffect() { - delete fLight; -} - void GrGLLightingEffect::emitCode(EmitArgs& args) { + const GrLightingEffect& le = args.fFp.cast(); + if (!fLight) { + fLight = le.light()->createGLLight(); + } + GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; fImageIncrementUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, kVec2f_GrSLType, kDefault_GrSLPrecision, @@ -1707,7 +1698,7 @@ void GrGLLightingEffect::emitCode(EmitArgs& args) { GrGLSLShaderVar("m", kFloat_GrSLType, 9), GrGLSLShaderVar("surfaceScale", kFloat_GrSLType), }; - SkString normalBody = emitNormalFunc(fBoundaryMode, + SkString normalBody = emitNormalFunc(le.boundaryMode(), pointToNormalName.c_str(), sobelFuncName.c_str()); SkString normalName; @@ -1757,6 +1748,10 @@ void GrGLLightingEffect::GenKey(const GrProcessor& proc, void GrGLLightingEffect::onSetData(const GrGLSLProgramDataManager& pdman, const GrProcessor& proc) { const GrLightingEffect& lighting = proc.cast(); + if (!fLight) { + fLight = lighting.light()->createGLLight(); + } + GrTexture* texture = lighting.texture(0); float ySign = texture->origin() == kTopLeft_GrSurfaceOrigin ? -1.0f : 1.0f; pdman.set2f(fImageIncrementUni, 1.0f / texture->width(), ySign / texture->height()); @@ -1770,10 +1765,6 @@ void GrGLLightingEffect::onSetData(const GrGLSLProgramDataManager& pdman, /////////////////////////////////////////////////////////////////////////////// -GrGLDiffuseLightingEffect::GrGLDiffuseLightingEffect(const GrProcessor& proc) - : INHERITED(proc) { -} - void GrGLDiffuseLightingEffect::emitLightFunc(GrGLSLUniformHandler* uniformHandler, GrGLSLFragmentBuilder* fragBuilder, SkString* funcName) { @@ -1833,7 +1824,7 @@ void GrSpecularLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, } GrGLSLFragmentProcessor* GrSpecularLightingEffect::onCreateGLSLInstance() const { - return new GrGLSpecularLightingEffect(*this); + return new GrGLSpecularLightingEffect; } GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSpecularLightingEffect); @@ -1854,10 +1845,6 @@ const GrFragmentProcessor* GrSpecularLightingEffect::TestCreate(GrProcessorTestD /////////////////////////////////////////////////////////////////////////////// -GrGLSpecularLightingEffect::GrGLSpecularLightingEffect(const GrProcessor& proc) - : INHERITED(proc) { -} - void GrGLSpecularLightingEffect::emitLightFunc(GrGLSLUniformHandler* uniformHandler, GrGLSLFragmentBuilder* fragBuilder, SkString* funcName) { -- cgit v1.2.3