static void STDMETHODCALLTYPE d3d10_texture3d_Unmap(ID3D10Texture3D *iface, UINT sub_resource_idx) { struct d3d_texture3d *texture = impl_from_ID3D10Texture3D(iface); TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx); wined3d_mutex_lock(); wined3d_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx); wined3d_mutex_unlock(); }
static void STDMETHODCALLTYPE d3d10_buffer_Unmap(ID3D10Buffer *iface) { struct d3d_buffer *buffer = impl_from_ID3D10Buffer(iface); TRACE("iface %p.\n", iface); wined3d_mutex_lock(); wined3d_resource_unmap(wined3d_buffer_get_resource(buffer->wined3d_buffer), 0); wined3d_mutex_unlock(); }
static HRESULT WINAPI d3d9_indexbuffer_Unlock(IDirect3DIndexBuffer9 *iface) { struct d3d9_indexbuffer *buffer = impl_from_IDirect3DIndexBuffer9(iface); TRACE("iface %p.\n", iface); wined3d_mutex_lock(); wined3d_resource_unmap(wined3d_buffer_get_resource(buffer->wined3d_buffer), 0); wined3d_mutex_unlock(); return D3D_OK; }
static HRESULT WINAPI d3d8_volume_UnlockBox(IDirect3DVolume8 *iface) { struct d3d8_volume *volume = impl_from_IDirect3DVolume8(iface); HRESULT hr; TRACE("iface %p.\n", iface); wined3d_mutex_lock(); hr = wined3d_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx); wined3d_mutex_unlock(); if (hr == WINEDDERR_NOTLOCKED) return D3DERR_INVALIDCALL; return hr; }
static HRESULT WINAPI d3d8_surface_UnlockRect(IDirect3DSurface8 *iface) { struct d3d8_surface *surface = impl_from_IDirect3DSurface8(iface); HRESULT hr; TRACE("iface %p.\n", iface); wined3d_mutex_lock(); hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx); wined3d_mutex_unlock(); switch(hr) { case WINEDDERR_NOTLOCKED: return D3DERR_INVALIDCALL; default: return hr; } }
static HRESULT WINAPI d3d8_surface_UnlockRect(IDirect3DSurface8 *iface) { struct d3d8_surface *surface = impl_from_IDirect3DSurface8(iface); HRESULT hr; TRACE("iface %p.\n", iface); wined3d_mutex_lock(); hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx); wined3d_mutex_unlock(); if (hr == WINEDDERR_NOTLOCKED) { D3DRESOURCETYPE type; if (surface->texture) type = IDirect3DBaseTexture8_GetType(&surface->texture->IDirect3DBaseTexture8_iface); else type = D3DRTYPE_SURFACE; hr = type == D3DRTYPE_TEXTURE ? D3D_OK : D3DERR_INVALIDCALL; } return hr; }