130ba436f04e61d4505fb854d5fc56079636e0788joshualitt/* 230ba436f04e61d4505fb854d5fc56079636e0788joshualitt * Copyright 2014 Google Inc. 330ba436f04e61d4505fb854d5fc56079636e0788joshualitt * 430ba436f04e61d4505fb854d5fc56079636e0788joshualitt * Use of this source code is governed by a BSD-style license that can be 530ba436f04e61d4505fb854d5fc56079636e0788joshualitt * found in the LICENSE file. 630ba436f04e61d4505fb854d5fc56079636e0788joshualitt */ 730ba436f04e61d4505fb854d5fc56079636e0788joshualitt 830ba436f04e61d4505fb854d5fc56079636e0788joshualitt#ifndef GrGLGeometryShaderBuilder_DEFINED 930ba436f04e61d4505fb854d5fc56079636e0788joshualitt#define GrGLGeometryShaderBuilder_DEFINED 1030ba436f04e61d4505fb854d5fc56079636e0788joshualitt 1130ba436f04e61d4505fb854d5fc56079636e0788joshualitt#include "GrGLShaderBuilder.h" 1230ba436f04e61d4505fb854d5fc56079636e0788joshualitt 1330ba436f04e61d4505fb854d5fc56079636e0788joshualittclass GrGLProgramBuilder; 1430ba436f04e61d4505fb854d5fc56079636e0788joshualitt 1530ba436f04e61d4505fb854d5fc56079636e0788joshualittclass GrGLGeometryShaderBuilder : public GrGLFullShaderBuilder { 1630ba436f04e61d4505fb854d5fc56079636e0788joshualittpublic: 1730ba436f04e61d4505fb854d5fc56079636e0788joshualitt GrGLGeometryShaderBuilder(GrGLFullProgramBuilder* program); 1830ba436f04e61d4505fb854d5fc56079636e0788joshualittprivate: 1930ba436f04e61d4505fb854d5fc56079636e0788joshualitt /* 2030ba436f04e61d4505fb854d5fc56079636e0788joshualitt * an internal call for GrGLFullProgramBuilder to add varyings 2130ba436f04e61d4505fb854d5fc56079636e0788joshualitt */ 2230ba436f04e61d4505fb854d5fc56079636e0788joshualitt void addVarying(GrSLType type, 2330ba436f04e61d4505fb854d5fc56079636e0788joshualitt const char* name, 2430ba436f04e61d4505fb854d5fc56079636e0788joshualitt const char** gsOutName); 2530ba436f04e61d4505fb854d5fc56079636e0788joshualitt 2630ba436f04e61d4505fb854d5fc56079636e0788joshualitt bool compileAndAttachShaders(GrGLuint programId, SkTDArray<GrGLuint>* shaderIds) const; 2730ba436f04e61d4505fb854d5fc56079636e0788joshualitt 2830ba436f04e61d4505fb854d5fc56079636e0788joshualitt friend class GrGLFullProgramBuilder; 2930ba436f04e61d4505fb854d5fc56079636e0788joshualitt typedef GrGLFullShaderBuilder INHERITED; 3030ba436f04e61d4505fb854d5fc56079636e0788joshualitt}; 3130ba436f04e61d4505fb854d5fc56079636e0788joshualitt 3230ba436f04e61d4505fb854d5fc56079636e0788joshualitt#endif 33