Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: src/effects/SkLightingImageFilter.cpp

Issue 778453002: Remove backend factories (Closed) Base URL: https://skia.googlesource.com/skia.git@unichoice
Patch Set: more clang warnings Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/effects/SkDisplacementMapEffect.cpp ('k') | src/effects/SkLumaColorFilter.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/effects/SkLightingImageFilter.cpp
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index 740ad029699fc30c887b5452023f6ac91432a061..512c13ef7d950e44d218b5a2af762eb4f371a7a8 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -15,12 +15,11 @@
#include "SkTypes.h"
#if SK_SUPPORT_GPU
+#include "GrFragmentProcessor.h"
+#include "GrInvariantOutput.h"
#include "effects/GrSingleTextureEffect.h"
#include "gl/GrGLProcessor.h"
#include "gl/builders/GrGLProgramBuilder.h"
-#include "GrFragmentProcessor.h"
-#include "GrInvariantOutput.h"
-#include "GrTBackendProcessorFactory.h"
class GrGLDiffuseLightingEffect;
class GrGLSpecularLightingEffect;
@@ -374,11 +373,12 @@ public:
kd));
}
- static const char* Name() { return "DiffuseLighting"; }
+ virtual const char* name() const SK_OVERRIDE { return "DiffuseLighting"; }
+
+ virtual void getGLProcessorKey(const GrGLCaps&, GrProcessorKeyBuilder*) const SK_OVERRIDE;
- typedef GrGLDiffuseLightingEffect GLProcessor;
+ virtual GrGLFragmentProcessor* createGLInstance() const SK_OVERRIDE;
- virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERRIDE;
SkScalar kd() const { return fKD; }
private:
@@ -410,11 +410,13 @@ public:
ks,
shininess));
}
- static const char* Name() { return "SpecularLighting"; }
- typedef GrGLSpecularLightingEffect GLProcessor;
+ virtual const char* name() const SK_OVERRIDE { return "SpecularLighting"; }
+
+ virtual void getGLProcessorKey(const GrGLCaps&, GrProcessorKeyBuilder*) const SK_OVERRIDE;
+
+ virtual GrGLFragmentProcessor* createGLInstance() const SK_OVERRIDE;
- virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERRIDE;
SkScalar ks() const { return fKS; }
SkScalar shininess() const { return fShininess; }
@@ -1190,7 +1192,7 @@ SkLight* create_random_light(SkRandom* random) {
class GrGLLightingEffect : public GrGLFragmentProcessor {
public:
- GrGLLightingEffect(const GrBackendProcessorFactory&, const GrProcessor&);
+ GrGLLightingEffect(const GrProcessor&);
virtual ~GrGLLightingEffect();
virtual void emitCode(GrGLFPBuilder*,
@@ -1222,7 +1224,7 @@ private:
class GrGLDiffuseLightingEffect : public GrGLLightingEffect {
public:
- GrGLDiffuseLightingEffect(const GrBackendProcessorFactory&, const GrProcessor&);
+ GrGLDiffuseLightingEffect(const GrProcessor&);
virtual void emitLightFunc(GrGLFPBuilder*, SkString* funcName) SK_OVERRIDE;
virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_OVERRIDE;
@@ -1236,7 +1238,7 @@ private:
class GrGLSpecularLightingEffect : public GrGLLightingEffect {
public:
- GrGLSpecularLightingEffect(const GrBackendProcessorFactory&, const GrProcessor&);
+ GrGLSpecularLightingEffect(const GrProcessor&);
virtual void emitLightFunc(GrGLFPBuilder*, SkString* funcName) SK_OVERRIDE;
virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_OVERRIDE;
@@ -1281,10 +1283,7 @@ GrDiffuseLightingEffect::GrDiffuseLightingEffect(GrTexture* texture,
const SkMatrix& matrix,
SkScalar kd)
: INHERITED(texture, light, surfaceScale, matrix), fKD(kd) {
-}
-
-const GrBackendFragmentProcessorFactory& GrDiffuseLightingEffect::getFactory() const {
- return GrTBackendFragmentProcessorFactory<GrDiffuseLightingEffect>::getInstance();
+ this->initClassID<GrDiffuseLightingEffect>();
}
bool GrDiffuseLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const {
@@ -1293,6 +1292,15 @@ bool GrDiffuseLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const
this->kd() == s.kd();
}
+void GrDiffuseLightingEffect::getGLProcessorKey(const GrGLCaps& caps,
+ GrProcessorKeyBuilder* b) const {
+ GrGLDiffuseLightingEffect::GenKey(*this, caps, b);
+}
+
+GrGLFragmentProcessor* GrDiffuseLightingEffect::createGLInstance() const {
+ return SkNEW_ARGS(GrGLDiffuseLightingEffect, (*this));
+}
+
GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrDiffuseLightingEffect);
GrFragmentProcessor* GrDiffuseLightingEffect::TestCreate(SkRandom* random,
@@ -1313,9 +1321,7 @@ GrFragmentProcessor* GrDiffuseLightingEffect::TestCreate(SkRandom* random,
///////////////////////////////////////////////////////////////////////////////
-GrGLLightingEffect::GrGLLightingEffect(const GrBackendProcessorFactory& factory,
- const GrProcessor& fp)
- : INHERITED(factory) {
+GrGLLightingEffect::GrGLLightingEffect(const GrProcessor& fp) {
const GrLightingEffect& m = fp.cast<GrLightingEffect>();
fLight = m.light()->createGLLight();
}
@@ -1440,9 +1446,8 @@ void GrGLLightingEffect::setData(const GrGLProgramDataManager& pdman,
///////////////////////////////////////////////////////////////////////////////
-GrGLDiffuseLightingEffect::GrGLDiffuseLightingEffect(const GrBackendProcessorFactory& factory,
- const GrProcessor& proc)
- : INHERITED(factory, proc) {
+GrGLDiffuseLightingEffect::GrGLDiffuseLightingEffect(const GrProcessor& proc)
+ : INHERITED(proc) {
}
void GrGLDiffuseLightingEffect::emitLightFunc(GrGLFPBuilder* builder, SkString* funcName) {
@@ -1486,10 +1491,7 @@ GrSpecularLightingEffect::GrSpecularLightingEffect(GrTexture* texture,
: INHERITED(texture, light, surfaceScale, matrix),
fKS(ks),
fShininess(shininess) {
-}
-
-const GrBackendFragmentProcessorFactory& GrSpecularLightingEffect::getFactory() const {
- return GrTBackendFragmentProcessorFactory<GrSpecularLightingEffect>::getInstance();
+ this->initClassID<GrSpecularLightingEffect>();
}
bool GrSpecularLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const {
@@ -1499,6 +1501,15 @@ bool GrSpecularLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const
this->shininess() == s.shininess();
}
+void GrSpecularLightingEffect::getGLProcessorKey(const GrGLCaps& caps,
+ GrProcessorKeyBuilder* b) const {
+ GrGLSpecularLightingEffect::GenKey(*this, caps, b);
+}
+
+GrGLFragmentProcessor* GrSpecularLightingEffect::createGLInstance() const {
+ return SkNEW_ARGS(GrGLSpecularLightingEffect, (*this));
+}
+
GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSpecularLightingEffect);
GrFragmentProcessor* GrSpecularLightingEffect::TestCreate(SkRandom* random,
@@ -1519,9 +1530,8 @@ GrFragmentProcessor* GrSpecularLightingEffect::TestCreate(SkRandom* random,
///////////////////////////////////////////////////////////////////////////////
-GrGLSpecularLightingEffect::GrGLSpecularLightingEffect(const GrBackendProcessorFactory& factory,
- const GrProcessor& proc)
- : INHERITED(factory, proc) {
+GrGLSpecularLightingEffect::GrGLSpecularLightingEffect(const GrProcessor& proc)
+ : INHERITED(proc) {
}
void GrGLSpecularLightingEffect::emitLightFunc(GrGLFPBuilder* builder, SkString* funcName) {
« no previous file with comments | « src/effects/SkDisplacementMapEffect.cpp ('k') | src/effects/SkLumaColorFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698