gallium: Read from PIPE_FORMAT_Z32_FLOAT.

Mainly for debugging purposes for now.
This commit is contained in:
José Fonseca
2008-10-25 03:35:01 +09:00
parent 6225e467c6
commit 7b42a5d634
+29
View File
@@ -769,6 +769,32 @@ z24s8_get_tile_rgba(const unsigned *src,
}
/*** PIPE_FORMAT_Z32_FLOAT ***/
/**
* Return each Z value as four floats in [0,1].
*/
static void
z32f_get_tile_rgba(const float *src,
unsigned w, unsigned h,
float *p,
unsigned dst_stride)
{
unsigned i, j;
for (i = 0; i < h; i++) {
float *pRow = p;
for (j = 0; j < w; j++, pRow += 4) {
pRow[0] =
pRow[1] =
pRow[2] =
pRow[3] = *src++;
}
p += dst_stride;
}
}
/*** PIPE_FORMAT_YCBCR / PIPE_FORMAT_YCBCR_REV ***/
/**
@@ -913,6 +939,9 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
case PIPE_FORMAT_Z24S8_UNORM:
z24s8_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
break;
case PIPE_FORMAT_Z32_FLOAT:
z32f_get_tile_rgba((float *) src, w, h, dst, dst_stride);
break;
case PIPE_FORMAT_YCBCR:
ycbcr_get_tile_rgba((ushort *) src, w, h, dst, dst_stride, FALSE);
break;