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

Unified Diff: include/gpu/GrProcessorStage.h

Issue 611653002: Cleanup of shader building system (Closed) Base URL: https://skia.googlesource.com/skia.git@solo_gp
Patch Set: more cleanup Created 6 years, 3 months 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
Index: include/gpu/GrProcessorStage.h
diff --git a/include/gpu/GrProcessorStage.h b/include/gpu/GrProcessorStage.h
index 1485ca7cd197805a301f3bb7c402e9f3dc84c4b6..5cc06e78db3c298568535bb1aaf4ee523bf564ba 100644
--- a/include/gpu/GrProcessorStage.h
+++ b/include/gpu/GrProcessorStage.h
@@ -31,6 +31,8 @@ public:
fCoordChangeMatrixSet = false;
}
+ virtual ~GrProcessorStage() {}
bsalomon 2014/09/29 15:43:19 must this be virtual? Could the model used for GrG
joshua.litt 2014/09/29 21:05:22 Yea I can totally use templates. Mind if I do thi
+
GrProcessorStage(const GrProcessorStage& other) {
fCoordChangeMatrixSet = other.fCoordChangeMatrixSet;
if (other.fCoordChangeMatrixSet) {
@@ -147,11 +149,11 @@ public:
}
}
- const GrProcessor* getProcessor() const { return fProc.get(); }
+ virtual const GrProcessor* getProcessor() const = 0;
void convertToPendingExec() { fProc.convertToPendingExec(); }
-private:
+protected:
bool fCoordChangeMatrixSet;
SkMatrix fCoordChangeMatrix;
GrProgramElementRef<const GrProcessor> fProc;
@@ -161,18 +163,24 @@ class GrFragmentStage : public GrProcessorStage {
public:
GrFragmentStage(const GrFragmentProcessor* fp) : GrProcessorStage(fp) {}
- const GrFragmentProcessor* getFragmentProcessor() const {
- return static_cast<const GrFragmentProcessor*>(this->getProcessor());
+ virtual const GrFragmentProcessor* getProcessor() const {
+ return static_cast<const GrFragmentProcessor*>(fProc.get());
}
+
+ typedef GrFragmentProcessor Processor;
+ typedef GrGLFragmentProcessor GLProcessor;
};
class GrGeometryStage : public GrProcessorStage {
public:
GrGeometryStage(const GrGeometryProcessor* gp) : GrProcessorStage(gp) {}
- const GrGeometryProcessor* getGeometryProcessor() const {
- return static_cast<const GrGeometryProcessor*>(this->getProcessor());
+ virtual const GrGeometryProcessor* getProcessor() const {
+ return static_cast<const GrGeometryProcessor*>(fProc.get());
}
+
+ typedef GrGeometryProcessor Processor;
+ typedef GrGLGeometryProcessor GLProcessor;
};
#endif

Powered by Google App Engine
This is Rietveld 408576698