Mesa (master): st/xorg: Change format function a bit

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Wed Mar 4 23:38:03 UTC 2009


Module: Mesa
Branch: master
Commit: b611f81477b196fed9d249b1e0f37ef186dd1426
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b611f81477b196fed9d249b1e0f37ef186dd1426

Author: Jakob Bornecrantz <wallbraker at gmail.com>
Date:   Wed Mar  4 23:51:14 2009 +0100

st/xorg: Change format function a bit

---

 src/gallium/state_trackers/xorg/xorg_exa.c |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index a69df3f..b29cd5e 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -54,6 +54,7 @@ struct PixmapPriv
     struct pipe_texture *tex;
     unsigned int color;
     struct pipe_surface *src_surf; /* for copies */
+
     struct pipe_transfer *map_transfer;
     unsigned map_count;
 };
@@ -62,25 +63,34 @@ struct PixmapPriv
  * Helper functions
  */
 
-static enum pipe_format
-exa_get_pipe_format(int depth)
+static void
+exa_get_pipe_format(int depth, enum pipe_format *format, int *bbp)
 {
     switch (depth) {
     case 32:
-	return PIPE_FORMAT_A8R8G8B8_UNORM;
+	*format = PIPE_FORMAT_A8R8G8B8_UNORM;
+	assert(*bbp == 32);
+	break;
     case 24:
-	return PIPE_FORMAT_X8R8G8B8_UNORM;
+	*format = PIPE_FORMAT_X8R8G8B8_UNORM;
+	assert(*bbp == 32);
+	break;
     case 16:
-	return PIPE_FORMAT_R5G6B5_UNORM;
+	*format = PIPE_FORMAT_R5G6B5_UNORM;
+	assert(*bbp == 16);
+	break;
     case 15:
-	return PIPE_FORMAT_A1R5G5B5_UNORM;
+	*format = PIPE_FORMAT_A1R5G5B5_UNORM;
+	assert(*bbp == 16);
+	break;
     case 8:
     case 4:
     case 1:
-	return PIPE_FORMAT_A8R8G8B8_UNORM; /* bad bad bad */
+	*format = PIPE_FORMAT_A8R8G8B8_UNORM; /* bad bad bad */
+	break;
     default:
 	assert(0);
-	return 0;
+	break;
     }
 }
 
@@ -436,7 +446,7 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
 	memset(&template, 0, sizeof(template));
 	template.target = PIPE_TEXTURE_2D;
 	template.compressed = 0;
-	template.format = exa_get_pipe_format(depth);
+	exa_get_pipe_format(depth, &template.format, &bitsPerPixel);
 	pf_get_block(template.format, &template.block);
 	template.width[0] = width;
 	template.height[0] = height;




More information about the mesa-commit mailing list