[PATCH 4/5] wined3d: Add texture flag for mipmap generation.

Matteo Bruni mbruni at codeweavers.com
Wed Sep 20 12:53:41 CDT 2017


Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
Tests (later on in the patch series) show that calling GenerateMips()
on a texture without the D3D11_RESOURCE_MISC_GENERATE_MIPS flag does
nothing.  In theory, the whole check could be done on the d3d11 side
but that turns out to be somewhat awkward, in practice, so I'm going
to add a wined3d flag and pass it around instead.

 dlls/wined3d/texture.c         | 2 ++
 dlls/wined3d/wined3d_private.h | 1 +
 include/wine/wined3d.h         | 1 +
 3 files changed, 4 insertions(+)

diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 230f94c6fa..c3eb0648c8 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -384,6 +384,8 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc
         texture->flags |= WINED3D_TEXTURE_GET_DC;
     if (flags & WINED3D_TEXTURE_CREATE_DISCARD)
         texture->flags |= WINED3D_TEXTURE_DISCARD;
+    if (flags & WINED3D_TEXTURE_CREATE_GENERATE_MIPMAPS)
+        texture->flags |= WINED3D_TEXTURE_GENERATE_MIPMAPS;
 
     return WINED3D_OK;
 }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 4fca08dbdb..339e8984f9 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -3035,6 +3035,7 @@ struct wined3d_texture_ops
 #define WINED3D_TEXTURE_DC_IN_USE           0x00001000
 #define WINED3D_TEXTURE_DISCARD             0x00002000
 #define WINED3D_TEXTURE_GET_DC              0x00004000
+#define WINED3D_TEXTURE_GENERATE_MIPMAPS    0x00008000
 
 #define WINED3D_TEXTURE_ASYNC_COLOR_KEY     0x00000001
 
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 6fa31e7ea6..8c35fe3df2 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1537,6 +1537,7 @@ enum wined3d_shader_byte_code_format
 #define WINED3D_TEXTURE_CREATE_DISCARD                          0x00000002
 #define WINED3D_TEXTURE_CREATE_GET_DC_LENIENT                   0x00000004
 #define WINED3D_TEXTURE_CREATE_GET_DC                           0x00000008
+#define WINED3D_TEXTURE_CREATE_GENERATE_MIPMAPS                 0x00000010
 
 #define WINED3D_APPEND_ALIGNED_ELEMENT                          0xffffffff
 
-- 
2.13.5




More information about the wine-patches mailing list