aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/builders/GrGLGeometryShaderBuilder.h
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2014-08-21 20:18:45 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-21 20:18:45 -0700
commit30ba436f04e61d4505fb854d5fc56079636e0788 (patch)
tree0a8756ce4f6df0364fb238ee0057b78863afa8a5 /src/gpu/gl/builders/GrGLGeometryShaderBuilder.h
parentc8c4b957288fd3114d60e3faa9bc95c4c15ca1f2 (diff)
Initial refactor of shaderbuilder to prepare for geometry shaders
gitignore for eclipse BUG=skia: R=bsalomon@google.com, bsalomon@chromium.org Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/491673002
Diffstat (limited to 'src/gpu/gl/builders/GrGLGeometryShaderBuilder.h')
-rw-r--r--src/gpu/gl/builders/GrGLGeometryShaderBuilder.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gpu/gl/builders/GrGLGeometryShaderBuilder.h b/src/gpu/gl/builders/GrGLGeometryShaderBuilder.h
new file mode 100644
index 0000000000..833d31774f
--- /dev/null
+++ b/src/gpu/gl/builders/GrGLGeometryShaderBuilder.h
@@ -0,0 +1,32 @@
+/*
+ * 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 GrGLGeometryShaderBuilder_DEFINED
+#define GrGLGeometryShaderBuilder_DEFINED
+
+#include "GrGLShaderBuilder.h"
+
+class GrGLProgramBuilder;
+
+class GrGLGeometryShaderBuilder : public GrGLFullShaderBuilder {
+public:
+ GrGLGeometryShaderBuilder(GrGLFullProgramBuilder* program);
+private:
+ /*
+ * an internal call for GrGLFullProgramBuilder to add varyings
+ */
+ void addVarying(GrSLType type,
+ const char* name,
+ const char** gsOutName);
+
+ bool compileAndAttachShaders(GrGLuint programId, SkTDArray<GrGLuint>* shaderIds) const;
+
+ friend class GrGLFullProgramBuilder;
+ typedef GrGLFullShaderBuilder INHERITED;
+};
+
+#endif