diff options
author | Brian <brian.paul@tungstengraphics.com> | 2008-07-21 20:42:05 -0600 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2008-07-21 20:42:05 -0600 |
commit | 63025ec726eb6d3e9a3140f3928a8fc8840c806f (patch) | |
tree | ba0b14767e67fbc9181c290077fc50240b73713b /src/mesa/shader | |
parent | e3ca92aa28e2bf28e72cea340d9c8d5c9bb48089 (diff) |
mesa: fix glUniform error checking for samplers
Diffstat (limited to 'src/mesa/shader')
-rw-r--r-- | src/mesa/shader/shader_api.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index f390e3cef4..99bcc0aeb4 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -1209,6 +1209,27 @@ update_textures_used(struct gl_program *prog) } +static GLboolean +is_sampler_type(GLenum type) +{ + switch (type) { + case GL_SAMPLER_1D: + case GL_SAMPLER_2D: + case GL_SAMPLER_3D: + case GL_SAMPLER_CUBE: + case GL_SAMPLER_1D_SHADOW: + case GL_SAMPLER_2D_SHADOW: + case GL_SAMPLER_2D_RECT_ARB: + case GL_SAMPLER_2D_RECT_SHADOW_ARB: + case GL_SAMPLER_1D_ARRAY_EXT: + case GL_SAMPLER_2D_ARRAY_EXT: + return GL_TRUE; + default: + return GL_FALSE; + } +} + + /** * Check if the type given by userType is allowed to set a uniform of the * target type. Generally, equivalence is required, but setting Boolean @@ -1235,6 +1256,9 @@ compatible_types(GLenum userType, GLenum targetType) userType == GL_INT_VEC4)) return GL_TRUE; + if (is_sampler_type(targetType) && userType == GL_INT) + return GL_TRUE; + return GL_FALSE; } |