diff options
Diffstat (limited to 'glsl_parser_extras.cpp')
-rw-r--r-- | glsl_parser_extras.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/glsl_parser_extras.cpp b/glsl_parser_extras.cpp index caa221f921..222f06b526 100644 --- a/glsl_parser_extras.cpp +++ b/glsl_parser_extras.cpp @@ -684,8 +684,27 @@ main(int argc, char **argv) struct simple_node *ptr; exec_list instructions; - (void) argc; - shader = load_text_file(argv[1], & shader_len); + if (argc < 3) { + printf("Usage: %s [v|g|f] <shader_file>\n", argv[0]); + return EXIT_FAILURE; + } + + switch (argv[1][0]) { + case 'v': + state.target = vertex_shader; + break; + case 'g': + state.target = geometry_shader; + break; + case 'f': + state.target = fragment_shader; + break; + default: + printf("Usage: %s [v|g|f] <shader_file>\n", argv[0]); + return EXIT_FAILURE; + } + + shader = load_text_file(argv[2], & shader_len); state.scanner = NULL; make_empty_list(& state.translation_unit); |