diff options
author | marha <marha@users.sourceforge.net> | 2012-01-13 17:04:47 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-01-13 17:04:47 +0100 |
commit | e2e1bdced7e09e39fed613dae1f2f3096cb18118 (patch) | |
tree | 63c7066c79d1053c7656b6175e22e2ced6f11e01 /mesalib/src/glsl/glsl_types.cpp | |
parent | cc96d00cae473f472e371328ce8dc572ad258073 (diff) | |
parent | 5cfbe97cd797d8f78ece208bb5114704b83d8aab (diff) | |
download | vcxsrv-e2e1bdced7e09e39fed613dae1f2f3096cb18118.tar.gz vcxsrv-e2e1bdced7e09e39fed613dae1f2f3096cb18118.tar.bz2 vcxsrv-e2e1bdced7e09e39fed613dae1f2f3096cb18118.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
libxcb/src/xcb_auth.c
libxcb/src/xcb_conn.c
libxcb/src/xcb_out.c
libxcb/src/xcb_util.c
xorg-server/dix/dispatch.c
xorg-server/include/dixstruct.h
xorg-server/include/misc.h
xorg-server/os/connection.c
Diffstat (limited to 'mesalib/src/glsl/glsl_types.cpp')
-rw-r--r-- | mesalib/src/glsl/glsl_types.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mesalib/src/glsl/glsl_types.cpp b/mesalib/src/glsl/glsl_types.cpp index 8587da0a3..d4385a644 100644 --- a/mesalib/src/glsl/glsl_types.cpp +++ b/mesalib/src/glsl/glsl_types.cpp @@ -127,6 +127,35 @@ glsl_type::contains_sampler() const } } +gl_texture_index +glsl_type::sampler_index() const +{ + const glsl_type *const t = (this->is_array()) ? this->fields.array : this; + + assert(t->is_sampler()); + + switch (t->sampler_dimensionality) { + case GLSL_SAMPLER_DIM_1D: + return (t->sampler_array) ? TEXTURE_1D_ARRAY_INDEX : TEXTURE_1D_INDEX; + case GLSL_SAMPLER_DIM_2D: + return (t->sampler_array) ? TEXTURE_2D_ARRAY_INDEX : TEXTURE_2D_INDEX; + case GLSL_SAMPLER_DIM_3D: + return TEXTURE_3D_INDEX; + case GLSL_SAMPLER_DIM_CUBE: + return TEXTURE_CUBE_INDEX; + case GLSL_SAMPLER_DIM_RECT: + return TEXTURE_RECT_INDEX; + case GLSL_SAMPLER_DIM_BUF: + assert(!"FINISHME: Implement ARB_texture_buffer_object"); + break; + case GLSL_SAMPLER_DIM_EXTERNAL: + return TEXTURE_EXTERNAL_INDEX; + default: + assert(!"Should not get here."); + break; + } +} + void glsl_type::generate_100ES_types(glsl_symbol_table *symtab) { |