aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/builders/GrGLProgramBuilder.h
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2015-11-20 14:01:22 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-11-20 14:01:22 -0800
commit0eafe79f42e3c675f3c504aed4a41abf511df2b7 (patch)
tree564912e8c811c3eb1bff5fd18131e9015b4a9fd6 /src/gpu/gl/builders/GrGLProgramBuilder.h
parenta7006d45217d128a94fa53cb4b827cca79bc7049 (diff)
Create GrGLSLVaryingHandler class for program building
Diffstat (limited to 'src/gpu/gl/builders/GrGLProgramBuilder.h')
-rw-r--r--src/gpu/gl/builders/GrGLProgramBuilder.h28
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