diff options
author | marha <marha@users.sourceforge.net> | 2012-11-07 10:08:29 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-11-07 10:08:29 +0100 |
commit | 74380c2fc1384a529df4f4995bddcf587fbac389 (patch) | |
tree | 0089fa6c54409e2a9515e0f530bf33e5f9561e29 /mesalib/src/mesa/main/macros.h | |
parent | 2c345c9da4dedfafe791557ca3fcf891ce26249d (diff) | |
parent | 1738a6973deb03f33a71c9527594727cb8bb64b4 (diff) | |
download | vcxsrv-74380c2fc1384a529df4f4995bddcf587fbac389.tar.gz vcxsrv-74380c2fc1384a529df4f4995bddcf587fbac389.tar.bz2 vcxsrv-74380c2fc1384a529df4f4995bddcf587fbac389.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
xserver mesa xkbcomp git update 7 nov 2012
Conflicts:
mesalib/src/mapi/glapi/gen/glX_API.xml
mesalib/src/mesa/main/.gitignore
xkbcomp/listing.c
xorg-server/hw/xwin/winshaddd.c
xorg-server/hw/xwin/winshadddnl.c
Diffstat (limited to 'mesalib/src/mesa/main/macros.h')
-rw-r--r-- | mesalib/src/mesa/main/macros.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/mesalib/src/mesa/main/macros.h b/mesalib/src/mesa/main/macros.h index 7b7fd1b6d..14a5d5fe1 100644 --- a/mesalib/src/mesa/main/macros.h +++ b/mesalib/src/mesa/main/macros.h @@ -171,6 +171,20 @@ extern GLfloat _mesa_ubyte_to_float_color_tab[256]; ub = ((GLubyte) F_TO_I((f) * 255.0F)) #endif +static inline GLfloat INT_AS_FLT(GLint i) +{ + fi_type tmp; + tmp.i = i; + return tmp.f; +} + +static inline GLfloat UINT_AS_FLT(GLuint u) +{ + fi_type tmp; + tmp.u = u; + return tmp.f; +} + /*@}*/ @@ -573,6 +587,31 @@ do { \ /*@}*/ +/** Copy \p sz elements into a homegeneous (4-element) vector, giving + * default values to the remaining components. + * The default values are chosen based on \p type. + */ +static inline void +COPY_CLEAN_4V_TYPE_AS_FLOAT(GLfloat dst[4], int sz, const GLfloat src[4], + GLenum type) +{ + switch (type) { + case GL_FLOAT: + ASSIGN_4V(dst, 0, 0, 0, 1); + break; + case GL_INT: + ASSIGN_4V(dst, INT_AS_FLT(0), INT_AS_FLT(0), + INT_AS_FLT(0), INT_AS_FLT(1)); + break; + case GL_UNSIGNED_INT: + ASSIGN_4V(dst, UINT_AS_FLT(0), UINT_AS_FLT(0), + UINT_AS_FLT(0), UINT_AS_FLT(1)); + break; + default: + ASSERT(0); + } + COPY_SZ_4V(dst, sz, src); +} /** \name Linear interpolation functions */ /*@{*/ |