Index: src/gpu/glsl/GrGLSLGeometryShaderBuilder.cpp |
diff --git a/src/gpu/glsl/GrGLSLGeometryShaderBuilder.cpp b/src/gpu/glsl/GrGLSLGeometryShaderBuilder.cpp |
index 275972b8a7e9454586b81e473ed2645a3f231e75..25e9f9e320cc0ecb49f75e8f653d1d6448b49c6d 100644 |
--- a/src/gpu/glsl/GrGLSLGeometryShaderBuilder.cpp |
+++ b/src/gpu/glsl/GrGLSLGeometryShaderBuilder.cpp |
@@ -7,34 +7,14 @@ |
#include "GrGLSLGeometryShaderBuilder.h" |
#include "GrGLSLProgramBuilder.h" |
+#include "GrGLSLVarying.h" |
GrGLSLGeometryBuilder::GrGLSLGeometryBuilder(GrGLSLProgramBuilder* program) |
: INHERITED(program) { |
} |
-void GrGLSLGeometryBuilder::addVarying(const char* name, |
- GrSLPrecision precision, |
- GrGLSLVarying* v) { |
- // if we have a GS take each varying in as an array |
- // and output as non-array. |
- if (v->vsVarying()) { |
- fInputs.push_back(); |
- fInputs.back().setType(v->fType); |
- fInputs.back().setTypeModifier(GrGLSLShaderVar::kVaryingIn_TypeModifier); |
- fInputs.back().setPrecision(precision); |
- fInputs.back().setUnsizedArray(); |
- *fInputs.back().accessName() = v->fVsOut; |
- v->fGsIn = v->fVsOut; |
- } |
- |
- if (v->fsVarying()) { |
- fOutputs.push_back(); |
- fOutputs.back().setType(v->fType); |
- fOutputs.back().setTypeModifier(GrGLSLShaderVar::kVaryingOut_TypeModifier); |
- fOutputs.back().setPrecision(precision); |
- fProgramBuilder->nameVariable(fOutputs.back().accessName(), 'g', name); |
- v->fGsOut = fOutputs.back().getName().c_str(); |
- } |
+void GrGLSLGeometryBuilder::onFinalize() { |
+ fProgramBuilder->varyingHandler()->getGeomDecls(&this->inputs(), &this->outputs()); |
} |