summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/colormac.h
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2011-08-31 21:22:52 -0600
committerBrian Paul <brianp@vmware.com>2011-08-31 21:23:33 -0600
commit025cf209bca7d57a8ffe2e3010ebf01fa4d797cc (patch)
tree5969b148b131109bbb5dd4c0f413136934ac46bf /src/mesa/main/colormac.h
parent6b9e4b6ca7bec9dbafe4f4368f2f33bbeda6cb5c (diff)
downloadexternal_mesa3d-025cf209bca7d57a8ffe2e3010ebf01fa4d797cc.zip
external_mesa3d-025cf209bca7d57a8ffe2e3010ebf01fa4d797cc.tar.gz
external_mesa3d-025cf209bca7d57a8ffe2e3010ebf01fa4d797cc.tar.bz2
mesa: fix broken store_texel() functions
This fixes the swrast failures for piglit's fbo-generatemipmap-formats test (for uncompressed formats). At some point down the road this code will go away so I haven't checked all the other store_texel() functions.
Diffstat (limited to 'src/mesa/main/colormac.h')
-rw-r--r--src/mesa/main/colormac.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/main/colormac.h b/src/mesa/main/colormac.h
index a328dcd..d308c48 100644
--- a/src/mesa/main/colormac.h
+++ b/src/mesa/main/colormac.h
@@ -81,6 +81,8 @@
#define UINT_TO_CHAN(i) ((GLchan) ((i) >> 24))
#define CHAN_TO_UBYTE(c) (c)
+#define CHAN_TO_USHORT(c) (((c) << 8) | (c))
+#define CHAN_TO_SHORT(c) (((c) << 7) | ((c) >> 1))
#define CHAN_TO_FLOAT(c) UBYTE_TO_FLOAT(c)
#define CLAMPED_FLOAT_TO_CHAN(c, f) CLAMPED_FLOAT_TO_UBYTE(c, f)
@@ -98,6 +100,8 @@
#define UINT_TO_CHAN(i) ((GLchan) ((i) >> 16))
#define CHAN_TO_UBYTE(c) ((c) >> 8)
+#define CHAN_TO_USHORT(c) (c)
+#define CHAN_TO_SHORT(c) ((c) >> 1)
#define CHAN_TO_FLOAT(c) ((GLfloat) ((c) * (1.0 / CHAN_MAXF)))
#define CLAMPED_FLOAT_TO_CHAN(c, f) CLAMPED_FLOAT_TO_USHORT(c, f)
@@ -116,6 +120,8 @@
#define UINT_TO_CHAN(i) ((GLfloat) ((i) * (1.0F / 4294967295.0F)))
#define CHAN_TO_UBYTE(c) FLOAT_TO_UBYTE(c)
+#define CHAN_TO_USHORT(c) ((GLushort) (CLAMP((c), 0.0f, 1.0f) * 65535.0))
+#define CHAN_TO_SHORT(c) ((GLshort) (CLAMP((c), 0.0f, 1.0f) * 32767.0))
#define CHAN_TO_FLOAT(c) (c)
#define CLAMPED_FLOAT_TO_CHAN(c, f) c = (f)