d3d10core: Add support for map_type flags D3D10_MAP_READ, D3D10_MAP_WRITE_NO_OVERWRITE and D3D10_MAP_DISCARD.
Johannes Brandstätter
jbrandst at 2ds.eu
Tue Sep 23 05:55:29 CDT 2014
---
dlls/d3d10core/buffer.c | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d10core/buffer.c b/dlls/d3d10core/buffer.c
index 875ff90..0e43738 100644
--- a/dlls/d3d10core/buffer.c
+++ b/dlls/d3d10core/buffer.c
@@ -161,15 +161,35 @@ static UINT STDMETHODCALLTYPE d3d10_buffer_GetEvictionPriority(ID3D10Buffer *ifa
static HRESULT STDMETHODCALLTYPE d3d10_buffer_Map(ID3D10Buffer *iface, D3D10_MAP map_type, UINT map_flags, void **data)
{
struct d3d10_buffer *buffer = impl_from_ID3D10Buffer(iface);
+ DWORD wine_map_flags = 0;
TRACE("iface %p, map_type %u, map_flags %#x, data %p.\n", iface, map_type, map_flags, data);
if (map_type != D3D10_MAP_READ_WRITE)
- FIXME("Ignoring map_type %#x.\n", map_type);
+ {
+ switch (map_type)
+ {
+ case D3D10_MAP_READ:
+ wine_map_flags = WINED3D_MAP_READONLY;
+ break;
+
+ case D3D10_MAP_WRITE_DISCARD:
+ wine_map_flags = WINED3D_MAP_DISCARD;
+ break;
+
+ case D3D10_MAP_WRITE_NO_OVERWRITE:
+ wine_map_flags = WINED3D_MAP_NOOVERWRITE;
+ break;
+
+ default:
+ FIXME("Ignoring map_type %#x.\n", map_type);
+ }
+ }
+
if (map_flags)
FIXME("Ignoring map_flags %#x.\n", map_flags);
- return wined3d_buffer_map(buffer->wined3d_buffer, 0, 0, (BYTE **)data, 0);
+ return wined3d_buffer_map(buffer->wined3d_buffer, 0, 0, (BYTE **)data, wine_map_flags);
}
static void STDMETHODCALLTYPE d3d10_buffer_Unmap(ID3D10Buffer *iface)
--
2.1.0
More information about the wine-patches
mailing list