Index: include/gpu/GrFragmentProcessor.h |
diff --git a/include/gpu/GrFragmentProcessor.h b/include/gpu/GrFragmentProcessor.h |
index 097925bb2a4b3d2af0905893f4073843bb8602db..e4d9151ccb82bc51a3a2b67297edac2c71bbdd68 100644 |
--- a/include/gpu/GrFragmentProcessor.h |
+++ b/include/gpu/GrFragmentProcessor.h |
@@ -9,7 +9,6 @@ |
#define GrFragmentProcessor_DEFINED |
#include "GrProcessor.h" |
-#include "GrStagedProcessor.h" |
class GrCoordTransform; |
class GrGLSLCaps; |
@@ -29,12 +28,14 @@ public: |
, fNumTexturesExclChildren(0) |
, fNumTransformsExclChildren(0) {} |
+ ~GrFragmentProcessor() override; |
+ |
GrGLFragmentProcessor* createGLInstance() const; |
void getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const { |
this->onGetGLProcessorKey(caps, b); |
for (int i = 0; i < fChildProcessors.count(); ++i) { |
- fChildProcessors[i].processor()->getGLProcessorKey(caps, b); |
+ fChildProcessors[i]->getGLProcessorKey(caps, b); |
} |
} |
@@ -60,9 +61,7 @@ public: |
int numChildProcessors() const { return fChildProcessors.count(); } |
- const GrFragmentProcessor& childProcessor(int index) const { |
- return *fChildProcessors[index].processor(); |
- } |
+ const GrFragmentProcessor& childProcessor(int index) const { return *fChildProcessors[index]; } |
/** Do any of the coordtransforms for this processor require local coords? */ |
bool usesLocalCoords() const { return fUsesLocalCoords; } |
@@ -176,7 +175,9 @@ private: |
int fNumTexturesExclChildren; |
int fNumTransformsExclChildren; |
- SkTArray<GrFragmentStage, false> fChildProcessors; |
+ // TODO: These must convert their processors to pending-execution refs when the parent is |
+ // converted (do this automatically in GrProgramElement?). |
+ SkTArray<const GrFragmentProcessor*, true> fChildProcessors; |
typedef GrProcessor INHERITED; |
}; |