/* * Copyright 2014 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrGLSLGeometryShaderBuilder_DEFINED #define GrGLSLGeometryShaderBuilder_DEFINED #include "GrGLSLShaderBuilder.h" class GrGLSLVarying; class GrGLSLGeometryBuilder : public GrGLSLShaderBuilder { public: GrGLSLGeometryBuilder(GrGLSLProgramBuilder* program); enum class InputType { kPoints, kLines, kLinesAdjacency, kTriangles, kTrianglesAdjacency }; enum class OutputType { kPoints, kLineStrip, kTriangleStrip }; void configure(InputType, OutputType, int maxVertices, int numInvocations = 1); private: void onFinalize() override; bool fIsConfigured; friend class GrGLProgramBuilder; typedef GrGLSLShaderBuilder INHERITED; }; #endif