diff options
| author | Ian Romanick <ian.d.romanick@intel.com> | 2010-08-05 17:29:15 -0700 | 
|---|---|---|
| committer | Ian Romanick <ian.d.romanick@intel.com> | 2010-08-05 17:29:15 -0700 | 
| commit | 0a09d679ca97dcb634a939df2110a90c9504e2ec (patch) | |
| tree | e9533edc3c924c806c5c764463a8ab2fa4db41c8 | |
| parent | 1e0f0459e0ca8b9f0c67f8178e5189b8cfd6078c (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)
| -rw-r--r-- | src/glsl/builtin_types.h | 12 | ||||
| -rw-r--r-- | src/glsl/glsl_types.cpp | 1 | 
2 files changed, 4 insertions, 9 deletions
| diff --git a/src/glsl/builtin_types.h b/src/glsl/builtin_types.h index bd8f8b583a..bfa4f3f540 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 88f305ac25..03f84603b5 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);  } | 
