summaryrefslogtreecommitdiff
path: root/src/glsl
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/glsl_parser_extras.cpp6
-rw-r--r--src/glsl/glsl_parser_extras.h3
-rw-r--r--src/glsl/main.cpp1
3 files changed, 10 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 2e17c4c337..fc3f9e90b6 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -27,6 +27,7 @@
extern "C" {
#include <talloc.h>
+#include "main/mtypes.h"
}
#include "ast.h"
@@ -135,6 +136,11 @@ _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
} else if (strcmp(name, "GL_ARB_texture_rectangle") == 0) {
state->ARB_texture_rectangle_enable = (ext_mode != extension_disable);
state->ARB_texture_rectangle_warn = (ext_mode == extension_warn);
+ } else if (strcmp(name, "GL_EXT_texture_array") == 0) {
+ state->EXT_texture_array_enable = (ext_mode != extension_disable);
+ state->EXT_texture_array_warn = (ext_mode == extension_warn);
+
+ unsupported = !state->extensions->EXT_texture_array;
} else {
unsupported = true;
}
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index dc3d23ac54..16f7268181 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -90,6 +90,9 @@ struct _mesa_glsl_parse_state {
unsigned EXT_texture_array_enable:1;
unsigned EXT_texture_array_warn:1;
/*@}*/
+
+ /** Extensions supported by the OpenGL implementation. */
+ const struct gl_extensions *extensions;
};
typedef struct YYLTYPE {
diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index deaab7e033..16bbc8cd3f 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -129,6 +129,7 @@ compile_shader(struct gl_shader *shader)
state->ARB_texture_rectangle_enable = true;
memset(&ext, 0, sizeof(ext));
+ state->extensions = &ext;
state->Const.MaxDrawBuffers = 2;
state->Const.MaxTextureCoords = 4;