Henri Verbeet : d3d10core: Implement ID3D10Texture3D::Map().

Alexandre Julliard julliard at winehq.org
Wed Oct 20 13:24:39 CDT 2010


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Oct 20 12:12:29 2010 +0200

d3d10core: Implement ID3D10Texture3D::Map().

---

 dlls/d3d10core/texture.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/dlls/d3d10core/texture.c b/dlls/d3d10core/texture.c
index 22e03eb..920b64f 100644
--- a/dlls/d3d10core/texture.c
+++ b/dlls/d3d10core/texture.c
@@ -349,10 +349,30 @@ static UINT STDMETHODCALLTYPE d3d10_texture3d_GetEvictionPriority(ID3D10Texture3
 static HRESULT STDMETHODCALLTYPE d3d10_texture3d_Map(ID3D10Texture3D *iface, UINT sub_resource,
         D3D10_MAP map_type, UINT map_flags, D3D10_MAPPED_TEXTURE3D *mapped_texture)
 {
-    FIXME("iface %p, sub_resource %u, map_type %u, map_flags %#x, mapped_texture %p stub!\n",
+    struct d3d10_texture3d *texture = (struct d3d10_texture3d *)iface;
+    WINED3DLOCKED_BOX wined3d_map_desc;
+    HRESULT hr;
+
+    TRACE("iface %p, sub_resource %u, map_type %u, map_flags %#x, mapped_texture %p.\n",
             iface, sub_resource, map_type, map_flags, mapped_texture);
 
-    return E_NOTIMPL;
+    if (map_type != D3D10_MAP_READ_WRITE)
+        FIXME("Ignoring map_type %#x.\n", map_type);
+    if (map_flags)
+        FIXME("Ignoring map_flags %#x.\n", map_flags);
+
+    hr = IWineD3DVolumeTexture_Map(texture->wined3d_texture, sub_resource, &wined3d_map_desc, NULL, 0);
+    if (FAILED(hr))
+    {
+        WARN("Failed to map texture, hr %#x.\n", hr);
+        return hr;
+    }
+
+    mapped_texture->pData = wined3d_map_desc.pBits;
+    mapped_texture->RowPitch = wined3d_map_desc.RowPitch;
+    mapped_texture->DepthPitch = wined3d_map_desc.SlicePitch;
+
+    return hr;
 }
 
 static void STDMETHODCALLTYPE d3d10_texture3d_Unmap(ID3D10Texture3D *iface, UINT sub_resource)




More information about the wine-cvs mailing list