Henri Verbeet : wined3d: Add support for the INTZ format.

Alexandre Julliard julliard at winehq.org
Fri Nov 5 13:47:19 CDT 2010


Module: wine
Branch: master
Commit: f0b0c1b1dddf606177651deb45c0afd6259076aa
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f0b0c1b1dddf606177651deb45c0afd6259076aa

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Nov  5 14:11:35 2010 +0100

wined3d: Add support for the INTZ format.

---

 dlls/wined3d/directx.c   |    6 ++++++
 dlls/wined3d/utils.c     |   13 +++++++++++++
 include/wine/wined3d.idl |    1 +
 3 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index b25e399..32d2431 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3470,6 +3470,12 @@ static BOOL CheckTextureCapability(struct wined3d_adapter *adapter, const struct
         case WINED3DFMT_D32_FLOAT:
             return TRUE;
 
+        case WINED3DFMT_INTZ:
+            if (gl_info->supported[EXT_PACKED_DEPTH_STENCIL]
+                    || gl_info->supported[ARB_FRAMEBUFFER_OBJECT])
+                return TRUE;
+            return FALSE;
+
         /*****
          *  Not supported everywhere(depends on GL_ATI_envmap_bumpmap or
          *  GL_NV_texture_shader). Emulated by shaders
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index efeaa14..f2d6bde 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -130,6 +130,7 @@ static const struct StaticPixelFormatDesc formats[] =
     /* Vendor-specific formats */
     {WINED3DFMT_ATI2N,                      0x0,        0x0,        0x0,        0x0,        1,      0,      0},
     {WINED3DFMT_NVDB,                       0x0,        0x0,        0x0,        0x0,        0,      0,      0},
+    {WINED3DFMT_INTZ,                       0x0,        0x0,        0x0,        0x0,        4,      24,     8},
     {WINED3DFMT_NVHU,                       0x0,        0x0,        0x0,        0x0,        2,      0,      0},
     {WINED3DFMT_NVHS,                       0x0,        0x0,        0x0,        0x0,        2,      0,      0},
 };
@@ -856,6 +857,16 @@ static const struct wined3d_format_texture_info format_texture_info[] =
             GL_LUMINANCE_ALPHA,         GL_UNSIGNED_BYTE,                 0,
             WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
             ARB_TEXTURE_COMPRESSION_RGTC, NULL},
+    {WINED3DFMT_INTZ,                   GL_DEPTH24_STENCIL8_EXT,          GL_DEPTH24_STENCIL8_EXT,                0,
+            GL_DEPTH_STENCIL_EXT,       GL_UNSIGNED_INT_24_8_EXT,         0,
+            WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH
+            | WINED3DFMT_FLAG_STENCIL,
+            EXT_PACKED_DEPTH_STENCIL,   NULL},
+    {WINED3DFMT_INTZ,                   GL_DEPTH24_STENCIL8,              GL_DEPTH24_STENCIL8,                    0,
+            GL_DEPTH_STENCIL,           GL_UNSIGNED_INT_24_8,             0,
+            WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH
+            | WINED3DFMT_FLAG_STENCIL,
+            ARB_FRAMEBUFFER_OBJECT,     NULL},
 };
 
 static inline int getFmtIdx(enum wined3d_format_id format_id)
@@ -1720,6 +1731,7 @@ const char *debug_d3dformat(enum wined3d_format_id format_id)
         FMT_TO_STR(WINED3DFMT_B5G5R5A1_UNORM);
         FMT_TO_STR(WINED3DFMT_B8G8R8A8_UNORM);
         FMT_TO_STR(WINED3DFMT_B8G8R8X8_UNORM);
+        FMT_TO_STR(WINED3DFMT_INTZ);
 #undef FMT_TO_STR
         default:
         {
@@ -2546,6 +2558,7 @@ BOOL getDepthStencilBits(const struct wined3d_format *format, short *depthSize,
         case WINED3DFMT_S8_UINT_D24_FLOAT:
         case WINED3DFMT_D32_UNORM:
         case WINED3DFMT_D32_FLOAT:
+        case WINED3DFMT_INTZ:
             break;
         default:
             FIXME("Unsupported depth/stencil format %s.\n", debug_d3dformat(format->id));
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
index 63de528..c816a29 100644
--- a/include/wine/wined3d.idl
+++ b/include/wine/wined3d.idl
@@ -274,6 +274,7 @@ enum wined3d_format_id
     WINED3DFMT_NVDB                         = WINEMAKEFOURCC('N','V','D','B'),
     WINED3DFMT_NVHU                         = WINEMAKEFOURCC('N','V','H','U'),
     WINED3DFMT_NVHS                         = WINEMAKEFOURCC('N','V','H','S'),
+    WINED3DFMT_INTZ                         = WINEMAKEFOURCC('I','N','T','Z'),
 
     WINED3DFMT_FORCE_DWORD = 0xffffffff
 };




More information about the wine-cvs mailing list