summaryrefslogtreecommitdiff
path: root/glsl_types.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-04-07 17:13:44 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-04-07 17:13:44 -0700
commit0c824653952a67722c242616bb34a4796b42f660 (patch)
tree3e65d21684b5c01b934870240c1d27e07baab7e5 /glsl_types.cpp
parentc77b257094b15e7c53b62cb50bfbcd7c5003f2a8 (diff)
Treat texture rectangles as an extension that is enabled be default
Diffstat (limited to 'glsl_types.cpp')
-rw-r--r--glsl_types.cpp35
1 files changed, 26 insertions, 9 deletions
diff --git a/glsl_types.cpp b/glsl_types.cpp
index ba4f0297d8..24b3e3f59f 100644
--- a/glsl_types.cpp
+++ b/glsl_types.cpp
@@ -35,11 +35,11 @@ hash_table *glsl_type::array_types = NULL;
static void
add_types_to_symbol_table(glsl_symbol_table *symtab,
const struct glsl_type *types,
- unsigned num_types)
+ unsigned num_types, bool warn)
{
- unsigned i;
+ (void) warn;
- for (i = 0; i < num_types; i++) {
+ for (unsigned i = 0; i < num_types; i++) {
symtab->add_type(types[i].name, & types[i]);
}
}
@@ -49,12 +49,15 @@ static void
generate_110_types(glsl_symbol_table *symtab)
{
add_types_to_symbol_table(symtab, builtin_core_types,
- Elements(builtin_core_types));
+ Elements(builtin_core_types),
+ false);
add_types_to_symbol_table(symtab, builtin_structure_types,
- Elements(builtin_structure_types));
+ Elements(builtin_structure_types),
+ false);
add_types_to_symbol_table(symtab, builtin_110_deprecated_structure_types,
- Elements(builtin_110_deprecated_structure_types));
- add_types_to_symbol_table(symtab, & void_type, 1);
+ Elements(builtin_110_deprecated_structure_types),
+ false);
+ add_types_to_symbol_table(symtab, & void_type, 1, false);
}
@@ -64,7 +67,7 @@ generate_120_types(glsl_symbol_table *symtab)
generate_110_types(symtab);
add_types_to_symbol_table(symtab, builtin_120_types,
- Elements(builtin_120_types));
+ Elements(builtin_120_types), false);
}
@@ -74,7 +77,16 @@ generate_130_types(glsl_symbol_table *symtab)
generate_120_types(symtab);
add_types_to_symbol_table(symtab, builtin_130_types,
- Elements(builtin_130_types));
+ Elements(builtin_130_types), false);
+}
+
+
+static void
+generate_ARB_texture_rectangle_types(glsl_symbol_table *symtab, bool warn)
+{
+ add_types_to_symbol_table(symtab, builtin_ARB_texture_rectangle_types,
+ Elements(builtin_ARB_texture_rectangle_types),
+ warn);
}
@@ -95,6 +107,11 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state)
/* error */
break;
}
+
+ if (state->ARB_texture_rectangle_enable) {
+ generate_ARB_texture_rectangle_types(state->symbols,
+ state->ARB_texture_rectangle_warn);
+ }
}