raw2png: support some depth formats.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Wed, 6 Aug 2008 13:48:53 +0000 (14:48 +0100)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Thu, 7 Aug 2008 17:58:29 +0000 (18:58 +0100)
bin/raw2png.py

index be4f3ec86c14c38b1928017274b54469bc146dc7..18d40bda0e70024fb8b6268870b3929a16f1e1a6 100755 (executable)
@@ -280,6 +280,20 @@ def translate_ycbcr_rev(data):
     r2, g2, b2 = yuv2rgb(y1, u, v)
     return [[(r1, g1, b1, 255), (r2, g2, b2, 255)]]
 
+def translate_x8z24(data):
+    value, = struct.unpack_from("I", data)
+    r = g = b = (value & 0xffffff)*0xff/0xffffff
+    a = 255
+    return [[(r, g, b, a)]]
+
+def translate_s8z24(data):
+    value, = struct.unpack_from("I", data)
+    r = (value & 0xffffff)*0xff/0xffffff
+    g = value >> 24
+    b = 0
+    a = 255
+    return [[(r, g, b, a)]]
+
 
 translate = {
        PIPE_FORMAT_A8R8G8B8_UNORM: (4, 1, 1, translate_r8g8b8a8),
@@ -290,6 +304,8 @@ translate = {
        PIPE_FORMAT_R5G6B5_UNORM: (2, 1, 1, translate_r5g6b5),
        PIPE_FORMAT_YCBCR: (4, 2, 1, translate_ycbcr),
        PIPE_FORMAT_YCBCR_REV: (4, 2, 1, translate_ycbcr_rev),
+    PIPE_FORMAT_S8Z24_UNORM: (4, 1, 1, translate_s8z24),
+    PIPE_FORMAT_X8Z24_UNORM: (4, 1, 1, translate_x8z24),
 }
 
 def read_header(infile):