| Index: src/gpu/gl/builders/GrGLProgramBuilder.h
|
| diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.h b/src/gpu/gl/builders/GrGLProgramBuilder.h
|
| index 9d8e7e0ac9657ee6844d7b43a85c925be0305143..39a72a885def26e8d1c4eb4f7d47c7709240fd41 100644
|
| --- a/src/gpu/gl/builders/GrGLProgramBuilder.h
|
| +++ b/src/gpu/gl/builders/GrGLProgramBuilder.h
|
| @@ -231,8 +231,8 @@ protected:
|
| static GrGLProgramBuilder* CreateProgramBuilder(const GrGLProgramDesc&,
|
| const GrOptDrawState&,
|
| GrGpu::DrawType,
|
| - bool hasGeometryProcessor,
|
| GrGpuGL*);
|
| + virtual GrGLProgram* create();
|
|
|
| GrGLProgramBuilder(GrGpuGL*, const GrOptDrawState&, const GrGLProgramDesc&);
|
|
|
| @@ -245,9 +245,7 @@ protected:
|
| // generating stage code.
|
| void nameVariable(SkString* out, char prefix, const char* name);
|
| void setupUniformColorAndCoverageIfNeeded(GrGLSLExpr4* inputColor, GrGLSLExpr4* inputCoverage);
|
| - void emitAndInstallProcs(const GrOptDrawState& optState,
|
| - GrGLSLExpr4* inputColor,
|
| - GrGLSLExpr4* inputCoverage);
|
| + void emitAndInstallProcs(GrGLSLExpr4* inputColor, GrGLSLExpr4* inputCoverage);
|
| void emitAndInstallFragProcs(int procOffset, int numProcs, GrGLSLExpr4* inOut);
|
| template <class Proc>
|
| void emitAndInstallProc(const Proc&,
|
| @@ -318,6 +316,22 @@ protected:
|
| void enterStage() { fOutOfStage = false; }
|
| int stageIndex() const { return fStageIndex; }
|
|
|
| + struct TransformVarying {
|
| + TransformVarying(const GrGLVarying& v, const char* uniName, const char* sourceCoords)
|
| + : fV(v), fUniName(uniName), fSourceCoords(sourceCoords) {}
|
| + GrGLVarying fV;
|
| + SkString fUniName;
|
| + SkString fSourceCoords;
|
| + };
|
| +
|
| + void addCoordVarying(const char* name, GrGLVarying* v, const char* uniName,
|
| + const char* sourceCoords) {
|
| + this->addVarying(name, v);
|
| + fCoordVaryings.push_back(TransformVarying(*v, uniName, sourceCoords));
|
| + }
|
| +
|
| + const char* rtAdjustment() const { return "rtAdjustment"; }
|
| +
|
| // number of each input/output type in a single allocation block, used by many builders
|
| static const int kVarsPerBlock;
|
|
|
| @@ -335,6 +349,7 @@ protected:
|
| const GrGLProgramDesc& fDesc;
|
| GrGpuGL* fGpu;
|
| UniformInfoArray fUniforms;
|
| + SkSTArray<16, TransformVarying, true> fCoordVaryings;
|
|
|
| friend class GrGLShaderBuilder;
|
| friend class GrGLVertexBuilder;
|
|
|