Mesa (arb_geometry_shader4): gs: support for geometry shaders in the glslcompiler
Zack Rusin
zack at kemper.freedesktop.org
Sat Feb 14 05:46:41 UTC 2009
Module: Mesa
Branch: arb_geometry_shader4
Commit: b2aa5c6bb635a8f19f0609fb8e4aa51483d8d8d3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b2aa5c6bb635a8f19f0609fb8e4aa51483d8d8d3
Author: Zack Rusin <zackr at vmware.com>
Date: Sat Feb 14 00:44:13 2009 -0500
gs: support for geometry shaders in the glslcompiler
---
src/mesa/drivers/glslcompiler/glslcompiler.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/src/mesa/drivers/glslcompiler/glslcompiler.c b/src/mesa/drivers/glslcompiler/glslcompiler.c
index 918ec41..9654bb9 100644
--- a/src/mesa/drivers/glslcompiler/glslcompiler.c
+++ b/src/mesa/drivers/glslcompiler/glslcompiler.c
@@ -71,6 +71,7 @@ struct options {
gl_prog_print_mode Mode;
const char *VertFile;
const char *FragFile;
+ const char *GeoFile;
const char *OutputFile;
};
@@ -237,7 +238,8 @@ CompileShader(const char *filename, GLenum type)
GLuint shader;
assert(type == GL_FRAGMENT_SHADER ||
- type == GL_VERTEX_SHADER);
+ type == GL_VERTEX_SHADER ||
+ type == GL_GEOMETRY_SHADER_ARB);
shader = _mesa_CreateShader(type);
ReadShader(shader, filename);
@@ -253,6 +255,7 @@ Usage(void)
printf("Usage:\n");
printf(" --vs FILE vertex shader input filename\n");
printf(" --fs FILE fragment shader input filename\n");
+ printf(" --gs FILE geometry shader input filename\n");
printf(" --arb emit ARB-style instructions (the default)\n");
printf(" --nv emit NV-style instructions\n");
printf(" --debug emit debug-style instructions\n");
@@ -271,6 +274,7 @@ ParseOptions(int argc, char *argv[])
Options.Mode = PROG_PRINT_ARB;
Options.VertFile = NULL;
Options.FragFile = NULL;
+ Options.GeoFile = NULL;
Options.OutputFile = NULL;
if (argc == 1) {
@@ -287,6 +291,10 @@ ParseOptions(int argc, char *argv[])
Options.FragFile = argv[i + 1];
i++;
}
+ else if (strcmp(argv[i], "--gs") == 0) {
+ Options.GeoFile = argv[i + 1];
+ i++;
+ }
else if (strcmp(argv[i], "--arb") == 0) {
Options.Mode = PROG_PRINT_ARB;
}
@@ -336,6 +344,9 @@ main(int argc, char *argv[])
else if (Options.FragFile) {
shader = CompileShader(Options.FragFile, GL_FRAGMENT_SHADER);
}
+ else if (Options.GeoFile) {
+ shader = CompileShader(Options.GeoFile, GL_GEOMETRY_SHADER_ARB);
+ }
if (shader) {
if (Options.OutputFile) {
More information about the mesa-commit
mailing list