X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=glenv.c;h=d5ec2e8735457a7bc80a6fcd7671f875cd23886b;hb=07eb5e7a7a1098297bc49f822bb78c293980c02e;hp=824b8b8bfaf697a3131added5ca149c2a1fbbaf3;hpb=206fae5fae316c85de55e636c1f7d04b8cdc9193;p=glenv diff --git a/glenv.c b/glenv.c index 824b8b8..d5ec2e8 100644 --- a/glenv.c +++ b/glenv.c @@ -45,7 +45,7 @@ export_options (options_t *options) setenv ("GLENV_QUERY", "1", 1); else unsetenv ("GLENV_QUERY"); - + if (options->vendor) setenv ("GLENV_GL_VENDOR", options->vendor, 1); else @@ -68,19 +68,19 @@ export_options (options_t *options) unsetenv ("GLENV_GL_SHADING_LANGUAGE_VERSION"); if (options->extensions) - setenv ("GLENV_EXTENSIONS", options->extensions, 1); + setenv ("GLENV_GL_EXTENSIONS", options->extensions, 1); else - unsetenv ("GLENV_EXTENSIONS"); + unsetenv ("GLENV_GL_EXTENSIONS"); if (options->extensions_whitelist) - setenv ("GLENV_EXTENSIONS_WHITELIST", options->extensions_whitelist, 1); + setenv ("GLENV_GL_EXTENSIONS_WHITELIST", options->extensions_whitelist, 1); else - unsetenv ("GLENV_EXTENSIONS_WHITELIST"); + unsetenv ("GLENV_GL_EXTENSIONS_WHITELIST"); if (options->extensions_blacklist) - setenv ("GLENV_EXTENSIONS_BLACKLIST", options->extensions_blacklist, 1); + setenv ("GLENV_GL_EXTENSIONS_BLACKLIST", options->extensions_blacklist, 1); else - unsetenv ("GLENV_EXTENSIONS_BLACKLIST"); + unsetenv ("GLENV_GL_EXTENSIONS_BLACKLIST"); } static void @@ -115,6 +115,14 @@ enum { EXTENSIONS_BLACKLIST_OPT }; +static void +invalid_combination (const char *second, const char *first) +{ + fprintf (stderr, "Error: Option %s cannot be specified after %s\n", + second, first); + exit (1); +} + int main (int argc, char *argv[]) { @@ -173,12 +181,24 @@ main (int argc, char *argv[]) options.shading_language_version = optarg; break; case EXTENSIONS_OPT: + if (options.extensions_whitelist) + invalid_combination ("--extensions", "--extensions-whitelist"); + if (options.extensions_blacklist) + invalid_combination ("--extensions", "--extensions-blacklist"); options.extensions = optarg; break; case EXTENSIONS_WHITELIST_OPT: + if (options.extensions) + invalid_combination ("--extensions-whitelist", "--extensions"); + if (options.extensions_blacklist) + invalid_combination ("--extensions-whitelist", "--extensions-blacklist"); options.extensions_whitelist = optarg; break; case EXTENSIONS_BLACKLIST_OPT: + if (options.extensions) + invalid_combination ("--extensions-blacklist", "--extensions"); + if (options.extensions_whitelist) + invalid_combination ("--extensions-blacklist", "--extensions-whitelist"); options.extensions_blacklist = optarg; break; default: @@ -196,6 +216,8 @@ main (int argc, char *argv[]) export_options (&options); + glaze_set_first_gl_call_callback ("glenv_first_gl_call"); + glaze_execute (argc - optind, &argv[optind], "libglenv.so"); /* If glaze_execute returns then something went wrong. */