Merge branch 'llvm-cliptest-viewport'
[mesa.git] / src / glsl / glsl_parser_extras.cpp
index 26e0721cedea16c22d0ffff8a279a375390ac115..3b9877ec0e5e208e1a75d15c8fa54c10e5ec052c 100644 (file)
@@ -27,7 +27,7 @@
 
 extern "C" {
 #include <talloc.h>
-#include "main/core.h" /* for struct __GLcontextRec */
+#include "main/core.h" /* for struct gl_context */
 }
 
 #include "ast.h"
@@ -36,7 +36,7 @@ extern "C" {
 #include "ir_optimization.h"
 #include "loop_analysis.h"
 
-_mesa_glsl_parse_state::_mesa_glsl_parse_state(struct __GLcontextRec *ctx,
+_mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *ctx,
                                               GLenum target, void *mem_ctx)
 {
    switch (target) {
@@ -181,6 +181,13 @@ _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
         state->ARB_draw_buffers_enable = (ext_mode != extension_disable);
         state->ARB_draw_buffers_warn = (ext_mode == extension_warn);
       }
+   } else if (strcmp(name, "GL_ARB_explicit_attrib_location") == 0) {
+      state->ARB_explicit_attrib_location_enable =
+        (ext_mode != extension_disable);
+      state->ARB_explicit_attrib_location_warn =
+        (ext_mode == extension_warn);
+
+      unsupported = !state->extensions->ARB_explicit_attrib_location;
    } else if (strcmp(name, "GL_ARB_fragment_coord_conventions") == 0) {
       state->ARB_fragment_coord_conventions_enable =
         (ext_mode != extension_disable);
@@ -196,6 +203,14 @@ _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
       state->EXT_texture_array_warn = (ext_mode == extension_warn);
 
       unsupported = !state->extensions->EXT_texture_array;
+   } else if (strcmp(name, "GL_ARB_shader_stencil_export") == 0) {
+      if (state->target != fragment_shader) {
+        unsupported = true;
+      } else {
+        state->ARB_shader_stencil_export_enable = (ext_mode != extension_disable);
+        state->ARB_shader_stencil_export_warn = (ext_mode == extension_warn);
+        unsupported = !state->extensions->ARB_shader_stencil_export;
+      }
    } else {
       unsupported = true;
    }