1 /* 2 * Copyright 2014 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "GrGLGeometryShaderBuilder.h" 9 #include "GrGLProgramBuilder.h" 10 #include "../GrGLGpu.h" 11 GrGLGeometryBuilder(GrGLProgramBuilder * program)12GrGLGeometryBuilder::GrGLGeometryBuilder(GrGLProgramBuilder* program) 13 : INHERITED(program) { 14 15 } 16 addVarying(const char * name,GrGLVarying * v)17void GrGLGeometryBuilder::addVarying(const char* name, GrGLVarying* v) { 18 // if we have a GS take each varying in as an array 19 // and output as non-array. 20 if (v->vsVarying()) { 21 fInputs.push_back(); 22 fInputs.back().setType(v->fType); 23 fInputs.back().setTypeModifier(GrGLShaderVar::kVaryingIn_TypeModifier); 24 fInputs.back().setUnsizedArray(); 25 *fInputs.back().accessName() = v->fVsOut; 26 v->fGsIn = v->fVsOut; 27 } 28 29 if (v->fsVarying()) { 30 fOutputs.push_back(); 31 fOutputs.back().setType(v->fType); 32 fOutputs.back().setTypeModifier(GrGLShaderVar::kVaryingOut_TypeModifier); 33 fProgramBuilder->nameVariable(fOutputs.back().accessName(), 'g', name); 34 v->fGsOut = fOutputs.back().getName().c_str(); 35 } 36 } 37 compileAndAttachShaders(GrGLuint programId,SkTDArray<GrGLuint> * shaderIds)38bool GrGLGeometryBuilder::compileAndAttachShaders(GrGLuint programId, 39 SkTDArray<GrGLuint>* shaderIds) { 40 SkFAIL("Geometry shaders are not currently supported"); 41 return false; 42 } 43