| 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;
|
| };
|
|
|