From 1738a6973deb03f33a71c9527594727cb8bb64b4 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 7 Nov 2012 07:53:41 +0100 Subject: xserver mesa xkbcomp git update 7 nov 2012 xserver: 011f8458805e443ac9130865d2840a929a00cabf xkbcomp: bd1103ef3cfef9cfed645566f944a69e7ca568b4 mesa: f42518962a08ce927e4ddd233d19d2661e135834 --- mesalib/src/mesa/main/macros.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'mesalib/src/mesa/main/macros.h') 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 */ /*@{*/ -- cgit v1.2.3