summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glsl/glcpp/glcpp.c13
-rw-r--r--src/glsl/glcpp/glcpp.h4
-rw-r--r--src/glsl/glcpp/pp.c4
-rw-r--r--src/glsl/glsl_parser_extras.h2
-rw-r--r--src/glsl/main.cpp2
-rw-r--r--src/glsl/test_optpass.cpp2
-rw-r--r--src/mesa/program/ir_to_mesa.cpp2
7 files changed, 21 insertions, 8 deletions
diff --git a/src/glsl/glcpp/glcpp.c b/src/glsl/glcpp/glcpp.c
index 7c2ded850bd..79fbdac5cc0 100644
--- a/src/glsl/glcpp/glcpp.c
+++ b/src/glsl/glcpp/glcpp.c
@@ -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);
diff --git a/src/glsl/glcpp/glcpp.h b/src/glsl/glcpp/glcpp.h
index 03a77b7047a..8aaa551d128 100644
--- a/src/glsl/glcpp/glcpp.h
+++ b/src/glsl/glcpp/glcpp.h
@@ -27,6 +27,8 @@
#include <stdint.h>
#include <stdbool.h>
+#include "main/mtypes.h"
+
#include "../ralloc.h"
#include "program/hash_table.h"
@@ -198,7 +200,7 @@ glcpp_parser_destroy (glcpp_parser_t *parser);
int
glcpp_preprocess(void *ralloc_ctx, const char **shader, char **info_log,
- const struct gl_extensions *extensions, int api);
+ const struct gl_extensions *extensions, struct gl_context *g_ctx);
/* Functions for writing to the info log */
diff --git a/src/glsl/glcpp/pp.c b/src/glsl/glcpp/pp.c
index 11b29417be2..5f86a499cd4 100644
--- a/src/glsl/glcpp/pp.c
+++ b/src/glsl/glcpp/pp.c
@@ -151,10 +151,10 @@ remove_line_continuations(glcpp_parser_t *ctx, const char *shader)
int
glcpp_preprocess(void *ralloc_ctx, const char **shader, char **info_log,
- const struct gl_extensions *extensions, int api)
+ const struct gl_extensions *extensions, struct gl_context *gl_ctx)
{
int errors;
- glcpp_parser_t *parser = glcpp_parser_create (extensions, api);
+ glcpp_parser_t *parser = glcpp_parser_create (extensions, gl_ctx->API);
*shader = remove_line_continuations(parser, *shader);
glcpp_lex_set_source_string (parser, *shader);
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index 46e0784ba36..2e6bb0b0a3d 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -354,7 +354,7 @@ extern "C" {
#endif
extern int glcpp_preprocess(void *ctx, const char **shader, char **info_log,
- const struct gl_extensions *extensions, int api);
+ const struct gl_extensions *extensions, struct gl_context *gl_ctx);
extern void _mesa_destroy_shader_compiler(void);
extern void _mesa_destroy_shader_compiler_caches(void);
diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index a84d010f460..ed6f122798a 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -146,7 +146,7 @@ compile_shader(struct gl_context *ctx, struct gl_shader *shader)
const char *source = shader->Source;
state->error = glcpp_preprocess(state, &source, &state->info_log,
- state->extensions, ctx->API) != 0;
+ state->extensions, ctx) != 0;
if (!state->error) {
_mesa_glsl_lexer_ctor(state, source);
diff --git a/src/glsl/test_optpass.cpp b/src/glsl/test_optpass.cpp
index ce5df24d904..117b0b006bc 100644
--- a/src/glsl/test_optpass.cpp
+++ b/src/glsl/test_optpass.cpp
@@ -217,7 +217,7 @@ int test_optpass(int argc, char **argv)
shader->Source = input.c_str();
const char *source = shader->Source;
state->error = glcpp_preprocess(state, &source, &state->info_log,
- state->extensions, ctx->API) != 0;
+ state->extensions, ctx) != 0;
if (!state->error) {
_mesa_glsl_lexer_ctor(state, source);
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index d5b9683db13..0f7439b3b06 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -3061,7 +3061,7 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader)
}
state->error = glcpp_preprocess(state, &source, &state->info_log,
- &ctx->Extensions, ctx->API);
+ &ctx->Extensions, ctx);
if (ctx->Shader.Flags & GLSL_DUMP) {
printf("GLSL source for %s shader %d:\n",