summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/formats.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2014-01-06 12:50:43 -0700
committerBrian Paul <[email protected]>2014-01-06 13:37:00 -0700
commit3486f6f31b8cdb01e480cfbd8814c1e4222d26b0 (patch)
treedc45a8f11d2b08593ea8d6db5b16e0968756095a /src/mesa/main/formats.c
parent7db56ddee07fb365832881e05205d98f281cea80 (diff)
mesa: implement missing glGet(GL_RGBA_SIGNED_COMPONENTS_EXT) query
This is part of the GL_EXT_packed_float extension. Bugzilla: http://bugs.freedesktop.org/show_bug.cgi?id=73096 Cc: 10.0 <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chris Forbes <[email protected]>
Diffstat (limited to 'src/mesa/main/formats.c')
-rw-r--r--src/mesa/main/formats.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 07d2a72406b..eb2a07ea5f6 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -1967,6 +1967,25 @@ _mesa_is_format_unsigned(gl_format format)
/**
+ * Does the given format store signed values?
+ */
+GLboolean
+_mesa_is_format_signed(gl_format format)
+{
+ if (format == MESA_FORMAT_R11_G11_B10_FLOAT) {
+ /* this packed float format only stores unsigned values */
+ return GL_FALSE;
+ }
+ else {
+ const struct gl_format_info *info = _mesa_get_format_info(format);
+ return (info->DataType == GL_SIGNED_NORMALIZED ||
+ info->DataType == GL_INT ||
+ info->DataType == GL_FLOAT);
+ }
+}
+
+
+/**
* Return color encoding for given format.
* \return GL_LINEAR or GL_SRGB
*/