|  |  | @@ -1612,10 +1612,8 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, | 
		
	
		
			
			|  |  |  | GLenum type, GLsizei count, GLint elems, | 
		
	
		
			
			|  |  |  | const void *values) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | struct gl_program_parameter *param = | 
		
	
		
			
			|  |  |  | const struct gl_program_parameter *param = | 
		
	
		
			
			|  |  |  | &program->Parameters->Parameters[index]; | 
		
	
		
			
			|  |  |  | const GLboolean isUniformBool = is_boolean_type(param->DataType); | 
		
	
		
			
			|  |  |  | const GLboolean areIntValues = is_integer_type(type); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | assert(offset >= 0); | 
		
	
		
			
			|  |  |  | assert(elems >= 1); | 
		
	
	
		
			
			|  |  | @@ -1635,17 +1633,10 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, | 
		
	
		
			
			|  |  |  | /* This controls which texture unit which is used by a sampler */ | 
		
	
		
			
			|  |  |  | GLint i; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* data type for setting samplers must be int */ | 
		
	
		
			
			|  |  |  | if (type != GL_INT) { | 
		
	
		
			
			|  |  |  | _mesa_error(ctx, GL_INVALID_OPERATION, | 
		
	
		
			
			|  |  |  | "glUniform(only glUniform1i can be used " | 
		
	
		
			
			|  |  |  | "to set sampler uniforms)"); | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | /* this should have been caught by the compatible_types() check */ | 
		
	
		
			
			|  |  |  | ASSERT(type == GL_INT); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* XXX arrays of samplers haven't been tested much, but it's not a | 
		
	
		
			
			|  |  |  | * common thing... | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | /* loop over number of samplers to change */ | 
		
	
		
			
			|  |  |  | for (i = 0; i < count; i++) { | 
		
	
		
			
			|  |  |  | GLuint sampler = | 
		
	
		
			
			|  |  |  | (GLuint) program->Parameters->ParameterValues[index + offset + i][0]; | 
		
	
	
		
			
			|  |  | @@ -1674,9 +1665,11 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else { | 
		
	
		
			
			|  |  |  | /* ordinary uniform variable */ | 
		
	
		
			
			|  |  |  | GLsizei k, i; | 
		
	
		
			
			|  |  |  | const GLboolean isUniformBool = is_boolean_type(param->DataType); | 
		
	
		
			
			|  |  |  | const GLboolean areIntValues = is_integer_type(type); | 
		
	
		
			
			|  |  |  | const GLint slots = (param->Size + 3) / 4; | 
		
	
		
			
			|  |  |  | const GLint typeSize = sizeof_glsl_type(param->DataType); | 
		
	
		
			
			|  |  |  | GLsizei k, i; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (param->Size > typeSize) { | 
		
	
		
			
			|  |  |  | /* an array */ |