glcpp: Accept pointer to GL context rather than just the API version
As the preprocessor becomes more sophisticated and gains more optional behavior, it's easiest to just pass the GL context pointer to it so that it can examine any fields there that it needs to (such as API version, or the state of any driconf options, etc.). Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
4b00ecebd0
commit
f8987f9972
7 changed files with 21 additions and 8 deletions
|
|
@ -94,6 +94,14 @@ load_text_file(void *ctx, const char *filename)
|
|||
return text;
|
||||
}
|
||||
|
||||
/* Initialize only those things that glcpp cares about.
|
||||
*/
|
||||
static void
|
||||
init_fake_gl_context (struct gl_context *gl_ctx)
|
||||
{
|
||||
gl_ctx->API = API_OPENGL_COMPAT;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
|
|
@ -102,6 +110,9 @@ main (int argc, char *argv[])
|
|||
char *info_log = ralloc_strdup(ctx, "");
|
||||
const char *shader;
|
||||
int ret;
|
||||
struct gl_context gl_ctx;
|
||||
|
||||
init_fake_gl_context (&gl_ctx);
|
||||
|
||||
if (argc) {
|
||||
filename = argv[1];
|
||||
|
|
@ -111,7 +122,7 @@ main (int argc, char *argv[])
|
|||
if (shader == NULL)
|
||||
return 1;
|
||||
|
||||
ret = glcpp_preprocess(ctx, &shader, &info_log, NULL, API_OPENGL_COMPAT);
|
||||
ret = glcpp_preprocess(ctx, &shader, &info_log, NULL, &gl_ctx);
|
||||
|
||||
printf("%s", shader);
|
||||
fprintf(stderr, "%s", info_log);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue