From fd8e18bd2b532dad69ce0b9d13dddd34439fd2c6 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 18 Mar 2011 19:10:59 +0100 Subject: [PATCH] wined3d: Remove COM from the texture implementation. --- dlls/d3d10core/d3d10core_private.h | 2 +- dlls/d3d10core/texture.c | 8 +- dlls/d3d8/cubetexture.c | 42 ++--- dlls/d3d8/d3d8_private.h | 10 +- dlls/d3d8/device.c | 20 +-- dlls/d3d8/texture.c | 36 ++--- dlls/d3d8/volumetexture.c | 44 +++--- dlls/d3d9/cubetexture.c | 48 +++--- dlls/d3d9/d3d9_private.h | 11 +- dlls/d3d9/device.c | 36 +++-- dlls/d3d9/texture.c | 42 ++--- dlls/d3d9/volumetexture.c | 40 ++--- dlls/ddraw/ddraw.c | 4 +- dlls/ddraw/ddraw_private.h | 2 +- dlls/ddraw/device.c | 38 +++-- dlls/ddraw/surface.c | 14 +- dlls/wined3d/context.c | 3 +- dlls/wined3d/device.c | 42 +++-- dlls/wined3d/state.c | 5 +- dlls/wined3d/stateblock.c | 6 +- dlls/wined3d/surface.c | 8 +- dlls/wined3d/texture.c | 238 +++++++++++------------------ dlls/wined3d/volume.c | 4 +- dlls/wined3d/wined3d.spec | 19 +++ dlls/wined3d/wined3d_private.h | 31 ++-- include/wine/wined3d.idl | 69 ++++----- 26 files changed, 380 insertions(+), 442 deletions(-) diff --git a/dlls/d3d10core/d3d10core_private.h b/dlls/d3d10core/d3d10core_private.h index 3146399e217..6fb9316743d 100644 --- a/dlls/d3d10core/d3d10core_private.h +++ b/dlls/d3d10core/d3d10core_private.h @@ -100,7 +100,7 @@ struct d3d10_texture3d const struct ID3D10Texture3DVtbl *vtbl; LONG refcount; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; D3D10_TEXTURE3D_DESC desc; }; diff --git a/dlls/d3d10core/texture.c b/dlls/d3d10core/texture.c index 92ce8307d95..a3ae358214d 100644 --- a/dlls/d3d10core/texture.c +++ b/dlls/d3d10core/texture.c @@ -271,7 +271,7 @@ static ULONG STDMETHODCALLTYPE d3d10_texture3d_AddRef(ID3D10Texture3D *iface) TRACE("%p increasing refcount to %u.\n", texture, refcount); if (refcount == 1) - IWineD3DBaseTexture_AddRef(texture->wined3d_texture); + wined3d_texture_incref(texture->wined3d_texture); return refcount; } @@ -289,7 +289,7 @@ static ULONG STDMETHODCALLTYPE d3d10_texture3d_Release(ID3D10Texture3D *iface) TRACE("%p decreasing refcount to %u.\n", texture, refcount); if (!refcount) - IWineD3DBaseTexture_Release(texture->wined3d_texture); + wined3d_texture_decref(texture->wined3d_texture); return refcount; } @@ -361,7 +361,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_texture3d_Map(ID3D10Texture3D *iface, UIN if (map_flags) FIXME("Ignoring map_flags %#x.\n", map_flags); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) hr = E_INVALIDARG; else if (SUCCEEDED(hr = IWineD3DVolume_Map(wined3d_volume_from_resource(sub_resource), &wined3d_map_desc, NULL, 0))) @@ -381,7 +381,7 @@ static void STDMETHODCALLTYPE d3d10_texture3d_Unmap(ID3D10Texture3D *iface, UINT TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) return; IWineD3DVolume_Unmap(wined3d_volume_from_resource(sub_resource)); diff --git a/dlls/d3d8/cubetexture.c b/dlls/d3d8/cubetexture.c index 2da348f7fc4..6e2da59e198 100644 --- a/dlls/d3d8/cubetexture.c +++ b/dlls/d3d8/cubetexture.c @@ -60,7 +60,7 @@ static ULONG WINAPI IDirect3DCubeTexture8Impl_AddRef(IDirect3DCubeTexture8 *ifac { IUnknown_AddRef(This->parentDevice); wined3d_mutex_lock(); - IWineD3DBaseTexture_AddRef(This->wined3d_texture); + wined3d_texture_incref(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -80,7 +80,7 @@ static ULONG WINAPI IDirect3DCubeTexture8Impl_Release(IDirect3DCubeTexture8 *ifa TRACE("Releasing child %p.\n", This->wined3d_texture); wined3d_mutex_lock(); - IWineD3DBaseTexture_Release(This->wined3d_texture); + wined3d_texture_decref(This->wined3d_texture); wined3d_mutex_unlock(); /* Release the device last, as it may cause the device to be destroyed. */ @@ -115,7 +115,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_SetPrivateData(IDirect3DCubeText iface, debugstr_guid(refguid), pData, SizeOfData, Flags); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetPrivateData(This->wined3d_texture, refguid, pData, SizeOfData, Flags); + hr = wined3d_texture_set_private_data(This->wined3d_texture, refguid, pData, SizeOfData, Flags); wined3d_mutex_unlock(); return hr; @@ -131,7 +131,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetPrivateData(IDirect3DCubeText iface, debugstr_guid(refguid), pData, pSizeOfData); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_GetPrivateData(This->wined3d_texture, refguid, pData, pSizeOfData); + hr = wined3d_texture_get_private_data(This->wined3d_texture, refguid, pData, pSizeOfData); wined3d_mutex_unlock(); return hr; @@ -146,7 +146,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_FreePrivateData(IDirect3DCubeTex TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid)); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_FreePrivateData(This->wined3d_texture, refguid); + hr = wined3d_texture_free_private_data(This->wined3d_texture, refguid); wined3d_mutex_unlock(); return hr; @@ -161,7 +161,7 @@ static DWORD WINAPI IDirect3DCubeTexture8Impl_SetPriority(IDirect3DCubeTexture8 TRACE("iface %p, priority %u.\n", iface, PriorityNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetPriority(This->wined3d_texture, PriorityNew); + ret = wined3d_texture_set_priority(This->wined3d_texture, PriorityNew); wined3d_mutex_unlock(); return ret; @@ -175,7 +175,7 @@ static DWORD WINAPI IDirect3DCubeTexture8Impl_GetPriority(IDirect3DCubeTexture8 TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetPriority(This->wined3d_texture); + ret = wined3d_texture_get_priority(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -188,7 +188,7 @@ static void WINAPI IDirect3DCubeTexture8Impl_PreLoad(IDirect3DCubeTexture8 *ifac TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_PreLoad(This->wined3d_texture); + wined3d_texture_preload(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -200,7 +200,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DCubeTexture8Impl_GetType(IDirect3DCubeTex TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - type = IWineD3DBaseTexture_GetType(This->wined3d_texture); + type = wined3d_texture_get_type(This->wined3d_texture); wined3d_mutex_unlock(); return type; @@ -215,7 +215,7 @@ static DWORD WINAPI IDirect3DCubeTexture8Impl_SetLOD(IDirect3DCubeTexture8 *ifac TRACE("iface %p, lod %u.\n", iface, LODNew); wined3d_mutex_lock(); - lod = IWineD3DBaseTexture_SetLOD(This->wined3d_texture, LODNew); + lod = wined3d_texture_set_lod(This->wined3d_texture, LODNew); wined3d_mutex_unlock(); return lod; @@ -229,7 +229,7 @@ static DWORD WINAPI IDirect3DCubeTexture8Impl_GetLOD(IDirect3DCubeTexture8 *ifac TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - lod = IWineD3DBaseTexture_GetLOD(This->wined3d_texture); + lod = wined3d_texture_get_lod(This->wined3d_texture); wined3d_mutex_unlock(); return lod; @@ -243,7 +243,7 @@ static DWORD WINAPI IDirect3DCubeTexture8Impl_GetLevelCount(IDirect3DCubeTexture TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - cnt = IWineD3DBaseTexture_GetLevelCount(This->wined3d_texture); + cnt = wined3d_texture_get_level_count(This->wined3d_texture); wined3d_mutex_unlock(); return cnt; @@ -260,7 +260,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetLevelDesc(IDirect3DCubeTextur TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else { @@ -291,8 +291,8 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetCubeMapSurface(IDirect3DCubeT TRACE("iface %p, face %#x, level %u, surface %p.\n", iface, face, level, surface); wined3d_mutex_lock(); - sub_resource_idx = IWineD3DBaseTexture_GetLevelCount(texture->wined3d_texture) * face + level; - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + sub_resource_idx = wined3d_texture_get_level_count(texture->wined3d_texture) * face + level; + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) { wined3d_mutex_unlock(); return D3DERR_INVALIDCALL; @@ -318,8 +318,8 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_LockRect(IDirect3DCubeTexture8 * iface, face, level, locked_rect, rect, flags); wined3d_mutex_lock(); - sub_resource_idx = IWineD3DBaseTexture_GetLevelCount(texture->wined3d_texture) * face + level; - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + sub_resource_idx = wined3d_texture_get_level_count(texture->wined3d_texture) * face + level; + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface8_LockRect((IDirect3DSurface8 *)wined3d_resource_get_parent(sub_resource), @@ -340,8 +340,8 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_UnlockRect(IDirect3DCubeTexture8 TRACE("iface %p, face %#x, level %u.\n", iface, face, level); wined3d_mutex_lock(); - sub_resource_idx = IWineD3DBaseTexture_GetLevelCount(texture->wined3d_texture) * face + level; - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + sub_resource_idx = wined3d_texture_get_level_count(texture->wined3d_texture) * face + level; + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface8_UnlockRect((IDirect3DSurface8 *)wined3d_resource_get_parent(sub_resource)); @@ -361,7 +361,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_AddDirtyRect(IDirect3DCubeTextur wined3d_mutex_lock(); if (!dirty_rect) - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, face, NULL); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, NULL); else { WINED3DBOX dirty_region; @@ -372,7 +372,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_AddDirtyRect(IDirect3DCubeTextur dirty_region.Bottom = dirty_rect->bottom; dirty_region.Front = 0; dirty_region.Back = 1; - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, face, &dirty_region); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region); } wined3d_mutex_unlock(); diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h index a6591fde335..3edbc328e63 100644 --- a/dlls/d3d8/d3d8_private.h +++ b/dlls/d3d8/d3d8_private.h @@ -324,9 +324,7 @@ struct IDirect3DBaseTexture8Impl /* IUnknown fields */ const IDirect3DBaseTexture8Vtbl *lpVtbl; LONG ref; - - /* IDirect3DResource8 fields */ - IWineD3DBaseTexture *wineD3DBaseTexture; + struct wined3d_texture *wined3d_texture; }; /* --------------------- */ @@ -340,7 +338,7 @@ struct IDirect3DCubeTexture8Impl { IDirect3DCubeTexture8 IDirect3DCubeTexture8_iface; LONG ref; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; IDirect3DDevice8 *parentDevice; }; @@ -358,7 +356,7 @@ struct IDirect3DTexture8Impl { IDirect3DTexture8 IDirect3DTexture8_iface; LONG ref; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; IDirect3DDevice8 *parentDevice; }; @@ -376,7 +374,7 @@ struct IDirect3DVolumeTexture8Impl { IDirect3DVolumeTexture8 IDirect3DVolumeTexture8_iface; LONG ref; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; IDirect3DDevice8 *parentDevice; }; diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index 725435d1030..82d53302a93 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -984,15 +984,17 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(IDirect3DDevice8 *iface, } static HRESULT WINAPI IDirect3DDevice8Impl_UpdateTexture(IDirect3DDevice8 *iface, - IDirect3DBaseTexture8 *pSourceTexture, IDirect3DBaseTexture8 *pDestinationTexture) + IDirect3DBaseTexture8 *src_texture, IDirect3DBaseTexture8 *dst_texture) { IDirect3DDevice8Impl *This = impl_from_IDirect3DDevice8(iface); HRESULT hr; - TRACE("iface %p, src_texture %p, dst_texture %p.\n", iface, pSourceTexture, pDestinationTexture); + TRACE("iface %p, src_texture %p, dst_texture %p.\n", iface, src_texture, dst_texture); wined3d_mutex_lock(); - hr = IWineD3DDevice_UpdateTexture(This->WineD3DDevice, ((IDirect3DBaseTexture8Impl *)pSourceTexture)->wineD3DBaseTexture, ((IDirect3DBaseTexture8Impl *)pDestinationTexture)->wineD3DBaseTexture); + hr = IWineD3DDevice_UpdateTexture(This->WineD3DDevice, + ((IDirect3DBaseTexture8Impl *)src_texture)->wined3d_texture, + ((IDirect3DBaseTexture8Impl *)dst_texture)->wined3d_texture); wined3d_mutex_unlock(); return hr; @@ -1608,7 +1610,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetTexture(IDirect3DDevice8 *iface, DWORD Stage, IDirect3DBaseTexture8 **ppTexture) { IDirect3DDevice8Impl *This = impl_from_IDirect3DDevice8(iface); - IWineD3DBaseTexture *retTexture; + struct wined3d_texture *wined3d_texture; HRESULT hr; TRACE("iface %p, stage %u, texture %p.\n", iface, Stage, ppTexture); @@ -1618,7 +1620,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetTexture(IDirect3DDevice8 *iface, } wined3d_mutex_lock(); - hr = IWineD3DDevice_GetTexture(This->WineD3DDevice, Stage, &retTexture); + hr = IWineD3DDevice_GetTexture(This->WineD3DDevice, Stage, &wined3d_texture); if (FAILED(hr)) { WARN("Failed to get texture for stage %u, hr %#x.\n", Stage, hr); @@ -1627,11 +1629,11 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetTexture(IDirect3DDevice8 *iface, return hr; } - if (retTexture) + if (wined3d_texture) { - *ppTexture = IWineD3DBaseTexture_GetParent(retTexture); + *ppTexture = wined3d_texture_get_parent(wined3d_texture); IDirect3DBaseTexture8_AddRef(*ppTexture); - IWineD3DBaseTexture_Release(retTexture); + wined3d_texture_decref(wined3d_texture); } else { @@ -1652,7 +1654,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_SetTexture(IDirect3DDevice8 *iface, D wined3d_mutex_lock(); hr = IWineD3DDevice_SetTexture(This->WineD3DDevice, Stage, - pTexture==NULL ? NULL : ((IDirect3DBaseTexture8Impl *)pTexture)->wineD3DBaseTexture); + pTexture ? ((IDirect3DBaseTexture8Impl *)pTexture)->wined3d_texture : NULL); wined3d_mutex_unlock(); return hr; diff --git a/dlls/d3d8/texture.c b/dlls/d3d8/texture.c index 9e6c7510aff..3119f5ebe7e 100644 --- a/dlls/d3d8/texture.c +++ b/dlls/d3d8/texture.c @@ -61,7 +61,7 @@ static ULONG WINAPI IDirect3DTexture8Impl_AddRef(IDirect3DTexture8 *iface) { IDirect3DDevice8_AddRef(This->parentDevice); wined3d_mutex_lock(); - IWineD3DBaseTexture_AddRef(This->wined3d_texture); + wined3d_texture_incref(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -79,7 +79,7 @@ static ULONG WINAPI IDirect3DTexture8Impl_Release(IDirect3DTexture8 *iface) IDirect3DDevice8 *parentDevice = This->parentDevice; wined3d_mutex_lock(); - IWineD3DBaseTexture_Release(This->wined3d_texture); + wined3d_texture_decref(This->wined3d_texture); wined3d_mutex_unlock(); /* Release the device last, as it may cause the device to be destroyed. */ @@ -114,7 +114,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_SetPrivateData(IDirect3DTexture8 *if iface, debugstr_guid(refguid), pData, SizeOfData, Flags); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetPrivateData(This->wined3d_texture, refguid, pData, SizeOfData, Flags); + hr = wined3d_texture_set_private_data(This->wined3d_texture, refguid, pData, SizeOfData, Flags); wined3d_mutex_unlock(); return hr; @@ -130,7 +130,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_GetPrivateData(IDirect3DTexture8 *if iface, debugstr_guid(refguid), pData, pSizeOfData); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_GetPrivateData(This->wined3d_texture, refguid, pData, pSizeOfData); + hr = wined3d_texture_get_private_data(This->wined3d_texture, refguid, pData, pSizeOfData); wined3d_mutex_unlock(); return hr; @@ -145,7 +145,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_FreePrivateData(IDirect3DTexture8 *i TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid)); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_FreePrivateData(This->wined3d_texture, refguid); + hr = wined3d_texture_free_private_data(This->wined3d_texture, refguid); wined3d_mutex_unlock(); return hr; @@ -159,7 +159,7 @@ static DWORD WINAPI IDirect3DTexture8Impl_SetPriority(IDirect3DTexture8 *iface, TRACE("iface %p, priority %u.\n", iface, PriorityNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetPriority(This->wined3d_texture, PriorityNew); + ret = wined3d_texture_set_priority(This->wined3d_texture, PriorityNew); wined3d_mutex_unlock(); return ret; @@ -173,7 +173,7 @@ static DWORD WINAPI IDirect3DTexture8Impl_GetPriority(IDirect3DTexture8 *iface) TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetPriority(This->wined3d_texture); + ret = wined3d_texture_get_priority(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -186,7 +186,7 @@ static void WINAPI IDirect3DTexture8Impl_PreLoad(IDirect3DTexture8 *iface) TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_PreLoad(This->wined3d_texture); + wined3d_texture_preload(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -198,7 +198,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DTexture8Impl_GetType(IDirect3DTexture8 *i TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - type = IWineD3DBaseTexture_GetType(This->wined3d_texture); + type = wined3d_texture_get_type(This->wined3d_texture); wined3d_mutex_unlock(); return type; @@ -213,7 +213,7 @@ static DWORD WINAPI IDirect3DTexture8Impl_SetLOD(IDirect3DTexture8 *iface, DWORD TRACE("iface %p, lod %u.\n", iface, LODNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetLOD(This->wined3d_texture, LODNew); + ret = wined3d_texture_set_lod(This->wined3d_texture, LODNew); wined3d_mutex_unlock(); return ret; @@ -227,7 +227,7 @@ static DWORD WINAPI IDirect3DTexture8Impl_GetLOD(IDirect3DTexture8 *iface) TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLOD(This->wined3d_texture); + ret = wined3d_texture_get_lod(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -241,7 +241,7 @@ static DWORD WINAPI IDirect3DTexture8Impl_GetLevelCount(IDirect3DTexture8 *iface TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLevelCount(This->wined3d_texture); + ret = wined3d_texture_get_level_count(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -257,7 +257,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_GetLevelDesc(IDirect3DTexture8 *ifac TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else { @@ -287,7 +287,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_GetSurfaceLevel(IDirect3DTexture8 *i TRACE("iface %p, level %u, surface %p.\n", iface, level, surface); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) { wined3d_mutex_unlock(); return D3DERR_INVALIDCALL; @@ -311,7 +311,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_LockRect(IDirect3DTexture8 *iface, U iface, level, locked_rect, rect, flags); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface8_LockRect((IDirect3DSurface8 *)wined3d_resource_get_parent(sub_resource), @@ -330,7 +330,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_UnlockRect(IDirect3DTexture8 *iface, TRACE("iface %p, level %u.\n", iface, level); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface8_UnlockRect((IDirect3DSurface8 *)wined3d_resource_get_parent(sub_resource)); @@ -349,7 +349,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_AddDirtyRect(IDirect3DTexture8 *ifac wined3d_mutex_lock(); if (!dirty_rect) - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, 0, NULL); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, NULL); else { WINED3DBOX dirty_region; @@ -360,7 +360,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_AddDirtyRect(IDirect3DTexture8 *ifac dirty_region.Bottom = dirty_rect->bottom; dirty_region.Front = 0; dirty_region.Back = 1; - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, 0, &dirty_region); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region); } wined3d_mutex_unlock(); diff --git a/dlls/d3d8/volumetexture.c b/dlls/d3d8/volumetexture.c index b7184470a68..f65bceb3abf 100644 --- a/dlls/d3d8/volumetexture.c +++ b/dlls/d3d8/volumetexture.c @@ -60,7 +60,7 @@ static ULONG WINAPI IDirect3DVolumeTexture8Impl_AddRef(IDirect3DVolumeTexture8 * { IDirect3DDevice8_AddRef(This->parentDevice); wined3d_mutex_lock(); - IWineD3DBaseTexture_AddRef(This->wined3d_texture); + wined3d_texture_incref(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -78,7 +78,7 @@ static ULONG WINAPI IDirect3DVolumeTexture8Impl_Release(IDirect3DVolumeTexture8 IDirect3DDevice8 *parentDevice = This->parentDevice; wined3d_mutex_lock(); - IWineD3DBaseTexture_Release(This->wined3d_texture); + wined3d_texture_decref(This->wined3d_texture); wined3d_mutex_unlock(); /* Release the device last, as it may cause the device to be destroyed. */ @@ -113,7 +113,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_SetPrivateData(IDirect3DVolume iface, debugstr_guid(refguid), pData, SizeOfData, Flags); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetPrivateData(This->wined3d_texture, refguid, pData, SizeOfData, Flags); + hr = wined3d_texture_set_private_data(This->wined3d_texture, refguid, pData, SizeOfData, Flags); wined3d_mutex_unlock(); return hr; @@ -129,7 +129,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetPrivateData(IDirect3DVolume iface, debugstr_guid(refguid), pData, pSizeOfData); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_GetPrivateData(This->wined3d_texture, refguid, pData, pSizeOfData); + hr = wined3d_texture_get_private_data(This->wined3d_texture, refguid, pData, pSizeOfData); wined3d_mutex_unlock(); return hr; @@ -144,7 +144,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_FreePrivateData(IDirect3DVolum TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid)); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_FreePrivateData(This->wined3d_texture, refguid); + hr = wined3d_texture_free_private_data(This->wined3d_texture, refguid); wined3d_mutex_unlock(); return hr; @@ -159,7 +159,7 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_SetPriority(IDirect3DVolumeTextu TRACE("iface %p, priority %u.\n", iface, PriorityNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetPriority(This->wined3d_texture, PriorityNew); + ret = wined3d_texture_set_priority(This->wined3d_texture, PriorityNew); wined3d_mutex_unlock(); return ret; @@ -173,7 +173,7 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_GetPriority(IDirect3DVolumeTextu TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetPriority(This->wined3d_texture); + ret = wined3d_texture_get_priority(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -186,7 +186,7 @@ static void WINAPI IDirect3DVolumeTexture8Impl_PreLoad(IDirect3DVolumeTexture8 * TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_PreLoad(This->wined3d_texture); + wined3d_texture_preload(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -198,7 +198,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DVolumeTexture8Impl_GetType(IDirect3DVolum TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - type = IWineD3DBaseTexture_GetType(This->wined3d_texture); + type = wined3d_texture_get_type(This->wined3d_texture); wined3d_mutex_unlock(); return type; @@ -213,7 +213,7 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_SetLOD(IDirect3DVolumeTexture8 * TRACE("iface %p, lod %u.\n", iface, LODNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetLOD(This->wined3d_texture, LODNew); + ret = wined3d_texture_set_lod(This->wined3d_texture, LODNew); wined3d_mutex_unlock(); return ret; @@ -227,7 +227,7 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_GetLOD(IDirect3DVolumeTexture8 * TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLOD(This->wined3d_texture); + ret = wined3d_texture_get_lod(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -241,7 +241,7 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_GetLevelCount(IDirect3DVolumeTex TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLevelCount(This->wined3d_texture); + ret = wined3d_texture_get_level_count(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -250,14 +250,14 @@ static DWORD WINAPI IDirect3DVolumeTexture8Impl_GetLevelCount(IDirect3DVolumeTex static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetLevelDesc(IDirect3DVolumeTexture8 *iface, UINT level, D3DVOLUME_DESC *desc) { - IDirect3DVolumeTexture8Impl *This = impl_from_IDirect3DVolumeTexture8(iface); + IDirect3DVolumeTexture8Impl *texture = impl_from_IDirect3DVolumeTexture8(iface); struct wined3d_resource *sub_resource; HRESULT hr = D3D_OK; TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(This->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else { @@ -281,13 +281,13 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetLevelDesc(IDirect3DVolumeTe static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetVolumeLevel(IDirect3DVolumeTexture8 *iface, UINT level, IDirect3DVolume8 **volume) { - IDirect3DVolumeTexture8Impl *This = impl_from_IDirect3DVolumeTexture8(iface); + IDirect3DVolumeTexture8Impl *texture = impl_from_IDirect3DVolumeTexture8(iface); struct wined3d_resource *sub_resource; TRACE("iface %p, level %u, volume %p.\n", iface, level, volume); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(This->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) { wined3d_mutex_unlock(); return D3DERR_INVALIDCALL; @@ -303,7 +303,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetVolumeLevel(IDirect3DVolume static HRESULT WINAPI IDirect3DVolumeTexture8Impl_LockBox(IDirect3DVolumeTexture8 *iface, UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) { - IDirect3DVolumeTexture8Impl *This = impl_from_IDirect3DVolumeTexture8(iface); + IDirect3DVolumeTexture8Impl *texture = impl_from_IDirect3DVolumeTexture8(iface); struct wined3d_resource *sub_resource; HRESULT hr; @@ -311,7 +311,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_LockBox(IDirect3DVolumeTexture iface, level, locked_box, box, flags); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(This->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DVolume8_LockBox((IDirect3DVolume8 *)wined3d_resource_get_parent(sub_resource), @@ -324,14 +324,14 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_LockBox(IDirect3DVolumeTexture static HRESULT WINAPI IDirect3DVolumeTexture8Impl_UnlockBox(IDirect3DVolumeTexture8 *iface, UINT level) { - IDirect3DVolumeTexture8Impl *This = impl_from_IDirect3DVolumeTexture8(iface); + IDirect3DVolumeTexture8Impl *texture = impl_from_IDirect3DVolumeTexture8(iface); struct wined3d_resource *sub_resource; HRESULT hr; TRACE("iface %p, level %u.\n", iface, level); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(This->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DVolume8_UnlockBox((IDirect3DVolume8 *)wined3d_resource_get_parent(sub_resource)); @@ -343,13 +343,13 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_UnlockBox(IDirect3DVolumeTextu static HRESULT WINAPI IDirect3DVolumeTexture8Impl_AddDirtyBox(IDirect3DVolumeTexture8 *iface, const D3DBOX *dirty_box) { - IDirect3DVolumeTexture8Impl *This = impl_from_IDirect3DVolumeTexture8(iface); + IDirect3DVolumeTexture8Impl *texture = impl_from_IDirect3DVolumeTexture8(iface); HRESULT hr; TRACE("iface %p, dirty_box %p.\n", iface, dirty_box); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_AddDirtyRegion(This->wined3d_texture, 0, (const WINED3DBOX *)dirty_box); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, (const WINED3DBOX *)dirty_box); wined3d_mutex_unlock(); return hr; diff --git a/dlls/d3d9/cubetexture.c b/dlls/d3d9/cubetexture.c index 6540f0470ab..92ae787b8f3 100644 --- a/dlls/d3d9/cubetexture.c +++ b/dlls/d3d9/cubetexture.c @@ -56,7 +56,7 @@ static ULONG WINAPI IDirect3DCubeTexture9Impl_AddRef(LPDIRECT3DCUBETEXTURE9 ifac { IDirect3DDevice9Ex_AddRef(This->parentDevice); wined3d_mutex_lock(); - IWineD3DBaseTexture_AddRef(This->wined3d_texture); + wined3d_texture_incref(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -75,7 +75,7 @@ static ULONG WINAPI IDirect3DCubeTexture9Impl_Release(LPDIRECT3DCUBETEXTURE9 ifa TRACE("Releasing child %p.\n", This->wined3d_texture); wined3d_mutex_lock(); - IWineD3DBaseTexture_Release(This->wined3d_texture); + wined3d_texture_decref(This->wined3d_texture); wined3d_mutex_unlock(); /* Release the device last, as it may cause the device to be destroyed. */ @@ -107,7 +107,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_SetPrivateData(LPDIRECT3DCUBETEX iface, debugstr_guid(refguid), pData, SizeOfData, Flags); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetPrivateData(This->wined3d_texture, refguid, pData, SizeOfData, Flags); + hr = wined3d_texture_set_private_data(This->wined3d_texture, refguid, pData, SizeOfData, Flags); wined3d_mutex_unlock(); return hr; @@ -121,7 +121,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_GetPrivateData(LPDIRECT3DCUBETEX iface, debugstr_guid(refguid), pData, pSizeOfData); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_GetPrivateData(This->wined3d_texture, refguid, pData, pSizeOfData); + hr = wined3d_texture_get_private_data(This->wined3d_texture, refguid, pData, pSizeOfData); wined3d_mutex_unlock(); return hr; @@ -134,7 +134,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_FreePrivateData(LPDIRECT3DCUBETE TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid)); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_FreePrivateData(This->wined3d_texture, refguid); + hr = wined3d_texture_free_private_data(This->wined3d_texture, refguid); wined3d_mutex_unlock(); return hr; @@ -147,7 +147,7 @@ static DWORD WINAPI IDirect3DCubeTexture9Impl_SetPriority(LPDIRECT3DCUBETEXTURE9 TRACE("iface %p, priority %u.\n", iface, PriorityNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetPriority(This->wined3d_texture, PriorityNew); + ret = wined3d_texture_set_priority(This->wined3d_texture, PriorityNew); wined3d_mutex_unlock(); return ret; @@ -160,7 +160,7 @@ static DWORD WINAPI IDirect3DCubeTexture9Impl_GetPriority(LPDIRECT3DCUBETEXTURE9 TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetPriority(This->wined3d_texture); + ret = wined3d_texture_get_priority(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -172,7 +172,7 @@ static void WINAPI IDirect3DCubeTexture9Impl_PreLoad(LPDIRECT3DCUBETEXTURE9 ifac TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_PreLoad(This->wined3d_texture); + wined3d_texture_preload(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -183,7 +183,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DCubeTexture9Impl_GetType(LPDIRECT3DCUBETE TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetType(This->wined3d_texture); + ret = wined3d_texture_get_type(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -197,7 +197,7 @@ static DWORD WINAPI IDirect3DCubeTexture9Impl_SetLOD(LPDIRECT3DCUBETEXTURE9 ifac TRACE("iface %p, lod %u.\n", iface, LODNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetLOD(This->wined3d_texture, LODNew); + ret = wined3d_texture_set_lod(This->wined3d_texture, LODNew); wined3d_mutex_unlock(); return ret; @@ -210,7 +210,7 @@ static DWORD WINAPI IDirect3DCubeTexture9Impl_GetLOD(LPDIRECT3DCUBETEXTURE9 ifac TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLOD(This->wined3d_texture); + ret = wined3d_texture_get_lod(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -223,7 +223,7 @@ static DWORD WINAPI IDirect3DCubeTexture9Impl_GetLevelCount(LPDIRECT3DCUBETEXTUR TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLevelCount(This->wined3d_texture); + ret = wined3d_texture_get_level_count(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -236,7 +236,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_SetAutoGenFilterType(LPDIRECT3DC TRACE("iface %p, filter_type %#x.\n", iface, FilterType); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetAutoGenFilterType(This->wined3d_texture, (WINED3DTEXTUREFILTERTYPE)FilterType); + hr = wined3d_texture_set_autogen_filter_type(This->wined3d_texture, (WINED3DTEXTUREFILTERTYPE)FilterType); wined3d_mutex_unlock(); return hr; @@ -249,7 +249,7 @@ static D3DTEXTUREFILTERTYPE WINAPI IDirect3DCubeTexture9Impl_GetAutoGenFilterTyp TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = (D3DTEXTUREFILTERTYPE)IWineD3DBaseTexture_GetAutoGenFilterType(This->wined3d_texture); + ret = (D3DTEXTUREFILTERTYPE)wined3d_texture_get_autogen_filter_type(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -261,7 +261,7 @@ static void WINAPI IDirect3DCubeTexture9Impl_GenerateMipSubLevels(LPDIRECT3DCUBE TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_GenerateMipSubLevels(This->wined3d_texture); + wined3d_texture_generate_mipmaps(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -276,7 +276,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_GetLevelDesc(IDirect3DCubeTextur TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else { @@ -307,8 +307,8 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_GetCubeMapSurface(IDirect3DCubeT TRACE("iface %p, face %#x, level %u, surface %p.\n", iface, face, level, surface); wined3d_mutex_lock(); - sub_resource_idx = IWineD3DBaseTexture_GetLevelCount(texture->wined3d_texture) * face + level; - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + sub_resource_idx = wined3d_texture_get_level_count(texture->wined3d_texture) * face + level; + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) { wined3d_mutex_unlock(); return D3DERR_INVALIDCALL; @@ -333,8 +333,8 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_LockRect(IDirect3DCubeTexture9 * iface, face, level, locked_rect, rect, flags); wined3d_mutex_lock(); - sub_resource_idx = IWineD3DBaseTexture_GetLevelCount(texture->wined3d_texture) * face + level; - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + sub_resource_idx = wined3d_texture_get_level_count(texture->wined3d_texture) * face + level; + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface9_LockRect((IDirect3DSurface9 *)wined3d_resource_get_parent(sub_resource), @@ -355,8 +355,8 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_UnlockRect(IDirect3DCubeTexture9 TRACE("iface %p, face %#x, level %u.\n", iface, face, level); wined3d_mutex_lock(); - sub_resource_idx = IWineD3DBaseTexture_GetLevelCount(texture->wined3d_texture) * face + level; - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, sub_resource_idx))) + sub_resource_idx = wined3d_texture_get_level_count(texture->wined3d_texture) * face + level; + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, sub_resource_idx))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface9_UnlockRect((IDirect3DSurface9 *)wined3d_resource_get_parent(sub_resource)); @@ -376,7 +376,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_AddDirtyRect(IDirect3DCubeTextu wined3d_mutex_lock(); if (!dirty_rect) - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, face, NULL); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, NULL); else { WINED3DBOX dirty_region; @@ -387,7 +387,7 @@ static HRESULT WINAPI IDirect3DCubeTexture9Impl_AddDirtyRect(IDirect3DCubeTextu dirty_region.Bottom = dirty_rect->bottom; dirty_region.Front = 0; dirty_region.Back = 1; - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, face, &dirty_region); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, face, &dirty_region); } wined3d_mutex_unlock(); diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h index 734f9fb7634..6b2670f055e 100644 --- a/dlls/d3d9/d3d9_private.h +++ b/dlls/d3d9/d3d9_private.h @@ -313,12 +313,9 @@ HRESULT indexbuffer_init(IDirect3DIndexBuffer9Impl *buffer, IDirect3DDevice9Impl */ typedef struct IDirect3DBaseTexture9Impl { - /* IUnknown fields */ const IDirect3DBaseTexture9Vtbl *lpVtbl; LONG ref; - - /* IDirect3DResource9 fields */ - IWineD3DBaseTexture *wineD3DBaseTexture; + struct wined3d_texture *wined3d_texture; } IDirect3DBaseTexture9Impl; /* --------------------- */ @@ -332,7 +329,7 @@ typedef struct IDirect3DCubeTexture9Impl { const IDirect3DCubeTexture9Vtbl *lpVtbl; LONG ref; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; IDirect3DDevice9Ex *parentDevice; } IDirect3DCubeTexture9Impl; @@ -350,7 +347,7 @@ typedef struct IDirect3DTexture9Impl { const IDirect3DTexture9Vtbl *lpVtbl; LONG ref; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; IDirect3DDevice9Ex *parentDevice; } IDirect3DTexture9Impl; @@ -368,7 +365,7 @@ typedef struct IDirect3DVolumeTexture9Impl { const IDirect3DVolumeTexture9Vtbl *lpVtbl; LONG ref; - IWineD3DBaseTexture *wined3d_texture; + struct wined3d_texture *wined3d_texture; IDirect3DDevice9Ex *parentDevice; } IDirect3DVolumeTexture9Impl; diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index 3f79b17e567..23b2c6c930a 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -998,14 +998,18 @@ static HRESULT WINAPI IDirect3DDevice9Impl_UpdateSurface(LPDIRECT3DDEVICE9EX i return hr; } -static HRESULT WINAPI IDirect3DDevice9Impl_UpdateTexture(LPDIRECT3DDEVICE9EX iface, IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) { +static HRESULT WINAPI IDirect3DDevice9Impl_UpdateTexture(IDirect3DDevice9Ex *iface, + IDirect3DBaseTexture9 *src_texture, IDirect3DBaseTexture9 *dst_texture) +{ IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface; HRESULT hr; - TRACE("iface %p, src_texture %p, dst_texture %p.\n", iface, pSourceTexture, pDestinationTexture); + TRACE("iface %p, src_texture %p, dst_texture %p.\n", iface, src_texture, dst_texture); wined3d_mutex_lock(); - hr = IWineD3DDevice_UpdateTexture(This->WineD3DDevice, ((IDirect3DBaseTexture9Impl *)pSourceTexture)->wineD3DBaseTexture, ((IDirect3DBaseTexture9Impl *)pDestinationTexture)->wineD3DBaseTexture); + hr = IWineD3DDevice_UpdateTexture(This->WineD3DDevice, + ((IDirect3DBaseTexture9Impl *)src_texture)->wined3d_texture, + ((IDirect3DBaseTexture9Impl *)dst_texture)->wined3d_texture); wined3d_mutex_unlock(); return hr; @@ -1604,7 +1608,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetTexture(IDirect3DDevice9Ex *iface, DWORD Stage, IDirect3DBaseTexture9 **ppTexture) { IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface; - IWineD3DBaseTexture *retTexture = NULL; + struct wined3d_texture *wined3d_texture = NULL; HRESULT hr; TRACE("iface %p, stage %u, texture %p.\n", iface, Stage, ppTexture); @@ -1614,18 +1618,18 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetTexture(IDirect3DDevice9Ex *iface, } wined3d_mutex_lock(); - hr = IWineD3DDevice_GetTexture(This->WineD3DDevice, Stage, &retTexture); - if (SUCCEEDED(hr) && retTexture) + hr = IWineD3DDevice_GetTexture(This->WineD3DDevice, Stage, &wined3d_texture); + if (SUCCEEDED(hr) && wined3d_texture) { - *ppTexture = IWineD3DBaseTexture_GetParent(retTexture); - IWineD3DBaseTexture_AddRef(*ppTexture); - IWineD3DBaseTexture_Release(retTexture); + *ppTexture = wined3d_texture_get_parent(wined3d_texture); + IDirect3DBaseTexture9_AddRef(*ppTexture); + wined3d_texture_decref(wined3d_texture); } else { if (FAILED(hr)) { - WARN("Call to get texture (%d) failed (%p)\n", Stage, retTexture); + WARN("Call to get texture (%u) failed (%p).\n", Stage, wined3d_texture); } *ppTexture = NULL; } @@ -1634,15 +1638,17 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetTexture(IDirect3DDevice9Ex *iface, return hr; } -static HRESULT WINAPI IDirect3DDevice9Impl_SetTexture(LPDIRECT3DDEVICE9EX iface, DWORD Stage, IDirect3DBaseTexture9* pTexture) { - IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface; +static HRESULT WINAPI IDirect3DDevice9Impl_SetTexture(IDirect3DDevice9Ex *iface, + DWORD stage, IDirect3DBaseTexture9 *texture) +{ + IDirect3DDevice9Impl *device = (IDirect3DDevice9Impl *)iface; HRESULT hr; - TRACE("iface %p, stage %u, texture %p.\n", iface, Stage, pTexture); + TRACE("iface %p, stage %u, texture %p.\n", iface, stage, texture); wined3d_mutex_lock(); - hr = IWineD3DDevice_SetTexture(This->WineD3DDevice, Stage, - pTexture==NULL ? NULL:((IDirect3DBaseTexture9Impl *)pTexture)->wineD3DBaseTexture); + hr = IWineD3DDevice_SetTexture(device->WineD3DDevice, stage, + texture ? ((IDirect3DBaseTexture9Impl *)texture)->wined3d_texture : NULL); wined3d_mutex_unlock(); return hr; diff --git a/dlls/d3d9/texture.c b/dlls/d3d9/texture.c index 8acb0ace685..003f509248d 100644 --- a/dlls/d3d9/texture.c +++ b/dlls/d3d9/texture.c @@ -55,7 +55,7 @@ static ULONG WINAPI IDirect3DTexture9Impl_AddRef(LPDIRECT3DTEXTURE9 iface) { { IDirect3DDevice9Ex_AddRef(This->parentDevice); wined3d_mutex_lock(); - IWineD3DBaseTexture_AddRef(This->wined3d_texture); + wined3d_texture_incref(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -72,7 +72,7 @@ static ULONG WINAPI IDirect3DTexture9Impl_Release(LPDIRECT3DTEXTURE9 iface) { IDirect3DDevice9Ex *parentDevice = This->parentDevice; wined3d_mutex_lock(); - IWineD3DBaseTexture_Release(This->wined3d_texture); + wined3d_texture_decref(This->wined3d_texture); wined3d_mutex_unlock(); /* Release the device last, as it may cause the device to be destroyed. */ @@ -104,7 +104,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_SetPrivateData(LPDIRECT3DTEXTURE9 if iface, debugstr_guid(refguid), pData, SizeOfData, Flags); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetPrivateData(This->wined3d_texture, refguid, pData, SizeOfData, Flags); + hr = wined3d_texture_set_private_data(This->wined3d_texture, refguid, pData, SizeOfData, Flags); wined3d_mutex_unlock(); return hr; @@ -118,7 +118,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_GetPrivateData(LPDIRECT3DTEXTURE9 if iface, debugstr_guid(refguid), pData, pSizeOfData); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_GetPrivateData(This->wined3d_texture, refguid, pData, pSizeOfData); + hr = wined3d_texture_get_private_data(This->wined3d_texture, refguid, pData, pSizeOfData); wined3d_mutex_unlock(); return hr; @@ -131,7 +131,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_FreePrivateData(LPDIRECT3DTEXTURE9 i TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid)); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_FreePrivateData(This->wined3d_texture, refguid); + hr = wined3d_texture_free_private_data(This->wined3d_texture, refguid); wined3d_mutex_unlock(); return hr; @@ -144,7 +144,7 @@ static DWORD WINAPI IDirect3DTexture9Impl_SetPriority(LPDIRECT3DTEXTURE9 iface, TRACE("iface %p, priority %u.\n", iface, PriorityNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetPriority(This->wined3d_texture, PriorityNew); + ret = wined3d_texture_set_priority(This->wined3d_texture, PriorityNew); wined3d_mutex_unlock(); return ret; @@ -157,7 +157,7 @@ static DWORD WINAPI IDirect3DTexture9Impl_GetPriority(LPDIRECT3DTEXTURE9 iface) TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetPriority(This->wined3d_texture); + ret = wined3d_texture_get_priority(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -169,7 +169,7 @@ static void WINAPI IDirect3DTexture9Impl_PreLoad(LPDIRECT3DTEXTURE9 iface) { TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_PreLoad(This->wined3d_texture); + wined3d_texture_preload(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -180,7 +180,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DTexture9Impl_GetType(LPDIRECT3DTEXTURE9 i TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetType(This->wined3d_texture); + ret = wined3d_texture_get_type(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -194,7 +194,7 @@ static DWORD WINAPI IDirect3DTexture9Impl_SetLOD(LPDIRECT3DTEXTURE9 iface, DWORD TRACE("iface %p, lod %u.\n", iface, LODNew); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_SetLOD(This->wined3d_texture, LODNew); + ret = wined3d_texture_set_lod(This->wined3d_texture, LODNew); wined3d_mutex_unlock(); return ret; @@ -207,7 +207,7 @@ static DWORD WINAPI IDirect3DTexture9Impl_GetLOD(LPDIRECT3DTEXTURE9 iface) { TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLOD(This->wined3d_texture); + ret = wined3d_texture_get_lod(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -220,7 +220,7 @@ static DWORD WINAPI IDirect3DTexture9Impl_GetLevelCount(LPDIRECT3DTEXTURE9 iface TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = IWineD3DBaseTexture_GetLevelCount(This->wined3d_texture); + ret = wined3d_texture_get_level_count(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -233,7 +233,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_SetAutoGenFilterType(LPDIRECT3DTEXTU TRACE("iface %p, filter_type %#x.\n", iface, FilterType); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetAutoGenFilterType(This->wined3d_texture, (WINED3DTEXTUREFILTERTYPE)FilterType); + hr = wined3d_texture_set_autogen_filter_type(This->wined3d_texture, (WINED3DTEXTUREFILTERTYPE)FilterType); wined3d_mutex_unlock(); return hr; @@ -246,7 +246,7 @@ static D3DTEXTUREFILTERTYPE WINAPI IDirect3DTexture9Impl_GetAutoGenFilterType(LP TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - ret = (D3DTEXTUREFILTERTYPE)IWineD3DBaseTexture_GetAutoGenFilterType(This->wined3d_texture); + ret = (D3DTEXTUREFILTERTYPE)wined3d_texture_get_autogen_filter_type(This->wined3d_texture); wined3d_mutex_unlock(); return ret; @@ -258,7 +258,7 @@ static void WINAPI IDirect3DTexture9Impl_GenerateMipSubLevels(LPDIRECT3DTEXTURE9 TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_GenerateMipSubLevels(This->wined3d_texture); + wined3d_texture_generate_mipmaps(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -272,7 +272,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_GetLevelDesc(IDirect3DTexture9 *ifac TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else { @@ -302,7 +302,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_GetSurfaceLevel(IDirect3DTexture9 *i TRACE("iface %p, level %u, surface %p.\n", iface, level, surface); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) { wined3d_mutex_unlock(); return D3DERR_INVALIDCALL; @@ -326,7 +326,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_LockRect(IDirect3DTexture9 *iface, iface, level, locked_rect, rect, flags); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface9_LockRect((IDirect3DSurface9 *)wined3d_resource_get_parent(sub_resource), @@ -345,7 +345,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_UnlockRect(IDirect3DTexture9 *iface, TRACE("iface %p, level %u.\n", iface, level); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DSurface9_UnlockRect((IDirect3DSurface9 *)wined3d_resource_get_parent(sub_resource)); @@ -364,7 +364,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_AddDirtyRect(IDirect3DTexture9 *ifac wined3d_mutex_lock(); if (!dirty_rect) - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, 0, NULL); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, NULL); else { WINED3DBOX dirty_region; @@ -375,7 +375,7 @@ static HRESULT WINAPI IDirect3DTexture9Impl_AddDirtyRect(IDirect3DTexture9 *ifac dirty_region.Bottom = dirty_rect->bottom; dirty_region.Front = 0; dirty_region.Back = 1; - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, 0, &dirty_region); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, &dirty_region); } wined3d_mutex_unlock(); diff --git a/dlls/d3d9/volumetexture.c b/dlls/d3d9/volumetexture.c index 8de58507415..3279fa89f23 100644 --- a/dlls/d3d9/volumetexture.c +++ b/dlls/d3d9/volumetexture.c @@ -54,7 +54,7 @@ static ULONG WINAPI IDirect3DVolumeTexture9Impl_AddRef(LPDIRECT3DVOLUMETEXTURE9 { IDirect3DDevice9Ex_AddRef(This->parentDevice); wined3d_mutex_lock(); - IWineD3DBaseTexture_AddRef(This->wined3d_texture); + wined3d_texture_incref(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -71,7 +71,7 @@ static ULONG WINAPI IDirect3DVolumeTexture9Impl_Release(LPDIRECT3DVOLUMETEXTURE9 IDirect3DDevice9Ex *parentDevice = This->parentDevice; wined3d_mutex_lock(); - IWineD3DBaseTexture_Release(This->wined3d_texture); + wined3d_texture_decref(This->wined3d_texture); wined3d_mutex_unlock(); /* Release the device last, as it may cause the device to be destroyed. */ @@ -103,7 +103,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_SetPrivateData(LPDIRECT3DVOLUM iface, debugstr_guid(refguid), pData, SizeOfData, Flags); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetPrivateData(This->wined3d_texture, refguid, pData, SizeOfData, Flags); + hr = wined3d_texture_set_private_data(This->wined3d_texture, refguid, pData, SizeOfData, Flags); wined3d_mutex_unlock(); return hr; @@ -117,7 +117,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_GetPrivateData(LPDIRECT3DVOLUM iface, debugstr_guid(refguid), pData, pSizeOfData); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_GetPrivateData(This->wined3d_texture, refguid, pData, pSizeOfData); + hr = wined3d_texture_get_private_data(This->wined3d_texture, refguid, pData, pSizeOfData); wined3d_mutex_unlock(); return hr; @@ -130,7 +130,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_FreePrivateData(LPDIRECT3DVOLU TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid)); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_FreePrivateData(This->wined3d_texture, refguid); + hr = wined3d_texture_free_private_data(This->wined3d_texture, refguid); wined3d_mutex_unlock(); return hr; @@ -143,7 +143,7 @@ static DWORD WINAPI IDirect3DVolumeTexture9Impl_SetPriority(LPDIRECT3DVOLUMETEXT TRACE("iface %p, priority %u.\n", iface, PriorityNew); wined3d_mutex_lock(); - priority = IWineD3DBaseTexture_SetPriority(This->wined3d_texture, PriorityNew); + priority = wined3d_texture_set_priority(This->wined3d_texture, PriorityNew); wined3d_mutex_unlock(); return priority; @@ -156,7 +156,7 @@ static DWORD WINAPI IDirect3DVolumeTexture9Impl_GetPriority(LPDIRECT3DVOLUMETEXT TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - priority = IWineD3DBaseTexture_GetPriority(This->wined3d_texture); + priority = wined3d_texture_get_priority(This->wined3d_texture); wined3d_mutex_unlock(); return priority; @@ -168,7 +168,7 @@ static void WINAPI IDirect3DVolumeTexture9Impl_PreLoad(LPDIRECT3DVOLUMETEXTURE9 TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_PreLoad(This->wined3d_texture); + wined3d_texture_preload(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -179,7 +179,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DVolumeTexture9Impl_GetType(LPDIRECT3DVOLU TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - type = IWineD3DBaseTexture_GetType(This->wined3d_texture); + type = wined3d_texture_get_type(This->wined3d_texture); wined3d_mutex_unlock(); return type; @@ -193,7 +193,7 @@ static DWORD WINAPI IDirect3DVolumeTexture9Impl_SetLOD(LPDIRECT3DVOLUMETEXTURE9 TRACE("iface %p, lod %u.\n", iface, LODNew); wined3d_mutex_lock(); - lod = IWineD3DBaseTexture_SetLOD(This->wined3d_texture, LODNew); + lod = wined3d_texture_set_lod(This->wined3d_texture, LODNew); wined3d_mutex_unlock(); return lod; @@ -206,7 +206,7 @@ static DWORD WINAPI IDirect3DVolumeTexture9Impl_GetLOD(LPDIRECT3DVOLUMETEXTURE9 TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - lod = IWineD3DBaseTexture_GetLOD(This->wined3d_texture); + lod = wined3d_texture_get_lod(This->wined3d_texture); wined3d_mutex_unlock(); return lod; @@ -219,7 +219,7 @@ static DWORD WINAPI IDirect3DVolumeTexture9Impl_GetLevelCount(LPDIRECT3DVOLUMETE TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - level_count = IWineD3DBaseTexture_GetLevelCount(This->wined3d_texture); + level_count = wined3d_texture_get_level_count(This->wined3d_texture); wined3d_mutex_unlock(); return level_count; @@ -232,7 +232,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_SetAutoGenFilterType(LPDIRECT3 TRACE("iface %p, filter_type %#x.\n", iface, FilterType); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_SetAutoGenFilterType(This->wined3d_texture, (WINED3DTEXTUREFILTERTYPE) FilterType); + hr = wined3d_texture_set_autogen_filter_type(This->wined3d_texture, (WINED3DTEXTUREFILTERTYPE)FilterType); wined3d_mutex_unlock(); return hr; @@ -245,7 +245,7 @@ static D3DTEXTUREFILTERTYPE WINAPI IDirect3DVolumeTexture9Impl_GetAutoGenFilterT TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - filter_type = (D3DTEXTUREFILTERTYPE)IWineD3DBaseTexture_GetAutoGenFilterType(This->wined3d_texture); + filter_type = (D3DTEXTUREFILTERTYPE)wined3d_texture_get_autogen_filter_type(This->wined3d_texture); wined3d_mutex_unlock(); return filter_type; @@ -257,7 +257,7 @@ static void WINAPI IDirect3DVolumeTexture9Impl_GenerateMipSubLevels(LPDIRECT3DVO TRACE("iface %p.\n", iface); wined3d_mutex_lock(); - IWineD3DBaseTexture_GenerateMipSubLevels(This->wined3d_texture); + wined3d_texture_generate_mipmaps(This->wined3d_texture); wined3d_mutex_unlock(); } @@ -271,7 +271,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_GetLevelDesc(IDirect3DVolumeTe TRACE("iface %p, level %u, desc %p.\n", iface, level, desc); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else { @@ -300,7 +300,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_GetVolumeLevel(IDirect3DVolume TRACE("iface %p, level %u, volume %p.\n", iface, level, volume); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) { wined3d_mutex_unlock(); return D3DERR_INVALIDCALL; @@ -324,7 +324,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_LockBox(IDirect3DVolumeTexture iface, level, locked_box, box, flags); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DVolume9_LockBox((IDirect3DVolume9 *)wined3d_resource_get_parent(sub_resource), @@ -343,7 +343,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_UnlockBox(IDirect3DVolumeTextu TRACE("iface %p, level %u.\n", iface, level); wined3d_mutex_lock(); - if (!(sub_resource = IWineD3DBaseTexture_GetSubResource(texture->wined3d_texture, level))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture->wined3d_texture, level))) hr = D3DERR_INVALIDCALL; else hr = IDirect3DVolume9_UnlockBox((IDirect3DVolume9 *)wined3d_resource_get_parent(sub_resource)); @@ -361,7 +361,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture9Impl_AddDirtyBox(IDirect3DVolumeTex TRACE("iface %p, dirty_box %p.\n", iface, dirty_box); wined3d_mutex_lock(); - hr = IWineD3DBaseTexture_AddDirtyRegion(texture->wined3d_texture, 0, (const WINED3DBOX *)dirty_box); + hr = wined3d_texture_add_dirty_region(texture->wined3d_texture, 0, (const WINED3DBOX *)dirty_box); wined3d_mutex_unlock(); return hr; diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index f6c6c6f3243..5cc57435f8c 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -3438,12 +3438,12 @@ static HRESULT CreateSurface(IDirectDrawImpl *ddraw, DDSURFACEDESC2 *DDSD, if(desc2.ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP) { hr = IWineD3DDevice_CreateCubeTexture(ddraw->wineD3DDevice, DDSD->dwWidth, levels, 0, - Format, Pool, object, &ddraw_null_wined3d_parent_ops, &object->wineD3DTexture); + Format, Pool, object, &ddraw_null_wined3d_parent_ops, &object->wined3d_texture); } else { hr = IWineD3DDevice_CreateTexture(ddraw->wineD3DDevice, DDSD->dwWidth, DDSD->dwHeight, - levels, 0, Format, Pool, object, &ddraw_null_wined3d_parent_ops, &object->wineD3DTexture); + levels, 0, Format, Pool, object, &ddraw_null_wined3d_parent_ops, &object->wined3d_texture); } ddraw->tex_root = NULL; } diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h index 7df059f810f..720f819300e 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -183,7 +183,7 @@ struct IDirectDrawSurfaceImpl /* Connections to other Objects */ IDirectDrawImpl *ddraw; IWineD3DSurface *WineD3DSurface; - IWineD3DBaseTexture *wineD3DTexture; + struct wined3d_texture *wined3d_texture; IWineD3DSwapChain *wineD3DSwapChain; /* This implementation handles attaching surfaces to other surfaces */ diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index 7d58e01dece..54e549f787b 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -2437,9 +2437,8 @@ IDirect3DDeviceImpl_3_GetRenderState(IDirect3DDevice3 *iface, case D3DRENDERSTATE_TEXTUREHANDLE: { /* This state is wrapped to SetTexture in SetRenderState, so - * it has to be wrapped to GetTexture here - */ - IWineD3DBaseTexture *tex = NULL; + * it has to be wrapped to GetTexture here. */ + struct wined3d_texture *tex = NULL; *lpdwRenderState = 0; EnterCriticalSection(&ddraw_cs); @@ -2449,9 +2448,9 @@ IDirect3DDeviceImpl_3_GetRenderState(IDirect3DDevice3 *iface, { /* The parent of the texture is the IDirectDrawSurface7 * interface of the ddraw surface. */ - IDirectDrawSurfaceImpl *parent = IWineD3DBaseTexture_GetParent(tex); + IDirectDrawSurfaceImpl *parent = wined3d_texture_get_parent(tex); if (parent) *lpdwRenderState = parent->Handle; - IWineD3DBaseTexture_Release(tex); + wined3d_texture_decref(tex); } LeaveCriticalSection(&ddraw_cs); @@ -2494,9 +2493,9 @@ IDirect3DDeviceImpl_3_GetRenderState(IDirect3DDevice3 *iface, } else { + struct wined3d_texture *tex = NULL; HRESULT hr; BOOL tex_alpha = FALSE; - IWineD3DBaseTexture *tex = NULL; DDPIXELFORMAT ddfmt; hr = IWineD3DDevice_GetTexture(This->wineD3DDevice, 0, &tex); @@ -2505,7 +2504,7 @@ IDirect3DDeviceImpl_3_GetRenderState(IDirect3DDevice3 *iface, { struct wined3d_resource *sub_resource; - if ((sub_resource = IWineD3DBaseTexture_GetSubResource(tex, 0))) + if ((sub_resource = wined3d_texture_get_sub_resource(tex, 0))) { struct wined3d_resource_desc desc; @@ -2515,7 +2514,7 @@ IDirect3DDeviceImpl_3_GetRenderState(IDirect3DDevice3 *iface, if (ddfmt.u5.dwRGBAlphaBitMask) tex_alpha = TRUE; } - IWineD3DBaseTexture_Release(tex); + wined3d_texture_decref(tex); } if (!(colorop == WINED3DTOP_MODULATE && colorarg1 == WINED3DTA_TEXTURE && colorarg2 == WINED3DTA_CURRENT && @@ -2804,8 +2803,8 @@ IDirect3DDeviceImpl_3_SetRenderState(IDirect3DDevice3 *iface, { case D3DTBLEND_MODULATE: { + struct wined3d_texture *tex = NULL; BOOL tex_alpha = FALSE; - IWineD3DBaseTexture *tex = NULL; DDPIXELFORMAT ddfmt; hr = IWineD3DDevice_GetTexture(This->wineD3DDevice, 0, &tex); @@ -2814,7 +2813,7 @@ IDirect3DDeviceImpl_3_SetRenderState(IDirect3DDevice3 *iface, { struct wined3d_resource *sub_resource; - if ((sub_resource = IWineD3DBaseTexture_GetSubResource(tex, 0))) + if ((sub_resource = wined3d_texture_get_sub_resource(tex, 0))) { struct wined3d_resource_desc desc; @@ -2824,7 +2823,7 @@ IDirect3DDeviceImpl_3_SetRenderState(IDirect3DDevice3 *iface, if (ddfmt.u5.dwRGBAlphaBitMask) tex_alpha = TRUE; } - IWineD3DBaseTexture_Release(tex); + wined3d_texture_decref(tex); } if (tex_alpha) @@ -4430,7 +4429,7 @@ IDirect3DDeviceImpl_7_GetTexture(IDirect3DDevice7 *iface, IDirectDrawSurface7 **Texture) { IDirect3DDeviceImpl *This = (IDirect3DDeviceImpl *)iface; - IWineD3DBaseTexture *Surf; + struct wined3d_texture *wined3d_texture; HRESULT hr; TRACE("iface %p, stage %u, texture %p.\n", iface, Stage, Texture); @@ -4442,15 +4441,15 @@ IDirect3DDeviceImpl_7_GetTexture(IDirect3DDevice7 *iface, } EnterCriticalSection(&ddraw_cs); - hr = IWineD3DDevice_GetTexture(This->wineD3DDevice, Stage, &Surf); - if( (hr != D3D_OK) || (!Surf) ) + hr = IWineD3DDevice_GetTexture(This->wineD3DDevice, Stage, &wined3d_texture); + if (FAILED(hr) || !wined3d_texture) { *Texture = NULL; LeaveCriticalSection(&ddraw_cs); return hr; } - *Texture = IWineD3DBaseTexture_GetParent(Surf); + *Texture = wined3d_texture_get_parent(wined3d_texture); IDirectDrawSurface7_AddRef(*Texture); LeaveCriticalSection(&ddraw_cs); return hr; @@ -4526,8 +4525,7 @@ IDirect3DDeviceImpl_7_SetTexture(IDirect3DDevice7 *iface, /* Texture may be NULL here */ EnterCriticalSection(&ddraw_cs); hr = IWineD3DDevice_SetTexture(This->wineD3DDevice, - Stage, - surf ? surf->wineD3DTexture : NULL); + Stage, surf ? surf->wined3d_texture : NULL); LeaveCriticalSection(&ddraw_cs); return hr; } @@ -4578,8 +4576,8 @@ IDirect3DDeviceImpl_3_SetTexture(IDirect3DDevice3 *iface, { /* This fixup is required by the way D3DTBLEND_MODULATE maps to texture stage states. See IDirect3DDeviceImpl_3_SetRenderState for details. */ + struct wined3d_texture *tex = NULL; BOOL tex_alpha = FALSE; - IWineD3DBaseTexture *tex = NULL; DDPIXELFORMAT ddfmt; HRESULT result; @@ -4589,7 +4587,7 @@ IDirect3DDeviceImpl_3_SetTexture(IDirect3DDevice3 *iface, { struct wined3d_resource *sub_resource; - if ((sub_resource = IWineD3DBaseTexture_GetSubResource(tex, 0))) + if ((sub_resource = wined3d_texture_get_sub_resource(tex, 0))) { struct wined3d_resource_desc desc; @@ -4599,7 +4597,7 @@ IDirect3DDeviceImpl_3_SetTexture(IDirect3DDevice3 *iface, if (ddfmt.u5.dwRGBAlphaBitMask) tex_alpha = TRUE; } - IWineD3DBaseTexture_Release(tex); + wined3d_texture_decref(tex); } /* Arg 1/2 are already set to WINED3DTA_TEXTURE/WINED3DTA_CURRENT in case of D3DTBLEND_MODULATE */ diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index d152a022156..be32ce9bd63 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -352,10 +352,9 @@ static ULONG WINAPI ddraw_surface7_Release(IDirectDrawSurface7 *iface) * of the sublevels, which destroys the WineD3DSurfaces. * Set the surfaces to NULL to avoid destroying them again later */ - if(This->wineD3DTexture) - { - IWineD3DBaseTexture_Release(This->wineD3DTexture); - } + if (This->wined3d_texture) + wined3d_texture_decref(This->wined3d_texture); + /* If it's the RenderTarget, destroy the d3ddevice */ else if(This->wineD3DSwapChain) { @@ -2352,15 +2351,14 @@ static HRESULT WINAPI ddraw_surface7_SetLOD(IDirectDrawSurface7 *iface, DWORD Ma return DDERR_INVALIDOBJECT; } - if(!This->wineD3DTexture) + if (!This->wined3d_texture) { ERR("(%p) The DirectDraw texture has no WineD3DTexture!\n", This); LeaveCriticalSection(&ddraw_cs); return DDERR_INVALIDOBJECT; } - hr = IWineD3DBaseTexture_SetLOD(This->wineD3DTexture, - MaxLOD); + hr = wined3d_texture_set_lod(This->wined3d_texture, MaxLOD); LeaveCriticalSection(&ddraw_cs); return hr; } @@ -2395,7 +2393,7 @@ static HRESULT WINAPI ddraw_surface7_GetLOD(IDirectDrawSurface7 *iface, DWORD *M return DDERR_INVALIDOBJECT; } - *MaxLOD = IWineD3DBaseTexture_GetLOD(This->wineD3DTexture); + *MaxLOD = wined3d_texture_get_lod(This->wined3d_texture); LeaveCriticalSection(&ddraw_cs); return DD_OK; } diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 499c3d10066..8f03b2fdc77 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -128,13 +128,12 @@ static void context_apply_attachment_filter_states(const struct wined3d_context { case SFLAG_INTEXTURE: case SFLAG_INSRGBTEX: - gl_tex = basetexture_get_gl_texture(texture, + gl_tex = wined3d_texture_get_gl_texture(texture, context->gl_info, location == SFLAG_INSRGBTEX); break; default: ERR("Unsupported location %s (%#x).\n", debug_surflocation(location), location); - IWineD3DBaseTexture_Release((IWineD3DBaseTexture *)texture); return; } diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index c8d05de5f1b..e16c22a2b61 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -4496,8 +4496,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTexture(IWineD3DDevice *iface, { TRACE("Recording... not performing anything\n"); - if (texture) IWineD3DBaseTexture_AddRef(texture); - if (prev) IWineD3DBaseTexture_Release(prev); + if (texture) wined3d_texture_incref(texture); + if (prev) wined3d_texture_decref(prev); return WINED3D_OK; } @@ -4508,7 +4508,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTexture(IWineD3DDevice *iface, LONG bind_count = InterlockedIncrement(&t->baseTexture.bindCount); GLenum dimensions = t->baseTexture.target; - IWineD3DBaseTexture_AddRef(texture); + wined3d_texture_incref(texture); if (!prev || dimensions != ((IWineD3DBaseTextureImpl *)prev)->baseTexture.target) IWineD3DDeviceImpl_MarkStateDirty(This, STATE_PIXELSHADER); @@ -4530,7 +4530,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTexture(IWineD3DDevice *iface, IWineD3DBaseTextureImpl *t = (IWineD3DBaseTextureImpl *)prev; LONG bind_count = InterlockedDecrement(&t->baseTexture.bindCount); - IWineD3DBaseTexture_Release(prev); + wined3d_texture_decref(prev); if (!texture && stage < gl_info->limits.texture_stages) { @@ -4579,7 +4579,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetTexture(IWineD3DDevice *iface, DWORD *ppTexture = (IWineD3DBaseTexture *)This->stateBlock->state.textures[Stage]; if (*ppTexture) - IWineD3DBaseTexture_AddRef(*ppTexture); + wined3d_texture_incref(*ppTexture); TRACE("(%p) : Returning %p\n", This, *ppTexture); @@ -5108,16 +5108,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_UpdateTexture(IWineD3DDevice *iface, } /* Verify that the source and destination textures are the same type. */ - type = IWineD3DBaseTexture_GetType(src_texture); - if (IWineD3DBaseTexture_GetType(dst_texture) != type) + type = wined3d_texture_get_type(src_texture); + if (wined3d_texture_get_type(dst_texture) != type) { WARN("Source and destination have different types, returning WINED3DERR_INVALIDCALL.\n"); return WINED3DERR_INVALIDCALL; } /* Check that both textures have the identical numbers of levels. */ - level_count = IWineD3DBaseTexture_GetLevelCount(src_texture); - if (IWineD3DBaseTexture_GetLevelCount(dst_texture) != level_count) + level_count = wined3d_texture_get_level_count(src_texture); + if (wined3d_texture_get_level_count(dst_texture) != level_count) { WARN("Source and destination have different level counts, returning WINED3DERR_INVALIDCALL.\n"); return WINED3DERR_INVALIDCALL; @@ -5137,10 +5137,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_UpdateTexture(IWineD3DDevice *iface, for (i = 0; i < level_count; ++i) { - src_surface = (IWineD3DSurface *)surface_from_resource(basetexture_get_sub_resource( - (IWineD3DBaseTextureImpl *)src_texture, i)); - dst_surface = (IWineD3DSurface *)surface_from_resource(basetexture_get_sub_resource( - (IWineD3DBaseTextureImpl *)dst_texture, i)); + src_surface = (IWineD3DSurface *)surface_from_resource(wined3d_texture_get_sub_resource( + src_texture, i)); + dst_surface = (IWineD3DSurface *)surface_from_resource(wined3d_texture_get_sub_resource( + dst_texture, i)); hr = IWineD3DDevice_UpdateSurface(iface, src_surface, NULL, dst_surface, NULL); if (FAILED(hr)) { @@ -5158,10 +5158,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_UpdateTexture(IWineD3DDevice *iface, for (i = 0; i < level_count * 6; ++i) { - src_surface = (IWineD3DSurface *)surface_from_resource(basetexture_get_sub_resource( - (IWineD3DBaseTextureImpl *)src_texture, i)); - dst_surface = (IWineD3DSurface *)surface_from_resource(basetexture_get_sub_resource( - (IWineD3DBaseTextureImpl *)dst_texture, i)); + src_surface = (IWineD3DSurface *)surface_from_resource(wined3d_texture_get_sub_resource( + src_texture, i)); + dst_surface = (IWineD3DSurface *)surface_from_resource(wined3d_texture_get_sub_resource( + dst_texture, i)); hr = IWineD3DDevice_UpdateSurface(iface, src_surface, NULL, dst_surface, NULL); if (FAILED(hr)) { @@ -5179,10 +5179,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_UpdateTexture(IWineD3DDevice *iface, for (i = 0; i < level_count; ++i) { - src_volume = (IWineD3DVolume *)volume_from_resource(basetexture_get_sub_resource( - (IWineD3DBaseTextureImpl *)src_texture, i)); - dst_volume = (IWineD3DVolume *)volume_from_resource(basetexture_get_sub_resource( - (IWineD3DBaseTextureImpl *)dst_texture, i)); + src_volume = (IWineD3DVolume *)volume_from_resource(wined3d_texture_get_sub_resource(src_texture, i)); + dst_volume = (IWineD3DVolume *)volume_from_resource(wined3d_texture_get_sub_resource(dst_texture, i)); hr = IWineD3DDeviceImpl_UpdateVolume(iface, src_volume, dst_volume); if (FAILED(hr)) { @@ -6708,7 +6706,7 @@ void device_resource_released(struct IWineD3DDeviceImpl *device, struct wined3d_ case WINED3DRTYPE_VOLUMETEXTURE: for (i = 0; i < MAX_COMBINED_SAMPLERS; ++i) { - IWineD3DBaseTextureImpl *texture = basetexture_from_resource(resource); + struct wined3d_texture *texture = wined3d_texture_from_resource(resource); if (device->stateBlock && device->stateBlock->state.textures[i] == texture) { diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 81ac09d1819..8885ba68b4f 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -3592,7 +3592,7 @@ static void sampler_texmatrix(DWORD state, struct wined3d_stateblock *stateblock if(!texture) return; /* The fixed function np2 texture emulation uses the texture matrix to fix up the coordinates - * basetexture_apply_state_changes() multiplies the set matrix with a fixup matrix. Before the + * wined3d_texture_apply_state_changes() multiplies the set matrix with a fixup matrix. Before the * scaling is reapplied or removed, the texture matrix has to be reapplied * * The mapped stage is already active because the sampler() function below, which is part of the @@ -3647,8 +3647,7 @@ static void sampler(DWORD state_id, struct wined3d_stateblock *stateblock, struc BOOL srgb = state->sampler_states[sampler][WINED3DSAMP_SRGBTEXTURE]; texture->baseTexture.texture_ops->texture_bind(texture, gl_info, srgb); - basetexture_apply_state_changes(texture, - state->sampler_states[sampler], gl_info); + wined3d_texture_apply_state_changes(texture, state->sampler_states[sampler], gl_info); if (gl_info->supported[EXT_TEXTURE_LOD_BIAS]) { diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index 30f5d370b12..44f30a1960d 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -482,7 +482,7 @@ ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock) for (counter = 0; counter < MAX_COMBINED_SAMPLERS; counter++) { if (stateblock->state.textures[counter]) - IWineD3DBaseTexture_Release((IWineD3DBaseTexture *)stateblock->state.textures[counter]); + wined3d_texture_decref(stateblock->state.textures[counter]); } for (counter = 0; counter < MAX_STREAMS; ++counter) @@ -840,9 +840,9 @@ HRESULT CDECL wined3d_stateblock_capture(struct wined3d_stateblock *stateblock) i, src_state->textures[i], stateblock->state.textures[i]); if (src_state->textures[i]) - IWineD3DBaseTexture_AddRef((IWineD3DBaseTexture *)src_state->textures[i]); + wined3d_texture_incref(src_state->textures[i]); if (stateblock->state.textures[i]) - IWineD3DBaseTexture_Release((IWineD3DBaseTexture *)stateblock->state.textures[i]); + wined3d_texture_decref(stateblock->state.textures[i]); stateblock->state.textures[i] = src_state->textures[i]; } diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 051bedb6e67..bdb0e489b61 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1212,11 +1212,11 @@ void surface_add_dirty_rect(IWineD3DSurfaceImpl *surface, const WINED3DBOX *dirt surface->dirtyRect.bottom = surface->resource.height; } - /* if the container is a basetexture then mark it dirty. */ + /* if the container is a texture then mark it dirty. */ if (surface->container.type == WINED3D_CONTAINER_TEXTURE) { TRACE("Passing to container.\n"); - basetexture_set_dirty(surface->container.u.texture, TRUE); + wined3d_texture_set_dirty(surface->container.u.texture, TRUE); } } @@ -4340,7 +4340,7 @@ void surface_modify_location(IWineD3DSurfaceImpl *surface, DWORD flag, BOOL pers if (surface->container.type == WINED3D_CONTAINER_TEXTURE) { TRACE("Passing to container.\n"); - basetexture_set_dirty(surface->container.u.texture, TRUE); + wined3d_texture_set_dirty(surface->container.u.texture, TRUE); } } surface->flags &= ~SFLAG_LOCATIONS; @@ -4362,7 +4362,7 @@ void surface_modify_location(IWineD3DSurfaceImpl *surface, DWORD flag, BOOL pers if (surface->container.type == WINED3D_CONTAINER_TEXTURE) { TRACE("Passing to container\n"); - basetexture_set_dirty(surface->container.u.texture, TRUE); + wined3d_texture_set_dirty(surface->container.u.texture, TRUE); } } surface->flags &= ~flag; diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 960e1347663..67a3578cc79 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -25,7 +25,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d_texture); -static HRESULT basetexture_init(IWineD3DBaseTextureImpl *texture, const struct wined3d_texture_ops *texture_ops, +static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struct wined3d_texture_ops *texture_ops, UINT layer_count, UINT level_count, WINED3DRESOURCETYPE resource_type, IWineD3DDeviceImpl *device, DWORD usage, const struct wined3d_format *format, WINED3DPOOL pool, void *parent, const struct wined3d_parent_ops *parent_ops, const struct wined3d_resource_ops *resource_ops) @@ -83,7 +83,7 @@ static void gltexture_delete(struct gl_texture *tex) tex->name = 0; } -static void basetexture_unload(IWineD3DBaseTextureImpl *texture) +static void wined3d_texture_unload(struct wined3d_texture *texture) { IWineD3DDeviceImpl *device = texture->resource.device; struct wined3d_context *context = NULL; @@ -101,12 +101,12 @@ static void basetexture_unload(IWineD3DBaseTextureImpl *texture) if (context) context_release(context); - basetexture_set_dirty(texture, TRUE); + wined3d_texture_set_dirty(texture, TRUE); resource_unload(&texture->resource); } -static void basetexture_cleanup(IWineD3DBaseTextureImpl *texture) +static void wined3d_texture_cleanup(struct wined3d_texture *texture) { UINT sub_count = texture->baseTexture.level_count * texture->baseTexture.layer_count; UINT i; @@ -121,32 +121,19 @@ static void basetexture_cleanup(IWineD3DBaseTextureImpl *texture) texture->baseTexture.texture_ops->texture_sub_resource_cleanup(sub_resource); } - basetexture_unload(texture); + wined3d_texture_unload(texture); HeapFree(GetProcessHeap(), 0, texture->baseTexture.sub_resources); resource_cleanup(&texture->resource); } -struct wined3d_resource *basetexture_get_sub_resource(IWineD3DBaseTextureImpl *texture, UINT sub_resource_idx) -{ - UINT sub_count = texture->baseTexture.level_count * texture->baseTexture.layer_count; - - if (sub_resource_idx >= sub_count) - { - WARN("sub_resource_idx %u >= sub_count %u.\n", sub_resource_idx, sub_count); - return NULL; - } - - return texture->baseTexture.sub_resources[sub_resource_idx]; -} - -void basetexture_set_dirty(IWineD3DBaseTextureImpl *texture, BOOL dirty) +void wined3d_texture_set_dirty(struct wined3d_texture *texture, BOOL dirty) { texture->baseTexture.texture_rgb.dirty = dirty; texture->baseTexture.texture_srgb.dirty = dirty; } /* Context activation is done by the caller. */ -static HRESULT basetexture_bind(IWineD3DBaseTextureImpl *texture, +static HRESULT wined3d_texture_bind(struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info, BOOL srgb, BOOL *set_surface_desc) { struct gl_texture *gl_tex; @@ -157,7 +144,7 @@ static HRESULT basetexture_bind(IWineD3DBaseTextureImpl *texture, TRACE("texture %p, srgb %#x, set_surface_desc %p.\n", texture, srgb, set_surface_desc); texture->baseTexture.is_srgb = srgb; /* sRGB mode cache for preload() calls outside drawprim. */ - gl_tex = basetexture_get_gl_texture(texture, gl_info, srgb); + gl_tex = wined3d_texture_get_gl_texture(texture, gl_info, srgb); target = texture->baseTexture.target; ENTER_GL(); @@ -190,7 +177,7 @@ static HRESULT basetexture_bind(IWineD3DBaseTextureImpl *texture, else gl_tex->states[WINED3DTEXSTA_SRGBTEXTURE] = srgb; gl_tex->states[WINED3DTEXSTA_SHADOW] = FALSE; - basetexture_set_dirty(texture, TRUE); + wined3d_texture_set_dirty(texture, TRUE); new_texture = TRUE; if (texture->resource.usage & WINED3DUSAGE_AUTOGENMIPMAP) @@ -271,7 +258,7 @@ static void apply_wrap(const struct wined3d_gl_info *gl_info, GLenum target, } /* GL locking is done by the caller (state handler) */ -void basetexture_apply_state_changes(IWineD3DBaseTextureImpl *texture, +void wined3d_texture_apply_state_changes(struct wined3d_texture *texture, const DWORD sampler_states[WINED3D_HIGHEST_SAMPLER_STATE + 1], const struct wined3d_gl_info *gl_info) { @@ -283,7 +270,7 @@ void basetexture_apply_state_changes(IWineD3DBaseTextureImpl *texture, TRACE("texture %p, sampler_states %p.\n", texture, sampler_states); - gl_tex = basetexture_get_gl_texture(texture, gl_info, texture->baseTexture.is_srgb); + gl_tex = wined3d_texture_get_gl_texture(texture, gl_info, texture->baseTexture.is_srgb); /* This function relies on the correct texture being bound and loaded. */ @@ -432,29 +419,8 @@ void basetexture_apply_state_changes(IWineD3DBaseTextureImpl *texture, } } -static HRESULT WINAPI IWineD3DTextureImpl_QueryInterface(IWineD3DBaseTexture *iface, REFIID riid, void **object) +ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture) { - TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object); - - if (IsEqualGUID(riid, &IID_IWineD3DBaseTexture) - || IsEqualGUID(riid, &IID_IWineD3DResource) - || IsEqualGUID(riid, &IID_IWineD3DBase) - || IsEqualGUID(riid, &IID_IUnknown)) - { - IUnknown_AddRef(iface); - *object = iface; - return S_OK; - } - - WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid)); - - *object = NULL; - return E_NOINTERFACE; -} - -static ULONG WINAPI IWineD3DTextureImpl_AddRef(IWineD3DBaseTexture *iface) -{ - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; ULONG refcount = InterlockedIncrement(&texture->resource.ref); TRACE("%p increasing refcount to %u.\n", texture, refcount); @@ -463,16 +429,15 @@ static ULONG WINAPI IWineD3DTextureImpl_AddRef(IWineD3DBaseTexture *iface) } /* Do not call while under the GL lock. */ -static ULONG WINAPI IWineD3DTextureImpl_Release(IWineD3DBaseTexture *iface) +ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; ULONG refcount = InterlockedDecrement(&texture->resource.ref); TRACE("%p decreasing refcount to %u.\n", texture, refcount); if (!refcount) { - basetexture_cleanup(texture); + wined3d_texture_cleanup(texture); texture->resource.parent_ops->wined3d_object_destroyed(texture->resource.parent); HeapFree(GetProcessHeap(), 0, texture); } @@ -480,59 +445,58 @@ static ULONG WINAPI IWineD3DTextureImpl_Release(IWineD3DBaseTexture *iface) return refcount; } -static HRESULT WINAPI IWineD3DTextureImpl_SetPrivateData(IWineD3DBaseTexture *iface, - REFGUID riid, const void *data, DWORD data_size, DWORD flags) +HRESULT CDECL wined3d_texture_set_private_data(struct wined3d_texture *texture, + REFGUID guid, const void *data, DWORD data_size, DWORD flags) { - return resource_set_private_data(&((IWineD3DBaseTextureImpl *)iface)->resource, riid, data, data_size, flags); + return resource_set_private_data(&texture->resource, guid, data, data_size, flags); } -static HRESULT WINAPI IWineD3DTextureImpl_GetPrivateData(IWineD3DBaseTexture *iface, +HRESULT CDECL wined3d_texture_get_private_data(const struct wined3d_texture *texture, REFGUID guid, void *data, DWORD *data_size) { - return resource_get_private_data(&((IWineD3DBaseTextureImpl *)iface)->resource, guid, data, data_size); + return resource_get_private_data(&texture->resource, guid, data, data_size); } -static HRESULT WINAPI IWineD3DTextureImpl_FreePrivateData(IWineD3DBaseTexture *iface, REFGUID refguid) +HRESULT CDECL wined3d_texture_free_private_data(struct wined3d_texture *texture, REFGUID guid) { - return resource_free_private_data(&((IWineD3DBaseTextureImpl *)iface)->resource, refguid); + return resource_free_private_data(&texture->resource, guid); } -static DWORD WINAPI IWineD3DTextureImpl_SetPriority(IWineD3DBaseTexture *iface, DWORD priority) +DWORD CDECL wined3d_texture_set_priority(struct wined3d_texture *texture, DWORD priority) { - return resource_set_priority(&((IWineD3DBaseTextureImpl *)iface)->resource, priority); + return resource_set_priority(&texture->resource, priority); } -static DWORD WINAPI IWineD3DTextureImpl_GetPriority(IWineD3DBaseTexture *iface) +DWORD CDECL wined3d_texture_get_priority(const struct wined3d_texture *texture) { - return resource_get_priority(&((IWineD3DBaseTextureImpl *)iface)->resource); + return resource_get_priority(&texture->resource); } /* Do not call while under the GL lock. */ -static void WINAPI IWineD3DTextureImpl_PreLoad(IWineD3DBaseTexture *iface) +void CDECL wined3d_texture_preload(struct wined3d_texture *texture) { - struct IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; - texture->baseTexture.texture_ops->texture_preload(texture, SRGB_ANY); } -static WINED3DRESOURCETYPE WINAPI IWineD3DTextureImpl_GetType(IWineD3DBaseTexture *iface) +WINED3DRESOURCETYPE CDECL wined3d_texture_get_type(const struct wined3d_texture *texture) { - return resource_get_type(&((IWineD3DBaseTextureImpl *)iface)->resource); + TRACE("texture %p.\n", texture); + + return texture->resource.resourceType; } -static void * WINAPI IWineD3DTextureImpl_GetParent(IWineD3DBaseTexture *iface) +void * CDECL wined3d_texture_get_parent(const struct wined3d_texture *texture) { - TRACE("iface %p.\n", iface); + TRACE("texture %p.\n", texture); - return ((IWineD3DBaseTextureImpl *)iface)->resource.parent; + return texture->resource.parent; } -static DWORD WINAPI IWineD3DTextureImpl_SetLOD(IWineD3DBaseTexture *iface, DWORD lod) +DWORD CDECL wined3d_texture_set_lod(struct wined3d_texture *texture, DWORD lod) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; DWORD old = texture->baseTexture.LOD; - TRACE("iface %p, lod %u.\n", iface, lod); + TRACE("texture %p, lod %u.\n", texture, lod); /* The d3d9:texture test shows that SetLOD is ignored on non-managed * textures. The call always returns 0, and GetLOD always returns 0. */ @@ -558,30 +522,24 @@ static DWORD WINAPI IWineD3DTextureImpl_SetLOD(IWineD3DBaseTexture *iface, DWORD return old; } -static DWORD WINAPI IWineD3DTextureImpl_GetLOD(IWineD3DBaseTexture *iface) +DWORD CDECL wined3d_texture_get_lod(const struct wined3d_texture *texture) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; - - TRACE("iface %p, returning %u.\n", iface, texture->baseTexture.LOD); + TRACE("texture %p, returning %u.\n", texture, texture->baseTexture.LOD); return texture->baseTexture.LOD; } -static DWORD WINAPI IWineD3DTextureImpl_GetLevelCount(IWineD3DBaseTexture *iface) +DWORD CDECL wined3d_texture_get_level_count(const struct wined3d_texture *texture) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; - - TRACE("iface %p, returning %u.\n", iface, texture->baseTexture.level_count); + TRACE("texture %p, returning %u.\n", texture, texture->baseTexture.level_count); return texture->baseTexture.level_count; } -static HRESULT WINAPI IWineD3DTextureImpl_SetAutoGenFilterType(IWineD3DBaseTexture *iface, +HRESULT CDECL wined3d_texture_set_autogen_filter_type(struct wined3d_texture *texture, WINED3DTEXTUREFILTERTYPE filter_type) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; - - TRACE("iface %p, filter_type %s.\n", iface, debug_d3dtexturefiltertype(filter_type)); + TRACE("texture %p, filter_type %s.\n", texture, debug_d3dtexturefiltertype(filter_type)); if (!(texture->resource.usage & WINED3DUSAGE_AUTOGENMIPMAP)) { @@ -627,74 +585,56 @@ static HRESULT WINAPI IWineD3DTextureImpl_SetAutoGenFilterType(IWineD3DBaseTextu return WINED3D_OK; } -static WINED3DTEXTUREFILTERTYPE WINAPI IWineD3DTextureImpl_GetAutoGenFilterType(IWineD3DBaseTexture *iface) +WINED3DTEXTUREFILTERTYPE CDECL wined3d_texture_get_autogen_filter_type(const struct wined3d_texture *texture) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; - - TRACE("iface %p.\n", iface); + TRACE("texture %p.\n", texture); return texture->baseTexture.filterType; } -static void WINAPI IWineD3DTextureImpl_GenerateMipSubLevels(IWineD3DBaseTexture *iface) +void CDECL wined3d_texture_generate_mipmaps(struct wined3d_texture *texture) { /* TODO: Implement filters using GL_SGI_generate_mipmaps. */ - FIXME("iface %p stub!\n", iface); + FIXME("texture %p stub!\n", texture); } -static struct wined3d_resource * WINAPI IWineD3DTextureImpl_GetSubResource(IWineD3DBaseTexture *iface, +struct wined3d_resource * CDECL wined3d_texture_get_sub_resource(struct wined3d_texture *texture, UINT sub_resource_idx) { - TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx); + UINT sub_count = texture->baseTexture.level_count * texture->baseTexture.layer_count; - return basetexture_get_sub_resource((IWineD3DBaseTextureImpl *)iface, sub_resource_idx); + TRACE("texture %p, sub_resource_idx %u.\n", texture, sub_resource_idx); + + if (sub_resource_idx >= sub_count) + { + WARN("sub_resource_idx %u >= sub_count %u.\n", sub_resource_idx, sub_count); + return NULL; + } + + return texture->baseTexture.sub_resources[sub_resource_idx]; } -static HRESULT WINAPI IWineD3DTextureImpl_AddDirtyRegion(IWineD3DBaseTexture *iface, +HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, UINT layer, const WINED3DBOX *dirty_region) { - IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface; struct wined3d_resource *sub_resource; TRACE("texture %p, layer %u, dirty_region %p.\n", texture, layer, dirty_region); - if (!(sub_resource = basetexture_get_sub_resource(texture, layer * texture->baseTexture.level_count))) + if (!(sub_resource = wined3d_texture_get_sub_resource(texture, layer * texture->baseTexture.level_count))) { WARN("Failed to get sub-resource.\n"); return WINED3DERR_INVALIDCALL; } - basetexture_set_dirty(texture, TRUE); + wined3d_texture_set_dirty(texture, TRUE); texture->baseTexture.texture_ops->texture_sub_resource_add_dirty_region(sub_resource, dirty_region); return WINED3D_OK; } -static const struct IWineD3DBaseTextureVtbl wined3d_texture_vtbl = -{ - IWineD3DTextureImpl_QueryInterface, - IWineD3DTextureImpl_AddRef, - IWineD3DTextureImpl_Release, - IWineD3DTextureImpl_GetParent, - IWineD3DTextureImpl_SetPrivateData, - IWineD3DTextureImpl_GetPrivateData, - IWineD3DTextureImpl_FreePrivateData, - IWineD3DTextureImpl_SetPriority, - IWineD3DTextureImpl_GetPriority, - IWineD3DTextureImpl_PreLoad, - IWineD3DTextureImpl_GetType, - IWineD3DTextureImpl_SetLOD, - IWineD3DTextureImpl_GetLOD, - IWineD3DTextureImpl_GetLevelCount, - IWineD3DTextureImpl_SetAutoGenFilterType, - IWineD3DTextureImpl_GetAutoGenFilterType, - IWineD3DTextureImpl_GenerateMipSubLevels, - IWineD3DTextureImpl_GetSubResource, - IWineD3DTextureImpl_AddDirtyRegion, -}; - /* Context activation is done by the caller. */ -static HRESULT texture2d_bind(IWineD3DBaseTextureImpl *texture, +static HRESULT texture2d_bind(struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info, BOOL srgb) { BOOL set_gl_texture_desc; @@ -702,7 +642,7 @@ static HRESULT texture2d_bind(IWineD3DBaseTextureImpl *texture, TRACE("texture %p, gl_info %p, srgb %#x.\n", texture, gl_info, srgb); - hr = basetexture_bind(texture, gl_info, srgb, &set_gl_texture_desc); + hr = wined3d_texture_bind(texture, gl_info, srgb, &set_gl_texture_desc); if (set_gl_texture_desc && SUCCEEDED(hr)) { UINT sub_count = texture->baseTexture.level_count * texture->baseTexture.layer_count; @@ -710,7 +650,7 @@ static HRESULT texture2d_bind(IWineD3DBaseTextureImpl *texture, struct gl_texture *gl_tex; UINT i; - gl_tex = basetexture_get_gl_texture(texture, gl_info, srgb_tex); + gl_tex = wined3d_texture_get_gl_texture(texture, gl_info, srgb_tex); for (i = 0; i < sub_count; ++i) { @@ -752,7 +692,7 @@ static HRESULT texture2d_bind(IWineD3DBaseTextureImpl *texture, } /* Do not call while under the GL lock. */ -static void texture2d_preload(IWineD3DBaseTextureImpl *texture, enum WINED3DSRGB srgb) +static void texture2d_preload(struct wined3d_texture *texture, enum WINED3DSRGB srgb) { UINT sub_count = texture->baseTexture.level_count * texture->baseTexture.layer_count; IWineD3DDeviceImpl *device = texture->resource.device; @@ -782,7 +722,7 @@ static void texture2d_preload(IWineD3DBaseTextureImpl *texture, enum WINED3DSRGB break; } - gl_tex = basetexture_get_gl_texture(texture, gl_info, srgb_mode); + gl_tex = wined3d_texture_get_gl_texture(texture, gl_info, srgb_mode); if (!device->isInDraw) { @@ -851,7 +791,7 @@ static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource /* Do not call while under the GL lock. */ static void texture2d_unload(struct wined3d_resource *resource) { - IWineD3DBaseTextureImpl *texture = basetexture_from_resource(resource); + struct wined3d_texture *texture = wined3d_texture_from_resource(resource); UINT sub_count = texture->baseTexture.level_count * texture->baseTexture.layer_count; UINT i; @@ -867,7 +807,7 @@ static void texture2d_unload(struct wined3d_resource *resource) surface_set_texture_name(surface, 0, TRUE); /* Delete sRGB name */ } - basetexture_unload(texture); + wined3d_texture_unload(texture); } static const struct wined3d_texture_ops texture2d_ops = @@ -883,7 +823,7 @@ static const struct wined3d_resource_ops texture2d_resource_ops = texture2d_unload, }; -HRESULT cubetexture_init(IWineD3DBaseTextureImpl *texture, UINT edge_length, UINT levels, +HRESULT cubetexture_init(struct wined3d_texture *texture, UINT edge_length, UINT levels, IWineD3DDeviceImpl *device, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool, void *parent, const struct wined3d_parent_ops *parent_ops) { @@ -931,14 +871,12 @@ HRESULT cubetexture_init(IWineD3DBaseTextureImpl *texture, UINT edge_length, UIN TRACE("Calculated levels = %u.\n", levels); } - texture->lpVtbl = &wined3d_texture_vtbl; - - hr = basetexture_init((IWineD3DBaseTextureImpl *)texture, &texture2d_ops, - 6, levels, WINED3DRTYPE_CUBETEXTURE, device, usage, format, pool, + hr = wined3d_texture_init(texture, &texture2d_ops, 6, levels, + WINED3DRTYPE_CUBETEXTURE, device, usage, format, pool, parent, parent_ops, &texture2d_resource_ops); if (FAILED(hr)) { - WARN("Failed to initialize basetexture, returning %#x\n", hr); + WARN("Failed to initialize texture, returning %#x\n", hr); return hr; } @@ -989,7 +927,7 @@ HRESULT cubetexture_init(IWineD3DBaseTextureImpl *texture, UINT edge_length, UIN if (FAILED(hr)) { FIXME("(%p) Failed to create surface, hr %#x.\n", texture, hr); - basetexture_cleanup(texture); + wined3d_texture_cleanup(texture); return hr; } @@ -1004,7 +942,7 @@ HRESULT cubetexture_init(IWineD3DBaseTextureImpl *texture, UINT edge_length, UIN return WINED3D_OK; } -HRESULT texture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT height, UINT levels, +HRESULT texture_init(struct wined3d_texture *texture, UINT width, UINT height, UINT levels, IWineD3DDeviceImpl *device, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool, void *parent, const struct wined3d_parent_ops *parent_ops) { @@ -1070,14 +1008,12 @@ HRESULT texture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT height, TRACE("Calculated levels = %u.\n", levels); } - texture->lpVtbl = &wined3d_texture_vtbl; - - hr = basetexture_init((IWineD3DBaseTextureImpl *)texture, &texture2d_ops, - 1, levels, WINED3DRTYPE_TEXTURE, device, usage, format, pool, + hr = wined3d_texture_init(texture, &texture2d_ops, 1, levels, + WINED3DRTYPE_TEXTURE, device, usage, format, pool, parent, parent_ops, &texture2d_resource_ops); if (FAILED(hr)) { - WARN("Failed to initialize basetexture, returning %#x.\n", hr); + WARN("Failed to initialize texture, returning %#x.\n", hr); return hr; } @@ -1151,7 +1087,7 @@ HRESULT texture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT height, if (FAILED(hr)) { FIXME("Failed to create surface %p, hr %#x\n", texture, hr); - basetexture_cleanup(texture); + wined3d_texture_cleanup(texture); return hr; } @@ -1168,18 +1104,18 @@ HRESULT texture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT height, } /* Context activation is done by the caller. */ -static HRESULT texture3d_bind(IWineD3DBaseTextureImpl *texture, +static HRESULT texture3d_bind(struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info, BOOL srgb) { BOOL dummy; TRACE("texture %p, gl_info %p, srgb %#x.\n", texture, gl_info, srgb); - return basetexture_bind(texture, gl_info, srgb, &dummy); + return wined3d_texture_bind(texture, gl_info, srgb, &dummy); } /* Do not call while under the GL lock. */ -static void texture3d_preload(IWineD3DBaseTextureImpl *texture, enum WINED3DSRGB srgb) +static void texture3d_preload(struct wined3d_texture *texture, enum WINED3DSRGB srgb) { IWineD3DDeviceImpl *device = texture->resource.device; struct wined3d_context *context = NULL; @@ -1246,7 +1182,7 @@ static void texture3d_sub_resource_cleanup(struct wined3d_resource *sub_resource /* Do not call while under the GL lock. */ static void texture3d_unload(struct wined3d_resource *resource) { - IWineD3DBaseTextureImpl *texture = basetexture_from_resource(resource); + struct wined3d_texture *texture = wined3d_texture_from_resource(resource); UINT i; TRACE("texture %p.\n", texture); @@ -1257,7 +1193,7 @@ static void texture3d_unload(struct wined3d_resource *resource) sub_resource->resource_ops->resource_unload(sub_resource); } - basetexture_unload(texture); + wined3d_texture_unload(texture); } static const struct wined3d_texture_ops texture3d_ops = @@ -1273,7 +1209,7 @@ static const struct wined3d_resource_ops texture3d_resource_ops = texture3d_unload, }; -HRESULT volumetexture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT height, +HRESULT volumetexture_init(struct wined3d_texture *texture, UINT width, UINT height, UINT depth, UINT levels, IWineD3DDeviceImpl *device, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool, void *parent, const struct wined3d_parent_ops *parent_ops) { @@ -1320,14 +1256,12 @@ HRESULT volumetexture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT he TRACE("Calculated levels = %u.\n", levels); } - texture->lpVtbl = &wined3d_texture_vtbl; - - hr = basetexture_init((IWineD3DBaseTextureImpl *)texture, &texture3d_ops, - 1, levels, WINED3DRTYPE_VOLUMETEXTURE, device, usage, format, pool, + hr = wined3d_texture_init(texture, &texture3d_ops, 1, levels, + WINED3DRTYPE_VOLUMETEXTURE, device, usage, format, pool, parent, parent_ops, &texture3d_resource_ops); if (FAILED(hr)) { - WARN("Failed to initialize basetexture, returning %#x.\n", hr); + WARN("Failed to initialize texture, returning %#x.\n", hr); return hr; } @@ -1353,7 +1287,7 @@ HRESULT volumetexture_init(IWineD3DBaseTextureImpl *texture, UINT width, UINT he if (FAILED(hr)) { ERR("Creating a volume for the volume texture failed, hr %#x.\n", hr); - basetexture_cleanup(texture); + wined3d_texture_cleanup(texture); return hr; } diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c index 9528b1512b7..4e139048d70 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -85,7 +85,7 @@ void volume_add_dirty_box(struct IWineD3DVolumeImpl *volume, const WINED3DBOX *d } } -void volume_set_container(IWineD3DVolumeImpl *volume, struct IWineD3DBaseTextureImpl *container) +void volume_set_container(IWineD3DVolumeImpl *volume, struct wined3d_texture *container) { TRACE("volume %p, container %p.\n", volume, container); @@ -269,7 +269,7 @@ static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface, if (!(flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY))) { volume_add_dirty_box(This, &This->lockedBox); - basetexture_set_dirty((IWineD3DBaseTextureImpl *)This->container, TRUE); + wined3d_texture_set_dirty(This->container, TRUE); } This->locked = TRUE; diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index f8e21215c5c..f2eb5afe308 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -66,6 +66,25 @@ @ cdecl wined3d_stateblock_decref(ptr) @ cdecl wined3d_stateblock_incref(ptr) +@ cdecl wined3d_texture_add_dirty_region(ptr long ptr) +@ cdecl wined3d_texture_decref(ptr) +@ cdecl wined3d_texture_free_private_data(ptr ptr) +@ cdecl wined3d_texture_generate_mipmaps(ptr) +@ cdecl wined3d_texture_get_autogen_filter_type(ptr) +@ cdecl wined3d_texture_get_level_count(ptr) +@ cdecl wined3d_texture_get_lod(ptr) +@ cdecl wined3d_texture_get_parent(ptr) +@ cdecl wined3d_texture_get_priority(ptr) +@ cdecl wined3d_texture_get_private_data(ptr ptr ptr ptr) +@ cdecl wined3d_texture_get_sub_resource(ptr long) +@ cdecl wined3d_texture_get_type(ptr) +@ cdecl wined3d_texture_incref(ptr) +@ cdecl wined3d_texture_preload(ptr) +@ cdecl wined3d_texture_set_autogen_filter_type(ptr long) +@ cdecl wined3d_texture_set_lod(ptr long) +@ cdecl wined3d_texture_set_priority(ptr long) +@ cdecl wined3d_texture_set_private_data(ptr ptr ptr long long) + @ cdecl wined3d_vertex_declaration_decref(ptr) @ cdecl wined3d_vertex_declaration_get_parent(ptr) @ cdecl wined3d_vertex_declaration_incref(ptr) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 84c6013bb2a..5b8df4fa6d9 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -55,8 +55,9 @@ typedef struct IWineD3DSurfaceImpl IWineD3DSurfaceImpl; typedef struct IWineD3DDeviceImpl IWineD3DDeviceImpl; typedef struct IWineD3DSwapChainImpl IWineD3DSwapChainImpl; +typedef struct wined3d_texture IWineD3DBaseTextureImpl; +typedef struct wined3d_texture IWineD3DBaseTexture; struct IWineD3DBaseShaderImpl; -struct IWineD3DBaseTextureImpl; /* Texture format fixups */ @@ -1885,9 +1886,9 @@ struct gl_texture struct wined3d_texture_ops { - HRESULT (*texture_bind)(struct IWineD3DBaseTextureImpl *texture, + HRESULT (*texture_bind)(struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info, BOOL srgb); - void (*texture_preload)(struct IWineD3DBaseTextureImpl *texture, enum WINED3DSRGB srgb); + void (*texture_preload)(struct wined3d_texture *texture, enum WINED3DSRGB srgb); void (*texture_sub_resource_add_dirty_region)(struct wined3d_resource *sub_resource, const WINED3DBOX *dirty_region); void (*texture_sub_resource_cleanup)(struct wined3d_resource *sub_resource); @@ -1913,21 +1914,18 @@ typedef struct IWineD3DBaseTextureClass GLenum target; } IWineD3DBaseTextureClass; -typedef struct IWineD3DBaseTextureImpl +struct wined3d_texture { - /* IUnknown & WineD3DResource Information */ - const IWineD3DBaseTextureVtbl *lpVtbl; struct wined3d_resource resource; IWineD3DBaseTextureClass baseTexture; +}; -} IWineD3DBaseTextureImpl; - -static inline IWineD3DBaseTextureImpl *basetexture_from_resource(struct wined3d_resource *resource) +static inline struct wined3d_texture *wined3d_texture_from_resource(struct wined3d_resource *resource) { return CONTAINING_RECORD(resource, IWineD3DBaseTextureImpl, resource); } -static inline struct gl_texture *basetexture_get_gl_texture(IWineD3DBaseTextureImpl *texture, +static inline struct gl_texture *wined3d_texture_get_gl_texture(struct wined3d_texture *texture, const struct wined3d_gl_info *gl_info, BOOL srgb) { return srgb && !gl_info->supported[EXT_TEXTURE_SRGB_DECODE] @@ -1935,12 +1933,10 @@ static inline struct gl_texture *basetexture_get_gl_texture(IWineD3DBaseTextureI : &texture->baseTexture.texture_rgb; } -void basetexture_apply_state_changes(IWineD3DBaseTextureImpl *texture, +void wined3d_texture_apply_state_changes(IWineD3DBaseTextureImpl *texture, const DWORD samplerStates[WINED3D_HIGHEST_SAMPLER_STATE + 1], const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; -struct wined3d_resource *basetexture_get_sub_resource(IWineD3DBaseTextureImpl *texture, - UINT sub_resource_idx) DECLSPEC_HIDDEN; -void basetexture_set_dirty(IWineD3DBaseTextureImpl *texture, BOOL dirty) DECLSPEC_HIDDEN; +void wined3d_texture_set_dirty(IWineD3DBaseTextureImpl *texture, BOOL dirty) DECLSPEC_HIDDEN; HRESULT cubetexture_init(IWineD3DBaseTextureImpl *texture, UINT edge_length, UINT levels, IWineD3DDeviceImpl *device, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool, @@ -1959,8 +1955,7 @@ typedef struct IWineD3DVolumeImpl /* IUnknown & WineD3DResource fields */ const IWineD3DVolumeVtbl *lpVtbl; struct wined3d_resource resource; - - struct IWineD3DBaseTextureImpl *container; + struct wined3d_texture *container; BOOL lockable; BOOL locked; WINED3DBOX lockedBox; @@ -1978,7 +1973,7 @@ HRESULT volume_init(IWineD3DVolumeImpl *volume, IWineD3DDeviceImpl *device, UINT UINT height, UINT depth, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool, void *parent, const struct wined3d_parent_ops *parent_ops) DECLSPEC_HIDDEN; void volume_load(IWineD3DVolumeImpl *volume, UINT level, BOOL srgb_mode) DECLSPEC_HIDDEN; -void volume_set_container(IWineD3DVolumeImpl *volume, struct IWineD3DBaseTextureImpl *container) DECLSPEC_HIDDEN; +void volume_set_container(IWineD3DVolumeImpl *volume, struct wined3d_texture *container) DECLSPEC_HIDDEN; /***************************************************************************** * Structure for DIB Surfaces (GetDC and GDI surfaces) @@ -2028,7 +2023,7 @@ struct wined3d_subresource_container union { struct IWineD3DSwapChainImpl *swapchain; - struct IWineD3DBaseTextureImpl *texture; + struct wined3d_texture *texture; void *base; } u; }; diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl index cc27d6a7b2d..bc7d5886bfc 100644 --- a/include/wine/wined3d.idl +++ b/include/wine/wined3d.idl @@ -2097,6 +2097,7 @@ struct wined3d_palette; struct wined3d_query; struct wined3d_resource; struct wined3d_stateblock; +struct wined3d_texture; struct wined3d_vertex_declaration; [ @@ -2335,36 +2336,6 @@ interface IWineD3DVolume : IWineD3DResource ); } -[ - object, - local, - uuid(3c2aebf6-6f30-11d9-c687-00046142c14f) -] -interface IWineD3DBaseTexture : IWineD3DResource -{ - DWORD SetLOD( - [in] DWORD new_lod - ); - DWORD GetLOD( - ); - DWORD GetLevelCount( - ); - HRESULT SetAutoGenFilterType( - WINED3DTEXTUREFILTERTYPE filter_type - ); - WINED3DTEXTUREFILTERTYPE GetAutoGenFilterType( - ); - void GenerateMipSubLevels( - ); - struct wined3d_resource *GetSubResource( - [in] UINT sub_resource_idx - ); - HRESULT AddDirtyRegion( - [in] UINT layer, - [in] const WINED3DBOX *dirty_region - ); -} - [ object, local, @@ -2522,7 +2493,7 @@ interface IWineD3DDevice : IUnknown [in] WINED3DPOOL pool, [in] void *parent, [in] const struct wined3d_parent_ops *parent_ops, - [out] IWineD3DBaseTexture **texture + [out] struct wined3d_texture **texture ); HRESULT CreateVolumeTexture( [in] UINT width, @@ -2534,7 +2505,7 @@ interface IWineD3DDevice : IUnknown [in] WINED3DPOOL pool, [in] void *parent, [in] const struct wined3d_parent_ops *parent_ops, - [out] IWineD3DBaseTexture **texture + [out] struct wined3d_texture **texture ); HRESULT CreateVolume( [in] UINT width, @@ -2555,7 +2526,7 @@ interface IWineD3DDevice : IUnknown [in] WINED3DPOOL pool, [in] void *parent, [in] const struct wined3d_parent_ops *parent_ops, - [out] IWineD3DBaseTexture **texture + [out] struct wined3d_texture **texture ); HRESULT CreateQuery( [in] WINED3DQUERYTYPE type, @@ -2855,11 +2826,11 @@ interface IWineD3DDevice : IUnknown ); HRESULT SetTexture( [in] DWORD stage, - [in] IWineD3DBaseTexture *texture + [in] struct wined3d_texture *texture ); HRESULT GetTexture( [in] DWORD stage, - [out] IWineD3DBaseTexture **texture + [out] struct wined3d_texture **texture ); HRESULT SetTextureStageState( [in] DWORD stage, @@ -3025,8 +2996,8 @@ interface IWineD3DDevice : IUnknown [in] const WINED3DCOLORVALUE *color ); HRESULT UpdateTexture( - [in] IWineD3DBaseTexture *src_texture, - [in] IWineD3DBaseTexture *dst_texture + [in] struct wined3d_texture *src_texture, + [in] struct wined3d_texture *dst_texture ); HRESULT UpdateSurface( [in] IWineD3DSurface *src_surface, @@ -3153,6 +3124,30 @@ HRESULT __cdecl wined3d_stateblock_capture(struct wined3d_stateblock *stateblock ULONG __cdecl wined3d_stateblock_decref(struct wined3d_stateblock *stateblock); ULONG __cdecl wined3d_stateblock_incref(struct wined3d_stateblock *stateblock); +HRESULT __cdecl wined3d_texture_add_dirty_region(struct wined3d_texture *texture, + UINT layer, const WINED3DBOX *dirty_region); +ULONG __cdecl wined3d_texture_decref(struct wined3d_texture *texture); +HRESULT __cdecl wined3d_texture_free_private_data(struct wined3d_texture *texture, REFGUID guid); +void __cdecl wined3d_texture_generate_mipmaps(struct wined3d_texture *texture); +WINED3DTEXTUREFILTERTYPE __cdecl wined3d_texture_get_autogen_filter_type(const struct wined3d_texture *texture); +DWORD __cdecl wined3d_texture_get_level_count(const struct wined3d_texture *texture); +DWORD __cdecl wined3d_texture_get_lod(const struct wined3d_texture *texture); +void * __cdecl wined3d_texture_get_parent(const struct wined3d_texture *texture); +DWORD __cdecl wined3d_texture_get_priority(const struct wined3d_texture *texture); +HRESULT __cdecl wined3d_texture_get_private_data(const struct wined3d_texture *texture, + REFGUID guid, void *data, DWORD *data_size); +struct wined3d_resource * __cdecl wined3d_texture_get_sub_resource(struct wined3d_texture *texture, + UINT sub_resource_idx); +WINED3DRESOURCETYPE __cdecl wined3d_texture_get_type(const struct wined3d_texture *texture); +ULONG __cdecl wined3d_texture_incref(struct wined3d_texture *texture); +void __cdecl wined3d_texture_preload(struct wined3d_texture *texture); +HRESULT __cdecl wined3d_texture_set_autogen_filter_type(struct wined3d_texture *texture, + WINED3DTEXTUREFILTERTYPE filter_type); +DWORD __cdecl wined3d_texture_set_lod(struct wined3d_texture *texture, DWORD lod); +DWORD __cdecl wined3d_texture_set_priority(struct wined3d_texture *texture, DWORD priority); +HRESULT __cdecl wined3d_texture_set_private_data(struct wined3d_texture *texture, + REFGUID guid, const void *data, DWORD data_size, DWORD flags); + ULONG __cdecl wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration); void * __cdecl wined3d_vertex_declaration_get_parent(const struct wined3d_vertex_declaration *declaration); ULONG __cdecl wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration);