diff options
author | marha <marha@users.sourceforge.net> | 2013-06-18 08:28:35 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-06-18 08:28:35 +0200 |
commit | 230fe896faed312ef22d915e871fb5aee3ecfad0 (patch) | |
tree | 971b0c0899c72496f97970319bfadfae383abbea /mesalib/src/mesa/main/uniforms.h | |
parent | 180290f941da61bd80284d817e27c01cf789ee53 (diff) | |
parent | b071050b9eda9d5e5185e582dbe9f4adba863ccc (diff) | |
download | vcxsrv-230fe896faed312ef22d915e871fb5aee3ecfad0.tar.gz vcxsrv-230fe896faed312ef22d915e871fb5aee3ecfad0.tar.bz2 vcxsrv-230fe896faed312ef22d915e871fb5aee3ecfad0.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
libX11 libXmu libxcb/xcb-proto mesa mkfontscale pixman xkeyboard-config git update 18 June 2013
Diffstat (limited to 'mesalib/src/mesa/main/uniforms.h')
-rw-r--r-- | mesalib/src/mesa/main/uniforms.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/mesalib/src/mesa/main/uniforms.h b/mesalib/src/mesa/main/uniforms.h index 5ebd5e49a..14fe26d5f 100644 --- a/mesalib/src/mesa/main/uniforms.h +++ b/mesalib/src/mesa/main/uniforms.h @@ -269,20 +269,24 @@ struct gl_builtin_uniform_desc { * Combine the uniform's base location and the offset */ static inline GLint -_mesa_uniform_merge_location_offset(unsigned base_location, unsigned offset) +_mesa_uniform_merge_location_offset(const struct gl_shader_program *prog, + unsigned base_location, unsigned offset) { - return (base_location << 16) | offset; + assert(prog->UniformLocationBaseScale >= 0); + assert(offset < prog->UniformLocationBaseScale); + return (base_location * prog->UniformLocationBaseScale) + offset; } /** * Separate the uniform base location and parameter offset */ static inline void -_mesa_uniform_split_location_offset(GLint location, unsigned *base_location, +_mesa_uniform_split_location_offset(const struct gl_shader_program *prog, + GLint location, unsigned *base_location, unsigned *offset) { - *offset = location & 0xffff; - *base_location = location >> 16; + *offset = location % prog->UniformLocationBaseScale; + *base_location = location / prog->UniformLocationBaseScale; } /*@}*/ |