d3d10core: Implement d3d10_texture2d_Unmap().
diff --git a/dlls/d3d10core/texture.c b/dlls/d3d10core/texture.c
index 1126e87..5908cd0 100644
--- a/dlls/d3d10core/texture.c
+++ b/dlls/d3d10core/texture.c
@@ -159,9 +159,17 @@
return E_NOTIMPL;
}
-static void STDMETHODCALLTYPE d3d10_texture2d_Unmap(ID3D10Texture2D *iface, UINT sub_resource)
+static void STDMETHODCALLTYPE d3d10_texture2d_Unmap(ID3D10Texture2D *iface, UINT sub_resource_idx)
{
- FIXME("iface %p, sub_resource %u stub!\n", iface, sub_resource);
+ struct d3d10_texture2d *texture = impl_from_ID3D10Texture2D(iface);
+ struct wined3d_resource *sub_resource;
+
+ TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx);
+
+ if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx)))
+ return;
+
+ wined3d_surface_unmap(wined3d_surface_from_resource(sub_resource));
}
static void STDMETHODCALLTYPE d3d10_texture2d_GetDesc(ID3D10Texture2D *iface, D3D10_TEXTURE2D_DESC *desc)