summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2010-08-05 17:29:15 -0700
committerIan Romanick <[email protected]>2010-08-05 17:29:15 -0700
commit0a09d679ca97dcb634a939df2110a90c9504e2ec (patch)
treee9533edc3c924c806c5c764463a8ab2fa4db41c8 /src
parent1e0f0459e0ca8b9f0c67f8178e5189b8cfd6078c (diff)
glsl_type: Don't have two versions of a type with the same name
Previously some sampler types were duplicated in GLSL 1.30 and GL_EXT_texture_array. This resulted in not being able to find the built-in sampler functions when the extension was used. When the built-in functions were compiled, they bound to the 1.30 version. This caused a type mismatch when trying to find the function. It also resulted in a confusing error message: 0:0(0): error: no matching function for call to `texture2DArray(sampler2DArray, vec3)' 0:0(0): error: candidates are: vec4 texture2DArray(sampler2DArray, vec3) 0:0(0): error: vec4 texture2DArray(sampler2DArray, vec3, float)
Diffstat (limited to 'src')
-rw-r--r--src/glsl/builtin_types.h12
-rw-r--r--src/glsl/glsl_types.cpp1
2 files changed, 4 insertions, 9 deletions
diff --git a/src/glsl/builtin_types.h b/src/glsl/builtin_types.h
index bd8f8b583a5..bfa4f3f5408 100644
--- a/src/glsl/builtin_types.h
+++ b/src/glsl/builtin_types.h
@@ -212,23 +212,17 @@ const glsl_type glsl_type::builtin_130_types[] = {
glsl_type(GL_UNSIGNED_INT_VEC3, GLSL_TYPE_UINT, 3, 1, "uvec3"),
glsl_type(GL_UNSIGNED_INT_VEC4, GLSL_TYPE_UINT, 4, 1, "uvec4"),
- /* 1D and 2D texture arrays */
- glsl_type(GL_SAMPLER_1D_ARRAY,
- GLSL_SAMPLER_DIM_1D, 0, 1, GLSL_TYPE_FLOAT, "sampler1DArray"),
+ /* 1D and 2D texture arrays - several of these are included only in
+ * builtin_EXT_texture_array_types.
+ */
glsl_type(GL_INT_SAMPLER_1D_ARRAY,
GLSL_SAMPLER_DIM_1D, 0, 1, GLSL_TYPE_INT, "isampler1DArray"),
glsl_type(GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
GLSL_SAMPLER_DIM_1D, 0, 1, GLSL_TYPE_UINT, "usampler1DArray"),
- glsl_type(GL_SAMPLER_1D_ARRAY_SHADOW,
- GLSL_SAMPLER_DIM_1D, 1, 1, GLSL_TYPE_FLOAT, "sampler1DArrayShadow"),
- glsl_type(GL_SAMPLER_2D_ARRAY,
- GLSL_SAMPLER_DIM_2D, 0, 1, GLSL_TYPE_FLOAT, "sampler2DArray"),
glsl_type(GL_INT_SAMPLER_2D_ARRAY,
GLSL_SAMPLER_DIM_2D, 0, 1, GLSL_TYPE_INT, "isampler2DArray"),
glsl_type(GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
GLSL_SAMPLER_DIM_2D, 0, 1, GLSL_TYPE_UINT, "usampler2DArray"),
- glsl_type(GL_SAMPLER_2D_ARRAY_SHADOW,
- GLSL_SAMPLER_DIM_2D, 1, 1, GLSL_TYPE_FLOAT, "sampler2DArrayShadow"),
/* cube shadow samplers */
glsl_type(GL_SAMPLER_CUBE_SHADOW,
diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index 88f305ac254..03f84603b55 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -144,6 +144,7 @@ glsl_type::generate_130_types(glsl_symbol_table *symtab)
add_types_to_symbol_table(symtab, builtin_130_types,
Elements(builtin_130_types), false);
+ generate_EXT_texture_array_types(symtab, false);
}