On 07/23/2012 10:59 AM, Jordan Justen wrote:
Signed-off-by: Jordan Justen<jordan.l.jus...@intel.com>
---
  src/mesa/main/readpix.c |   13 ++++++++++---
  1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
index 784aaad..4fa816f 100644
--- a/src/mesa/main/readpix.c
+++ b/src/mesa/main/readpix.c
@@ -321,6 +321,8 @@ slow_read_rgba_pixels( struct gl_context *ctx,
     void *rgba;
     GLubyte *dst, *map;
     int dstStride, stride, j;
+   GLboolean is_integer = _mesa_is_enum_format_integer(format);
+   GLboolean is_unsiged_integer = _mesa_is_format_unsigned(rbFormat);

Maybe rename these vars to be more clear:
is_integer -> dst_is_integer
is_unsigned_integer -> src_is_unsigned_integer (or src_is_uint)



     dstStride = _mesa_image_row_stride(packing, width, format, type);
     dst = (GLubyte *) _mesa_image_address2d(packing, pixels, width, height,
@@ -338,12 +340,17 @@ slow_read_rgba_pixels( struct gl_context *ctx,
        goto done;

     for (j = 0; j<  height; j++) {
-      if (_mesa_is_enum_format_integer(format)) {
+      if (is_integer) {
         _mesa_unpack_uint_rgba_row(rbFormat, width, map, (GLuint (*)[4]) rgba);
           _mesa_rebase_rgba_uint(width, (GLuint (*)[4]) rgba,
                                  rb->_BaseFormat);
-         _mesa_pack_rgba_span_from_uints(ctx, width, (GLuint (*)[4]) rgba, 
format,
-                                         type, dst);
+         if (is_unsiged_integer) {
+            _mesa_pack_rgba_span_from_uints(ctx, width, (GLuint (*)[4]) rgba, 
format,
+                                            type, dst);
+         } else {
+            _mesa_pack_rgba_span_from_ints(ctx, width, (GLint (*)[4]) rgba, 
format,
+                                           type, dst);
+         }
        } else {
         _mesa_unpack_rgba_row(rbFormat, width, map, (GLfloat (*)[4]) rgba);
           _mesa_rebase_rgba_float(width, (GLfloat (*)[4]) rgba,

s/unsiged/unsigned/

With those changes, Reviewed-by: Brian Paul <bri...@vmware.com>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to