diff options
author | 2015-11-20 14:01:22 -0800 | |
---|---|---|
committer | 2015-11-20 14:01:22 -0800 | |
commit | 0eafe79f42e3c675f3c504aed4a41abf511df2b7 (patch) | |
tree | 564912e8c811c3eb1bff5fd18131e9015b4a9fd6 /src/gpu/gl/builders/GrGLProgramBuilder.h | |
parent | a7006d45217d128a94fa53cb4b827cca79bc7049 (diff) |
Create GrGLSLVaryingHandler class for program building
BUG=skia:
Review URL: https://codereview.chromium.org/1462123003
Diffstat (limited to 'src/gpu/gl/builders/GrGLProgramBuilder.h')
-rw-r--r-- | src/gpu/gl/builders/GrGLProgramBuilder.h | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.h b/src/gpu/gl/builders/GrGLProgramBuilder.h index 3a8dcd8500..edc467c407 100644 --- a/src/gpu/gl/builders/GrGLProgramBuilder.h +++ b/src/gpu/gl/builders/GrGLProgramBuilder.h @@ -10,6 +10,7 @@ #include "GrPipeline.h" #include "gl/GrGLProgramDataManager.h" +#include "gl/GrGLVaryingHandler.h" #include "glsl/GrGLSLPrimitiveProcessor.h" #include "glsl/GrGLSLProgramBuilder.h" #include "glsl/GrGLSLProgramDataManager.h" @@ -69,24 +70,9 @@ public: GrGLGpu* gpu() const { return fGpu; } - void addVarying( - const char* name, - GrGLSLVarying*, - GrSLPrecision precision = kDefault_GrSLPrecision) override; - - void addPassThroughAttribute(const GrPrimitiveProcessor::Attribute*, - const char* output) override; - - SeparableVaryingHandle addSeparableVarying( - const char* name, - GrGLSLVertToFrag*, - GrSLPrecision fsPrecision = kDefault_GrSLPrecision) override; - private: typedef GrGLProgramDataManager::UniformInfo UniformInfo; typedef GrGLProgramDataManager::UniformInfoArray UniformInfoArray; - typedef GrGLProgramDataManager::SeparableVaryingInfo SeparableVaryingInfo; - typedef GrGLProgramDataManager::SeparableVaryingInfoArray SeparableVaryingInfoArray; GrGLProgramBuilder(GrGLGpu*, const DrawArgs&); @@ -148,6 +134,8 @@ private: void onAppendUniformDecls(ShaderVisibility visibility, SkString* out) const override; + GrGLSLVaryingHandler* varyingHandler() override { return &fVaryingHandler; } + // reset is called by program creator between each processor's emit code. It increments the // stage offset for variable name mangling, and also ensures verfication variables in the // fragment shader are cleared. @@ -179,13 +167,11 @@ private: GrGLSLPrimitiveProcessor::TransformsIn fCoordTransforms; GrGLSLPrimitiveProcessor::TransformsOut fOutCoords; SkTArray<UniformHandle> fSamplerUniforms; - SeparableVaryingInfoArray fSeparableVaryingInfos; - friend class GrGLSLShaderBuilder; - friend class GrGLSLVertexBuilder; - friend class GrGLSLFragmentShaderBuilder; - friend class GrGLSLGeometryBuilder; + GrGLVaryingHandler fVaryingHandler; + + friend class GrGLVaryingHandler; - typedef GrGLSLProgramBuilder INHERITED; + typedef GrGLSLProgramBuilder INHERITED; }; #endif |