[PATCH 4/5] wined3d: Remove COM from the surface implementation.
Henri Verbeet
hverbeet at codeweavers.com
Fri Apr 29 06:03:41 CDT 2011
---
dlls/d3d10core/d3d10core_private.h | 2 +-
dlls/d3d10core/device.c | 12 +-
dlls/d3d10core/texture.c | 9 +-
dlls/d3d10core/view.c | 2 +-
dlls/d3d8/d3d8_private.h | 8 +-
dlls/d3d8/device.c | 99 ++++++-----
dlls/d3d8/surface.c | 18 +-
dlls/d3d8/swapchain.c | 10 +-
dlls/d3d9/d3d9_private.h | 8 +-
dlls/d3d9/device.c | 68 ++++----
dlls/d3d9/surface.c | 28 ++--
dlls/d3d9/swapchain.c | 12 +-
dlls/ddraw/ddraw.c | 64 +++----
dlls/ddraw/ddraw_private.h | 2 +-
dlls/ddraw/device.c | 26 +--
dlls/ddraw/surface.c | 189 +++++++------------
dlls/dxgi/device.c | 6 +-
dlls/dxgi/swapchain.c | 6 +-
dlls/wined3d/device.c | 65 ++++---
dlls/wined3d/stateblock.c | 4 +-
dlls/wined3d/surface.c | 354 +++++++++++++-----------------------
dlls/wined3d/swapchain.c | 27 ++--
dlls/wined3d/texture.c | 2 +-
dlls/wined3d/wined3d.spec | 34 ++++
dlls/wined3d/wined3d_private.h | 42 ++---
include/wine/wined3d.idl | 212 +++++++---------------
26 files changed, 557 insertions(+), 752 deletions(-)
diff --git a/dlls/d3d10core/d3d10core_private.h b/dlls/d3d10core/d3d10core_private.h
index 34d0b0f..cd47a0f 100644
--- a/dlls/d3d10core/d3d10core_private.h
+++ b/dlls/d3d10core/d3d10core_private.h
@@ -87,7 +87,7 @@ struct d3d10_texture2d
LONG refcount;
IUnknown *dxgi_surface;
- IWineD3DSurface *wined3d_surface;
+ struct wined3d_surface *wined3d_surface;
D3D10_TEXTURE2D_DESC desc;
};
diff --git a/dlls/d3d10core/device.c b/dlls/d3d10core/device.c
index 8b3883a..961da7a 100644
--- a/dlls/d3d10core/device.c
+++ b/dlls/d3d10core/device.c
@@ -1322,7 +1322,7 @@ static void STDMETHODCALLTYPE device_parent_WineD3DDeviceCreated(IWineD3DDeviceP
static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format, DWORD usage,
- WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, IWineD3DSurface **surface)
+ WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, struct wined3d_surface **surface)
{
struct d3d10_device *This = device_from_device_parent(iface);
struct d3d10_texture2d *texture;
@@ -1355,7 +1355,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
}
*surface = texture->wined3d_surface;
- IWineD3DSurface_AddRef(*surface);
+ wined3d_surface_incref(*surface);
ID3D10Texture2D_Release((ID3D10Texture2D *)texture);
return S_OK;
@@ -1364,7 +1364,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format,
WINED3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL lockable,
- IWineD3DSurface **surface)
+ struct wined3d_surface **surface)
{
struct d3d10_device *This = device_from_device_parent(iface);
struct d3d10_texture2d *texture;
@@ -1397,7 +1397,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
}
*surface = texture->wined3d_surface;
- IWineD3DSurface_AddRef(*surface);
+ wined3d_surface_incref(*surface);
ID3D10Texture2D_Release((ID3D10Texture2D *)texture);
return S_OK;
@@ -1405,7 +1405,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3DDeviceParent *iface,
UINT width, UINT height, enum wined3d_format_id format, WINED3DMULTISAMPLE_TYPE multisample_type,
- DWORD multisample_quality, BOOL discard, IWineD3DSurface **surface)
+ DWORD multisample_quality, BOOL discard, struct wined3d_surface **surface)
{
struct d3d10_device *This = device_from_device_parent(iface);
struct d3d10_texture2d *texture;
@@ -1438,7 +1438,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3
}
*surface = texture->wined3d_surface;
- IWineD3DSurface_AddRef(*surface);
+ wined3d_surface_incref(*surface);
ID3D10Texture2D_Release((ID3D10Texture2D *)texture);
return S_OK;
diff --git a/dlls/d3d10core/texture.c b/dlls/d3d10core/texture.c
index 3c4d72a..6ee8f8a 100644
--- a/dlls/d3d10core/texture.c
+++ b/dlls/d3d10core/texture.c
@@ -61,7 +61,8 @@ static ULONG STDMETHODCALLTYPE d3d10_texture2d_AddRef(ID3D10Texture2D *iface)
TRACE("%p increasing refcount to %u\n", This, refcount);
- if (refcount == 1 && This->wined3d_surface) IWineD3DSurface_AddRef(This->wined3d_surface);
+ if (refcount == 1 && This->wined3d_surface)
+ wined3d_surface_incref(This->wined3d_surface);
return refcount;
}
@@ -83,8 +84,10 @@ static ULONG STDMETHODCALLTYPE d3d10_texture2d_Release(ID3D10Texture2D *iface)
if (!refcount)
{
- if (This->wined3d_surface) IWineD3DSurface_Release(This->wined3d_surface);
- else d3d10_texture2d_wined3d_object_released(This);
+ if (This->wined3d_surface)
+ wined3d_surface_decref(This->wined3d_surface);
+ else
+ d3d10_texture2d_wined3d_object_released(This);
}
return refcount;
diff --git a/dlls/d3d10core/view.c b/dlls/d3d10core/view.c
index 547da4e..bab4b57 100644
--- a/dlls/d3d10core/view.c
+++ b/dlls/d3d10core/view.c
@@ -37,7 +37,7 @@ static struct wined3d_resource *wined3d_resource_from_resource(ID3D10Resource *r
return wined3d_buffer_get_resource(((struct d3d10_buffer *)resource)->wined3d_buffer);
case D3D10_RESOURCE_DIMENSION_TEXTURE2D:
- return IWineD3DSurface_GetResource(((struct d3d10_texture2d *)resource)->wined3d_surface);
+ return wined3d_surface_get_resource(((struct d3d10_texture2d *)resource)->wined3d_surface);
default:
FIXME("Unhandled resource dimension %#x.\n", dimension);
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index 2db4f71..96b31d0 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -242,12 +242,8 @@ struct IDirect3DSurface8Impl
/* IUnknown fields */
const IDirect3DSurface8Vtbl *lpVtbl;
LONG ref;
-
- /* IDirect3DSurface8 fields */
- IWineD3DSurface *wineD3DSurface;
-
- /* Parent reference */
- LPDIRECT3DDEVICE8 parentDevice;
+ struct wined3d_surface *wined3d_surface;
+ IDirect3DDevice8 *parentDevice;
/* The surface container */
IUnknown *container;
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 99481bf..0945632 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -478,7 +478,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_SetCursorProperties(IDirect3DDevice8
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_SetCursorProperties(This->WineD3DDevice,XHotSpot,YHotSpot,pSurface->wineD3DSurface);
+ hr = IWineD3DDevice_SetCursorProperties(This->WineD3DDevice, XHotSpot, YHotSpot, pSurface->wined3d_surface);
wined3d_mutex_unlock();
return hr;
@@ -611,19 +611,20 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetBackBuffer(IDirect3DDevice8 *iface
UINT BackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface8 **ppBackBuffer)
{
IDirect3DDevice8Impl *This = impl_from_IDirect3DDevice8(iface);
- IWineD3DSurface *retSurface = NULL;
+ struct wined3d_surface *wined3d_surface = NULL;
HRESULT hr;
TRACE("iface %p, backbuffer_idx %u, backbuffer_type %#x, backbuffer %p.\n",
iface, BackBuffer, Type, ppBackBuffer);
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetBackBuffer(This->WineD3DDevice, 0, BackBuffer, (WINED3DBACKBUFFER_TYPE)Type, &retSurface);
- if (SUCCEEDED(hr) && retSurface && ppBackBuffer)
+ hr = IWineD3DDevice_GetBackBuffer(This->WineD3DDevice, 0,
+ BackBuffer, (WINED3DBACKBUFFER_TYPE)Type, &wined3d_surface);
+ if (SUCCEEDED(hr) && wined3d_surface && ppBackBuffer)
{
- *ppBackBuffer = IWineD3DSurface_GetParent(retSurface);
+ *ppBackBuffer = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface8_AddRef(*ppBackBuffer);
- IWineD3DSurface_Release(retSurface);
+ wined3d_surface_decref(wined3d_surface);
}
wined3d_mutex_unlock();
@@ -930,11 +931,11 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(IDirect3DDevice8 *iface,
* destination texture is in WINED3DPOOL_DEFAULT. */
wined3d_mutex_lock();
- wined3d_resource = IWineD3DSurface_GetResource(Source->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(Source->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
srcFormat = wined3d_desc.format;
- wined3d_resource = IWineD3DSurface_GetResource(Dest->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(Dest->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
destFormat = wined3d_desc.format;
@@ -949,22 +950,33 @@ static HRESULT WINAPI IDirect3DDevice8Impl_CopyRects(IDirect3DDevice8 *iface,
else if (WINED3DFMT_UNKNOWN == destFormat)
{
TRACE("(%p) : Converting destination surface from WINED3DFMT_UNKNOWN to the source format\n", iface);
- IWineD3DSurface_SetFormat(Dest->wineD3DSurface, srcFormat);
+ wined3d_surface_set_format(Dest->wined3d_surface, srcFormat);
}
/* Quick if complete copy ... */
- if (cRects == 0 && pSourceRects == NULL && pDestPoints == NULL) {
- IWineD3DSurface_BltFast(Dest->wineD3DSurface, 0, 0, Source->wineD3DSurface, NULL, WINEDDBLTFAST_NOCOLORKEY);
- } else {
+ if (!cRects && !pSourceRects && !pDestPoints)
+ {
+ wined3d_surface_bltfast(Dest->wined3d_surface, 0, 0,
+ Source->wined3d_surface, NULL, WINEDDBLTFAST_NOCOLORKEY);
+ }
+ else
+ {
unsigned int i;
/* Copy rect by rect */
- if (NULL != pSourceRects && NULL != pDestPoints) {
- for (i = 0; i < cRects; ++i) {
- IWineD3DSurface_BltFast(Dest->wineD3DSurface, pDestPoints[i].x, pDestPoints[i].y, Source->wineD3DSurface, &pSourceRects[i], WINEDDBLTFAST_NOCOLORKEY);
+ if (pSourceRects && pDestPoints)
+ {
+ for (i = 0; i < cRects; ++i)
+ {
+ wined3d_surface_bltfast(Dest->wined3d_surface, pDestPoints[i].x, pDestPoints[i].y,
+ Source->wined3d_surface, &pSourceRects[i], WINEDDBLTFAST_NOCOLORKEY);
}
- } else {
- for (i = 0; i < cRects; ++i) {
- IWineD3DSurface_BltFast(Dest->wineD3DSurface, 0, 0, Source->wineD3DSurface, &pSourceRects[i], WINEDDBLTFAST_NOCOLORKEY);
+ }
+ else
+ {
+ for (i = 0; i < cRects; ++i)
+ {
+ wined3d_surface_bltfast(Dest->wined3d_surface, 0, 0,
+ Source->wined3d_surface, &pSourceRects[i], WINEDDBLTFAST_NOCOLORKEY);
}
}
}
@@ -1005,7 +1017,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetFrontBuffer(IDirect3DDevice8 *ifac
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetFrontBufferData(This->WineD3DDevice, 0, destSurface->wineD3DSurface);
+ hr = IWineD3DDevice_GetFrontBufferData(This->WineD3DDevice, 0, destSurface->wined3d_surface);
wined3d_mutex_unlock();
return hr;
@@ -1017,7 +1029,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_SetRenderTarget(IDirect3DDevice8 *ifa
IDirect3DDevice8Impl *This = impl_from_IDirect3DDevice8(iface);
IDirect3DSurface8Impl *pSurface = (IDirect3DSurface8Impl *)pRenderTarget;
IDirect3DSurface8Impl *pZSurface = (IDirect3DSurface8Impl *)pNewZStencil;
- IWineD3DSurface *original_ds = NULL;
+ struct wined3d_surface *original_ds = NULL;
HRESULT hr;
TRACE("iface %p, render_target %p, depth_stencil %p.\n", iface, pRenderTarget, pNewZStencil);
@@ -1042,9 +1054,9 @@ static HRESULT WINAPI IDirect3DDevice8Impl_SetRenderTarget(IDirect3DDevice8 *ifa
pSurface = (IDirect3DSurface8Impl *)orig_rt;
}
- wined3d_resource = IWineD3DSurface_GetResource(pZSurface->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(pZSurface->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &ds_desc);
- wined3d_resource = IWineD3DSurface_GetResource(pSurface->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(pSurface->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &rt_desc);
if (orig_rt) IDirect3DSurface8_Release(orig_rt);
@@ -1059,14 +1071,15 @@ static HRESULT WINAPI IDirect3DDevice8Impl_SetRenderTarget(IDirect3DDevice8 *ifa
hr = IWineD3DDevice_GetDepthStencilSurface(This->WineD3DDevice, &original_ds);
if (hr == WINED3D_OK || hr == WINED3DERR_NOTFOUND)
{
- hr = IWineD3DDevice_SetDepthStencilSurface(This->WineD3DDevice, pZSurface ? pZSurface->wineD3DSurface : NULL);
+ hr = IWineD3DDevice_SetDepthStencilSurface(This->WineD3DDevice, pZSurface ? pZSurface->wined3d_surface : NULL);
if (SUCCEEDED(hr) && pRenderTarget)
{
- hr = IWineD3DDevice_SetRenderTarget(This->WineD3DDevice, 0, pSurface->wineD3DSurface, TRUE);
+ hr = IWineD3DDevice_SetRenderTarget(This->WineD3DDevice, 0, pSurface->wined3d_surface, TRUE);
if (FAILED(hr)) IWineD3DDevice_SetDepthStencilSurface(This->WineD3DDevice, original_ds);
}
}
- if (original_ds) IWineD3DSurface_Release(original_ds);
+ if (original_ds)
+ wined3d_surface_decref(original_ds);
wined3d_mutex_unlock();
@@ -1077,7 +1090,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetRenderTarget(IDirect3DDevice8 *ifa
IDirect3DSurface8 **ppRenderTarget)
{
IDirect3DDevice8Impl *This = impl_from_IDirect3DDevice8(iface);
- IWineD3DSurface *pRenderTarget;
+ struct wined3d_surface *wined3d_surface;
HRESULT hr;
TRACE("iface %p, render_target %p.\n", iface, ppRenderTarget);
@@ -1087,12 +1100,12 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetRenderTarget(IDirect3DDevice8 *ifa
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetRenderTarget(This->WineD3DDevice, 0, &pRenderTarget);
- if (SUCCEEDED(hr) && pRenderTarget)
+ hr = IWineD3DDevice_GetRenderTarget(This->WineD3DDevice, 0, &wined3d_surface);
+ if (SUCCEEDED(hr) && wined3d_surface)
{
- *ppRenderTarget = IWineD3DSurface_GetParent(pRenderTarget);
+ *ppRenderTarget = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface8_AddRef(*ppRenderTarget);
- IWineD3DSurface_Release(pRenderTarget);
+ wined3d_surface_decref(wined3d_surface);
}
else
{
@@ -1108,7 +1121,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetDepthStencilSurface(IDirect3DDevic
IDirect3DSurface8 **ppZStencilSurface)
{
IDirect3DDevice8Impl *This = impl_from_IDirect3DDevice8(iface);
- IWineD3DSurface *pZStencilSurface;
+ struct wined3d_surface *wined3d_surface;
HRESULT hr;
TRACE("iface %p, depth_stencil %p.\n", iface, ppZStencilSurface);
@@ -1118,12 +1131,12 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetDepthStencilSurface(IDirect3DDevic
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetDepthStencilSurface(This->WineD3DDevice, &pZStencilSurface);
+ hr = IWineD3DDevice_GetDepthStencilSurface(This->WineD3DDevice, &wined3d_surface);
if (SUCCEEDED(hr))
{
- *ppZStencilSurface = IWineD3DSurface_GetParent(pZStencilSurface);
+ *ppZStencilSurface = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface8_AddRef(*ppZStencilSurface);
- IWineD3DSurface_Release(pZStencilSurface);
+ wined3d_surface_decref(wined3d_surface);
}
else
{
@@ -2806,7 +2819,7 @@ static void STDMETHODCALLTYPE device_parent_WineD3DDeviceCreated(IWineD3DDeviceP
static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format, DWORD usage,
- WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, IWineD3DSurface **surface)
+ WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, struct wined3d_surface **surface)
{
IDirect3DDevice8Impl *This = impl_from_IWineD3DDeviceParent(iface);
IDirect3DSurface8Impl *d3d_surface;
@@ -2829,8 +2842,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
return hr;
}
- *surface = d3d_surface->wineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = d3d_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
d3d_surface->container = container_parent;
IUnknown_Release(d3d_surface->parentDevice);
@@ -2845,7 +2858,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format,
WINED3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL lockable,
- IWineD3DSurface **surface)
+ struct wined3d_surface **surface)
{
IDirect3DDevice8Impl *This = impl_from_IWineD3DDeviceParent(iface);
IDirect3DSurface8Impl *d3d_surface;
@@ -2863,8 +2876,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
return hr;
}
- *surface = d3d_surface->wineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = d3d_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
d3d_surface->container = (IUnknown *)&This->IDirect3DDevice8_iface;
/* Implicit surfaces are created with an refcount of 0 */
@@ -2875,7 +2888,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3DDeviceParent *iface,
UINT width, UINT height, enum wined3d_format_id format, WINED3DMULTISAMPLE_TYPE multisample_type,
- DWORD multisample_quality, BOOL discard, IWineD3DSurface **surface)
+ DWORD multisample_quality, BOOL discard, struct wined3d_surface **surface)
{
IDirect3DDevice8Impl *This = impl_from_IWineD3DDeviceParent(iface);
IDirect3DSurface8Impl *d3d_surface;
@@ -2893,8 +2906,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3
return hr;
}
- *surface = d3d_surface->wineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = d3d_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
d3d_surface->container = (IUnknown *)&This->IDirect3DDevice8_iface;
/* Implicit surfaces are created with an refcount of 0 */
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 0584276..e4d134f 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -61,7 +61,7 @@ static ULONG WINAPI IDirect3DSurface8Impl_AddRef(LPDIRECT3DSURFACE8 iface) {
{
if (This->parentDevice) IUnknown_AddRef(This->parentDevice);
wined3d_mutex_lock();
- IUnknown_AddRef(This->wineD3DSurface);
+ wined3d_surface_incref(This->wined3d_surface);
wined3d_mutex_unlock();
}
@@ -89,7 +89,7 @@ static ULONG WINAPI IDirect3DSurface8Impl_Release(LPDIRECT3DSURFACE8 iface) {
/* Implicit surfaces are destroyed with the device, not if refcount reaches 0. */
wined3d_mutex_lock();
- IWineD3DSurface_Release(This->wineD3DSurface);
+ wined3d_surface_decref(This->wined3d_surface);
wined3d_mutex_unlock();
if (parentDevice) IDirect3DDevice8_Release(parentDevice);
@@ -139,7 +139,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_SetPrivateData(LPDIRECT3DSURFACE8 if
iface, debugstr_guid(refguid), pData, SizeOfData, Flags);
wined3d_mutex_lock();
- hr = IWineD3DSurface_SetPrivateData(This->wineD3DSurface, refguid, pData, SizeOfData, Flags);
+ hr = wined3d_surface_set_private_data(This->wined3d_surface, refguid, pData, SizeOfData, Flags);
wined3d_mutex_unlock();
return hr;
@@ -153,7 +153,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetPrivateData(LPDIRECT3DSURFACE8 if
iface, debugstr_guid(refguid), pData, pSizeOfData);
wined3d_mutex_lock();
- hr = IWineD3DSurface_GetPrivateData(This->wineD3DSurface, refguid, pData, pSizeOfData);
+ hr = wined3d_surface_get_private_data(This->wined3d_surface, refguid, pData, pSizeOfData);
wined3d_mutex_unlock();
return hr;
@@ -166,7 +166,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_FreePrivateData(LPDIRECT3DSURFACE8 i
TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid));
wined3d_mutex_lock();
- hr = IWineD3DSurface_FreePrivateData(This->wineD3DSurface, refguid);
+ hr = wined3d_surface_free_private_data(This->wined3d_surface, refguid);
wined3d_mutex_unlock();
return hr;
@@ -196,7 +196,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(IDirect3DSurface8 *iface, D3
TRACE("iface %p, desc %p.\n", iface, desc);
wined3d_mutex_lock();
- wined3d_resource = IWineD3DSurface_GetResource(This->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(This->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
wined3d_mutex_unlock();
@@ -236,7 +236,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_LockRect(LPDIRECT3DSURFACE8 iface, D
}
}
- hr = IWineD3DSurface_Map(This->wineD3DSurface, (WINED3DLOCKED_RECT *)pLockedRect, pRect, Flags);
+ hr = wined3d_surface_map(This->wined3d_surface, (WINED3DLOCKED_RECT *)pLockedRect, pRect, Flags);
wined3d_mutex_unlock();
return hr;
@@ -249,7 +249,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_UnlockRect(LPDIRECT3DSURFACE8 iface)
TRACE("iface %p.\n", iface);
wined3d_mutex_lock();
- hr = IWineD3DSurface_Unmap(This->wineD3DSurface);
+ hr = wined3d_surface_unmap(This->wined3d_surface);
wined3d_mutex_unlock();
switch(hr)
@@ -306,7 +306,7 @@ HRESULT surface_init(IDirect3DSurface8Impl *surface, IDirect3DDevice8Impl *devic
wined3d_mutex_lock();
hr = IWineD3DDevice_CreateSurface(device->WineD3DDevice, width, height, wined3dformat_from_d3dformat(format),
lockable, discard, level, usage & WINED3DUSAGE_MASK, (WINED3DPOOL)pool, multisample_type,
- multisample_quality, SURFACE_OPENGL, surface, &d3d8_surface_wined3d_parent_ops, &surface->wineD3DSurface);
+ multisample_quality, SURFACE_OPENGL, surface, &d3d8_surface_wined3d_parent_ops, &surface->wined3d_surface);
wined3d_mutex_unlock();
if (FAILED(hr))
{
diff --git a/dlls/d3d8/swapchain.c b/dlls/d3d8/swapchain.c
index 9ede35d..d323bba 100644
--- a/dlls/d3d8/swapchain.c
+++ b/dlls/d3d8/swapchain.c
@@ -109,7 +109,7 @@ static HRESULT WINAPI IDirect3DSwapChain8Impl_GetBackBuffer(IDirect3DSwapChain8
UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface8 **ppBackBuffer)
{
IDirect3DSwapChain8Impl *This = impl_from_IDirect3DSwapChain8(iface);
- IWineD3DSurface *mySurface = NULL;
+ struct wined3d_surface *wined3d_surface = NULL;
HRESULT hr;
TRACE("iface %p, backbuffer_idx %u, backbuffer_type %#x, backbuffer %p.\n",
@@ -117,12 +117,12 @@ static HRESULT WINAPI IDirect3DSwapChain8Impl_GetBackBuffer(IDirect3DSwapChain8
wined3d_mutex_lock();
hr = wined3d_swapchain_get_back_buffer(This->wined3d_swapchain,
- iBackBuffer, (WINED3DBACKBUFFER_TYPE)Type, &mySurface);
- if (SUCCEEDED(hr) && mySurface)
+ iBackBuffer, (WINED3DBACKBUFFER_TYPE)Type, &wined3d_surface);
+ if (SUCCEEDED(hr) && wined3d_surface)
{
- *ppBackBuffer = IWineD3DSurface_GetParent(mySurface);
+ *ppBackBuffer = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface8_AddRef(*ppBackBuffer);
- IWineD3DSurface_Release(mySurface);
+ wined3d_surface_decref(wined3d_surface);
}
wined3d_mutex_unlock();
diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h
index fe68b53..dc7dc79 100644
--- a/dlls/d3d9/d3d9_private.h
+++ b/dlls/d3d9/d3d9_private.h
@@ -225,12 +225,8 @@ typedef struct IDirect3DSurface9Impl
/* IUnknown fields */
const IDirect3DSurface9Vtbl *lpVtbl;
LONG ref;
-
- /* IDirect3DResource9 fields */
- IWineD3DSurface *wineD3DSurface;
-
- /* Parent reference */
- LPDIRECT3DDEVICE9EX parentDevice;
+ struct wined3d_surface *wined3d_surface;
+ IDirect3DDevice9Ex *parentDevice;
/* The surface container */
IUnknown *container;
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 5e70b45..915fdf0 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -435,7 +435,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_SetCursorProperties(IDirect3DDevice9E
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_SetCursorProperties(This->WineD3DDevice, XHotSpot, YHotSpot, pSurface->wineD3DSurface);
+ hr = IWineD3DDevice_SetCursorProperties(This->WineD3DDevice, XHotSpot, YHotSpot, pSurface->wined3d_surface);
wined3d_mutex_unlock();
return hr;
@@ -698,7 +698,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetBackBuffer(IDirect3DDevice9Ex *ifa
UINT iSwapChain, UINT BackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9 **ppBackBuffer)
{
IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface);
- IWineD3DSurface *retSurface = NULL;
+ struct wined3d_surface *wined3d_surface = NULL;
HRESULT hr;
TRACE("iface %p, swapchain %u, backbuffer_idx %u, backbuffer_type %#x, backbuffer %p.\n",
@@ -706,12 +706,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetBackBuffer(IDirect3DDevice9Ex *ifa
wined3d_mutex_lock();
hr = IWineD3DDevice_GetBackBuffer(This->WineD3DDevice, iSwapChain,
- BackBuffer, (WINED3DBACKBUFFER_TYPE) Type, &retSurface);
- if (SUCCEEDED(hr) && retSurface && ppBackBuffer)
+ BackBuffer, (WINED3DBACKBUFFER_TYPE) Type, &wined3d_surface);
+ if (SUCCEEDED(hr) && wined3d_surface && ppBackBuffer)
{
- *ppBackBuffer = IWineD3DSurface_GetParent(retSurface);
+ *ppBackBuffer = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface9_AddRef(*ppBackBuffer);
- IWineD3DSurface_Release(retSurface);
+ wined3d_surface_decref(wined3d_surface);
}
wined3d_mutex_unlock();
@@ -1021,7 +1021,9 @@ static HRESULT WINAPI IDirect3DDevice9Impl_UpdateSurface(IDirect3DDevice9Ex *ifa
iface, pSourceSurface, pSourceRect, pDestinationSurface, pDestPoint);
wined3d_mutex_lock();
- hr = IWineD3DDevice_UpdateSurface(This->WineD3DDevice, ((IDirect3DSurface9Impl *)pSourceSurface)->wineD3DSurface, pSourceRect, ((IDirect3DSurface9Impl *)pDestinationSurface)->wineD3DSurface, pDestPoint);
+ hr = IWineD3DDevice_UpdateSurface(This->WineD3DDevice,
+ ((IDirect3DSurface9Impl *)pSourceSurface)->wined3d_surface, pSourceRect,
+ ((IDirect3DSurface9Impl *)pDestinationSurface)->wined3d_surface, pDestPoint);
wined3d_mutex_unlock();
return hr;
@@ -1054,7 +1056,8 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTargetData(IDirect3DDevice9E
TRACE("iface %p, render_target %p, dst_surface %p.\n", iface, pRenderTarget, pDestSurface);
wined3d_mutex_lock();
- hr = IWineD3DSurface_BltFast(destSurface->wineD3DSurface, 0, 0, renderTarget->wineD3DSurface, NULL, WINEDDBLTFAST_NOCOLORKEY);
+ hr = wined3d_surface_bltfast(destSurface->wined3d_surface, 0, 0,
+ renderTarget->wined3d_surface, NULL, WINEDDBLTFAST_NOCOLORKEY);
wined3d_mutex_unlock();
return hr;
@@ -1070,7 +1073,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetFrontBufferData(IDirect3DDevice9Ex
TRACE("iface %p, swapchain %u, dst_surface %p.\n", iface, iSwapChain, pDestSurface);
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetFrontBufferData(This->WineD3DDevice, iSwapChain, destSurface->wineD3DSurface);
+ hr = IWineD3DDevice_GetFrontBufferData(This->WineD3DDevice, iSwapChain, destSurface->wined3d_surface);
wined3d_mutex_unlock();
return hr;
@@ -1087,7 +1090,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_StretchRect(IDirect3DDevice9Ex *iface
iface, pSourceSurface, pSourceRect, pDestSurface, pDestRect, Filter);
wined3d_mutex_lock();
- hr = IWineD3DSurface_Blt(dst->wineD3DSurface, pDestRect, src->wineD3DSurface, pSourceRect, 0, NULL, Filter);
+ hr = wined3d_surface_blt(dst->wined3d_surface, pDestRect, src->wined3d_surface, pSourceRect, 0, NULL, Filter);
wined3d_mutex_unlock();
return hr;
@@ -1113,7 +1116,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(IDirect3DDevice9Ex *iface,
wined3d_mutex_lock();
- wined3d_resource = IWineD3DSurface_GetResource(surface->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(surface->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &desc);
/* This method is only allowed with surfaces that are render targets, or
@@ -1126,7 +1129,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(IDirect3DDevice9Ex *iface,
}
/* Colorfill can only be used on rendertarget surfaces, or offscreen plain surfaces in D3DPOOL_DEFAULT */
- hr = IWineD3DDevice_ColorFill(This->WineD3DDevice, surface->wineD3DSurface, pRect, &c);
+ hr = IWineD3DDevice_ColorFill(This->WineD3DDevice, surface->wined3d_surface, pRect, &c);
wined3d_mutex_unlock();
@@ -1178,7 +1181,8 @@ static HRESULT WINAPI IDirect3DDevice9Impl_SetRenderTarget(IDirect3DDevice9Ex *i
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_SetRenderTarget(This->WineD3DDevice, RenderTargetIndex, pSurface ? pSurface->wineD3DSurface : NULL, TRUE);
+ hr = IWineD3DDevice_SetRenderTarget(This->WineD3DDevice, RenderTargetIndex,
+ pSurface ? pSurface->wined3d_surface : NULL, TRUE);
wined3d_mutex_unlock();
return hr;
@@ -1188,7 +1192,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTarget(IDirect3DDevice9Ex *i
DWORD RenderTargetIndex, IDirect3DSurface9 **ppRenderTarget)
{
IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface);
- IWineD3DSurface *pRenderTarget;
+ struct wined3d_surface *wined3d_surface;
HRESULT hr;
TRACE("iface %p, idx %u, surface %p.\n", iface, RenderTargetIndex, ppRenderTarget);
@@ -1205,21 +1209,21 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTarget(IDirect3DDevice9Ex *i
wined3d_mutex_lock();
- hr=IWineD3DDevice_GetRenderTarget(This->WineD3DDevice,RenderTargetIndex,&pRenderTarget);
+ hr = IWineD3DDevice_GetRenderTarget(This->WineD3DDevice, RenderTargetIndex, &wined3d_surface);
if (FAILED(hr))
{
FIXME("Call to IWineD3DDevice_GetRenderTarget failed, hr %#x\n", hr);
}
- else if (!pRenderTarget)
+ else if (!wined3d_surface)
{
*ppRenderTarget = NULL;
}
else
{
- *ppRenderTarget = IWineD3DSurface_GetParent(pRenderTarget);
+ *ppRenderTarget = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface9_AddRef(*ppRenderTarget);
- IWineD3DSurface_Release(pRenderTarget);
+ wined3d_surface_decref(wined3d_surface);
}
wined3d_mutex_unlock();
@@ -1239,7 +1243,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_SetDepthStencilSurface(IDirect3DDevic
pSurface = (IDirect3DSurface9Impl*)pZStencilSurface;
wined3d_mutex_lock();
- hr = IWineD3DDevice_SetDepthStencilSurface(This->WineD3DDevice, NULL==pSurface ? NULL : pSurface->wineD3DSurface);
+ hr = IWineD3DDevice_SetDepthStencilSurface(This->WineD3DDevice, pSurface ? pSurface->wined3d_surface : NULL);
wined3d_mutex_unlock();
return hr;
@@ -1249,7 +1253,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDepthStencilSurface(IDirect3DDevic
IDirect3DSurface9 **ppZStencilSurface)
{
IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface);
- IWineD3DSurface *pZStencilSurface;
+ struct wined3d_surface *wined3d_surface;
HRESULT hr;
TRACE("iface %p, depth_stencil %p.\n", iface, ppZStencilSurface);
@@ -1259,12 +1263,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDepthStencilSurface(IDirect3DDevic
}
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetDepthStencilSurface(This->WineD3DDevice,&pZStencilSurface);
+ hr = IWineD3DDevice_GetDepthStencilSurface(This->WineD3DDevice, &wined3d_surface);
if (SUCCEEDED(hr))
{
- *ppZStencilSurface = IWineD3DSurface_GetParent(pZStencilSurface);
+ *ppZStencilSurface = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface9_AddRef(*ppZStencilSurface);
- IWineD3DSurface_Release(pZStencilSurface);
+ wined3d_surface_decref(wined3d_surface);
}
else
{
@@ -3171,7 +3175,7 @@ static void STDMETHODCALLTYPE device_parent_WineD3DDeviceCreated(IWineD3DDeviceP
static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format, DWORD usage,
- WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, IWineD3DSurface **surface)
+ WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, struct wined3d_surface **surface)
{
struct IDirect3DDevice9Impl *This = device_from_device_parent(iface);
IDirect3DSurface9Impl *d3d_surface;
@@ -3194,8 +3198,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
return hr;
}
- *surface = d3d_surface->wineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = d3d_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
d3d_surface->container = container_parent;
IDirect3DDevice9Ex_Release(d3d_surface->parentDevice);
@@ -3210,7 +3214,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format,
WINED3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL lockable,
- IWineD3DSurface **surface)
+ struct wined3d_surface **surface)
{
struct IDirect3DDevice9Impl *This = device_from_device_parent(iface);
IDirect3DSurface9Impl *d3d_surface;
@@ -3229,8 +3233,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
return hr;
}
- *surface = d3d_surface->wineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = d3d_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
d3d_surface->container = container_parent;
/* Implicit surfaces are created with an refcount of 0 */
@@ -3241,7 +3245,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3DDeviceParent *iface,
UINT width, UINT height, enum wined3d_format_id format, WINED3DMULTISAMPLE_TYPE multisample_type,
- DWORD multisample_quality, BOOL discard, IWineD3DSurface **surface)
+ DWORD multisample_quality, BOOL discard, struct wined3d_surface **surface)
{
struct IDirect3DDevice9Impl *This = device_from_device_parent(iface);
IDirect3DSurface9Impl *d3d_surface;
@@ -3260,8 +3264,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3
return hr;
}
- *surface = d3d_surface->wineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = d3d_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
d3d_surface->container = (IUnknown *)&This->IDirect3DDevice9Ex_iface;
/* Implicit surfaces are created with an refcount of 0 */
IDirect3DSurface9_Release((IDirect3DSurface9 *)d3d_surface);
diff --git a/dlls/d3d9/surface.c b/dlls/d3d9/surface.c
index 8e81092..faa1ff2 100644
--- a/dlls/d3d9/surface.c
+++ b/dlls/d3d9/surface.c
@@ -62,7 +62,7 @@ static ULONG WINAPI IDirect3DSurface9Impl_AddRef(LPDIRECT3DSURFACE9 iface) {
{
if (This->parentDevice) IDirect3DDevice9Ex_AddRef(This->parentDevice);
wined3d_mutex_lock();
- IWineD3DSurface_AddRef(This->wineD3DSurface);
+ wined3d_surface_incref(This->wined3d_surface);
wined3d_mutex_unlock();
}
@@ -90,7 +90,7 @@ static ULONG WINAPI IDirect3DSurface9Impl_Release(LPDIRECT3DSURFACE9 iface) {
IDirect3DDevice9Ex *parentDevice = This->parentDevice;
wined3d_mutex_lock();
- IWineD3DSurface_Release(This->wineD3DSurface);
+ wined3d_surface_decref(This->wined3d_surface);
wined3d_mutex_unlock();
/* Release the device last, as it may cause the device to be destroyed. */
@@ -141,7 +141,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_SetPrivateData(LPDIRECT3DSURFACE9 if
iface, debugstr_guid(refguid), pData, SizeOfData, Flags);
wined3d_mutex_lock();
- hr = IWineD3DSurface_SetPrivateData(This->wineD3DSurface, refguid, pData, SizeOfData, Flags);
+ hr = wined3d_surface_set_private_data(This->wined3d_surface, refguid, pData, SizeOfData, Flags);
wined3d_mutex_unlock();
return hr;
@@ -155,7 +155,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_GetPrivateData(LPDIRECT3DSURFACE9 if
iface, debugstr_guid(refguid), pData, pSizeOfData);
wined3d_mutex_lock();
- hr = IWineD3DSurface_GetPrivateData(This->wineD3DSurface, refguid, pData, pSizeOfData);
+ hr = wined3d_surface_get_private_data(This->wined3d_surface, refguid, pData, pSizeOfData);
wined3d_mutex_unlock();
return hr;
@@ -168,7 +168,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_FreePrivateData(LPDIRECT3DSURFACE9 i
TRACE("iface %p, guid %s.\n", iface, debugstr_guid(refguid));
wined3d_mutex_lock();
- hr = IWineD3DSurface_FreePrivateData(This->wineD3DSurface, refguid);
+ hr = wined3d_surface_free_private_data(This->wined3d_surface, refguid);
wined3d_mutex_unlock();
return hr;
@@ -181,7 +181,7 @@ static DWORD WINAPI IDirect3DSurface9Impl_SetPriority(LPDIRECT3DSURFACE9 iface,
TRACE("iface %p, priority %u.\n", iface, PriorityNew);
wined3d_mutex_lock();
- hr = IWineD3DSurface_SetPriority(This->wineD3DSurface, PriorityNew);
+ hr = wined3d_surface_set_priority(This->wined3d_surface, PriorityNew);
wined3d_mutex_unlock();
return hr;
@@ -194,7 +194,7 @@ static DWORD WINAPI IDirect3DSurface9Impl_GetPriority(LPDIRECT3DSURFACE9 iface)
TRACE("iface %p.\n", iface);
wined3d_mutex_lock();
- hr = IWineD3DSurface_GetPriority(This->wineD3DSurface);
+ hr = wined3d_surface_get_priority(This->wined3d_surface);
wined3d_mutex_unlock();
return hr;
@@ -206,7 +206,7 @@ static void WINAPI IDirect3DSurface9Impl_PreLoad(LPDIRECT3DSURFACE9 iface) {
TRACE("iface %p.\n", iface);
wined3d_mutex_lock();
- IWineD3DSurface_PreLoad(This->wineD3DSurface);
+ wined3d_surface_preload(This->wined3d_surface);
wined3d_mutex_unlock();
}
@@ -242,7 +242,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_GetDesc(IDirect3DSurface9 *iface, D3
TRACE("iface %p, desc %p.\n", iface, desc);
wined3d_mutex_lock();
- wined3d_resource = IWineD3DSurface_GetResource(This->wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(This->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
wined3d_mutex_unlock();
@@ -265,7 +265,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_LockRect(LPDIRECT3DSURFACE9 iface, D
TRACE("iface %p, locked_rect %p, rect %p, flags %#x.\n", iface, pLockedRect, pRect, Flags);
wined3d_mutex_lock();
- hr = IWineD3DSurface_Map(This->wineD3DSurface, (WINED3DLOCKED_RECT *)pLockedRect, pRect, Flags);
+ hr = wined3d_surface_map(This->wined3d_surface, (WINED3DLOCKED_RECT *)pLockedRect, pRect, Flags);
wined3d_mutex_unlock();
return hr;
@@ -278,7 +278,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_UnlockRect(LPDIRECT3DSURFACE9 iface)
TRACE("iface %p.\n", iface);
wined3d_mutex_lock();
- hr = IWineD3DSurface_Unmap(This->wineD3DSurface);
+ hr = wined3d_surface_unmap(This->wined3d_surface);
wined3d_mutex_unlock();
switch(hr)
@@ -302,7 +302,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_GetDC(LPDIRECT3DSURFACE9 iface, HDC*
}
wined3d_mutex_lock();
- hr = IWineD3DSurface_GetDC(This->wineD3DSurface, phdc);
+ hr = wined3d_surface_getdc(This->wined3d_surface, phdc);
wined3d_mutex_unlock();
return hr;
@@ -315,7 +315,7 @@ static HRESULT WINAPI IDirect3DSurface9Impl_ReleaseDC(LPDIRECT3DSURFACE9 iface,
TRACE("iface %p, hdc %p.\n", iface, hdc);
wined3d_mutex_lock();
- hr = IWineD3DSurface_ReleaseDC(This->wineD3DSurface, hdc);
+ hr = wined3d_surface_releasedc(This->wined3d_surface, hdc);
wined3d_mutex_unlock();
switch (hr)
@@ -394,7 +394,7 @@ HRESULT surface_init(IDirect3DSurface9Impl *surface, IDirect3DDevice9Impl *devic
wined3d_mutex_lock();
hr = IWineD3DDevice_CreateSurface(device->WineD3DDevice, width, height, wined3dformat_from_d3dformat(format),
lockable, discard, level, usage & WINED3DUSAGE_MASK, (WINED3DPOOL)pool, multisample_type,
- multisample_quality, SURFACE_OPENGL, surface, &d3d9_surface_wined3d_parent_ops, &surface->wineD3DSurface);
+ multisample_quality, SURFACE_OPENGL, surface, &d3d9_surface_wined3d_parent_ops, &surface->wined3d_surface);
wined3d_mutex_unlock();
if (FAILED(hr))
{
diff --git a/dlls/d3d9/swapchain.c b/dlls/d3d9/swapchain.c
index 8730d16..ac19b5b 100644
--- a/dlls/d3d9/swapchain.c
+++ b/dlls/d3d9/swapchain.c
@@ -106,7 +106,7 @@ static HRESULT WINAPI IDirect3DSwapChain9Impl_GetFrontBufferData(LPDIRECT3DSWAPC
wined3d_mutex_lock();
hr = wined3d_swapchain_get_front_buffer_data(This->wined3d_swapchain,
- ((IDirect3DSurface9Impl *)pDestSurface)->wineD3DSurface);
+ ((IDirect3DSurface9Impl *)pDestSurface)->wined3d_surface);
wined3d_mutex_unlock();
return hr;
@@ -116,7 +116,7 @@ static HRESULT WINAPI IDirect3DSwapChain9Impl_GetBackBuffer(IDirect3DSwapChain9
UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9 **ppBackBuffer)
{
IDirect3DSwapChain9Impl *This = (IDirect3DSwapChain9Impl *)iface;
- IWineD3DSurface *mySurface = NULL;
+ struct wined3d_surface *wined3d_surface = NULL;
HRESULT hr;
TRACE("iface %p, backbuffer_idx %u, backbuffer_type %#x, backbuffer %p.\n",
@@ -124,12 +124,12 @@ static HRESULT WINAPI IDirect3DSwapChain9Impl_GetBackBuffer(IDirect3DSwapChain9
wined3d_mutex_lock();
hr = wined3d_swapchain_get_back_buffer(This->wined3d_swapchain,
- iBackBuffer, (WINED3DBACKBUFFER_TYPE)Type, &mySurface);
- if (SUCCEEDED(hr) && mySurface)
+ iBackBuffer, (WINED3DBACKBUFFER_TYPE)Type, &wined3d_surface);
+ if (SUCCEEDED(hr) && wined3d_surface)
{
- *ppBackBuffer = IWineD3DSurface_GetParent(mySurface);
+ *ppBackBuffer = wined3d_surface_get_parent(wined3d_surface);
IDirect3DSurface9_AddRef(*ppBackBuffer);
- IWineD3DSurface_Release(mySurface);
+ wined3d_surface_decref(wined3d_surface);
}
wined3d_mutex_unlock();
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 564f2f3..9b87b95 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1957,7 +1957,7 @@ static HRESULT WINAPI ddraw4_TestCooperativeLevel(IDirectDraw4 *iface)
static HRESULT WINAPI ddraw7_GetGDISurface(IDirectDraw7 *iface, IDirectDrawSurface7 **GDISurface)
{
IDirectDrawImpl *This = impl_from_IDirectDraw7(iface);
- IWineD3DSurface *Surf;
+ struct wined3d_surface *wined3d_surface;
IDirectDrawSurface7 *ddsurf;
HRESULT hr;
DDSCAPS2 ddsCaps;
@@ -1969,21 +1969,16 @@ static HRESULT WINAPI ddraw7_GetGDISurface(IDirectDraw7 *iface, IDirectDrawSurfa
*/
EnterCriticalSection(&ddraw_cs);
hr = IWineD3DDevice_GetBackBuffer(This->wineD3DDevice,
- 0, /* SwapChain */
- 0, /* first back buffer*/
- WINED3DBACKBUFFER_TYPE_MONO,
- &Surf);
-
- if( (hr != D3D_OK) ||
- (!Surf) )
+ 0, 0, WINED3DBACKBUFFER_TYPE_MONO, &wined3d_surface);
+ if (FAILED(hr) || !wined3d_surface)
{
ERR("IWineD3DDevice::GetBackBuffer failed\n");
LeaveCriticalSection(&ddraw_cs);
return DDERR_NOTFOUND;
}
- ddsurf = IWineD3DSurface_GetParent(Surf);
- IWineD3DSurface_Release(Surf);
+ ddsurf = wined3d_surface_get_parent(wined3d_surface);
+ wined3d_surface_decref(wined3d_surface);
/* Find the front buffer */
ddsCaps.dwCaps = DDSCAPS_FRONTBUFFER;
@@ -2384,7 +2379,7 @@ static HRESULT WINAPI ddraw7_GetSurfaceFromDC(IDirectDraw7 *iface, HDC hdc,
IDirectDrawSurface7 **Surface)
{
IDirectDrawImpl *This = impl_from_IDirectDraw7(iface);
- IWineD3DSurface *wined3d_surface;
+ struct wined3d_surface *wined3d_surface;
HRESULT hr;
TRACE("iface %p, dc %p, surface %p.\n", iface, hdc, Surface);
@@ -2399,7 +2394,7 @@ static HRESULT WINAPI ddraw7_GetSurfaceFromDC(IDirectDraw7 *iface, HDC hdc,
return DDERR_NOTFOUND;
}
- *Surface = IWineD3DSurface_GetParent(wined3d_surface);
+ *Surface = wined3d_surface_get_parent(wined3d_surface);
IDirectDrawSurface7_AddRef(*Surface);
TRACE("Returning surface %p.\n", Surface);
return DD_OK;
@@ -2518,9 +2513,9 @@ HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDE
struct wined3d_resource_desc wined3d_desc;
struct wined3d_resource *wined3d_resource;
IDirectDrawImpl *This = surfImpl->ddraw;
- struct wined3d_clipper *clipper = NULL;
- IWineD3DSurface *wineD3DSurface;
+ struct wined3d_surface *wined3d_surface;
struct wined3d_swapchain *swapchain;
+ struct wined3d_clipper *clipper;
void *parent;
HRESULT hr;
@@ -2535,27 +2530,27 @@ HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDE
/* Get the objects */
swapchain = surfImpl->wined3d_swapchain;
surfImpl->wined3d_swapchain = NULL;
- wineD3DSurface = surfImpl->WineD3DSurface;
+ wined3d_surface = surfImpl->wined3d_surface;
/* get the clipper */
- IWineD3DSurface_GetClipper(wineD3DSurface, &clipper);
+ clipper = wined3d_surface_get_clipper(wined3d_surface);
/* Get the surface properties */
- wined3d_resource = IWineD3DSurface_GetResource(wineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
- parent = IWineD3DSurface_GetParent(wineD3DSurface);
+ parent = wined3d_surface_get_parent(wined3d_surface);
hr = IWineD3DDevice_CreateSurface(This->wineD3DDevice, wined3d_desc.width, wined3d_desc.height,
wined3d_desc.format, TRUE, FALSE, surfImpl->mipmap_level, wined3d_desc.usage, wined3d_desc.pool,
wined3d_desc.multisample_type, wined3d_desc.multisample_quality, This->ImplType,
- parent, &ddraw_surface_wined3d_parent_ops, &surfImpl->WineD3DSurface);
+ parent, &ddraw_surface_wined3d_parent_ops, &surfImpl->wined3d_surface);
if (FAILED(hr))
{
- surfImpl->WineD3DSurface = wineD3DSurface;
+ surfImpl->wined3d_surface = wined3d_surface;
return hr;
}
- IWineD3DSurface_SetClipper(surfImpl->WineD3DSurface, clipper);
+ wined3d_surface_set_clipper(surfImpl->wined3d_surface, clipper);
/* TODO: Copy the surface content, except for render targets */
@@ -2569,8 +2564,10 @@ HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDE
if (surfImpl->surface_desc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
IWineD3DDevice_UninitGDI(This->wineD3DDevice);
surfImpl->isRenderTarget = FALSE;
- } else {
- if(IWineD3DSurface_Release(wineD3DSurface) == 0)
+ }
+ else
+ {
+ if (!wined3d_surface_decref(wined3d_surface))
TRACE("Surface released successful, next surface\n");
else
ERR("Something's still holding the old WineD3DSurface\n");
@@ -2578,9 +2575,6 @@ HRESULT WINAPI ddraw_recreate_surfaces_cb(IDirectDrawSurface7 *surf, DDSURFACEDE
surfImpl->ImplType = This->ImplType;
- if (clipper)
- wined3d_clipper_decref(clipper);
-
return DDENUMRET_OK;
}
@@ -5660,7 +5654,7 @@ static void STDMETHODCALLTYPE device_parent_WineD3DDeviceCreated(IWineD3DDeviceP
static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format, DWORD usage,
- WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, IWineD3DSurface **surface)
+ WINED3DPOOL pool, UINT level, WINED3DCUBEMAP_FACES face, struct wined3d_surface **surface)
{
struct IDirectDrawImpl *This = ddraw_from_device_parent(iface);
IDirectDrawSurfaceImpl *surf = NULL;
@@ -5720,8 +5714,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSurface(IWineD3DDeviceParen
}
/* Return the surface */
- *surface = surf->WineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = surf->wined3d_surface;
+ wined3d_surface_incref(*surface);
TRACE("Returning wineD3DSurface %p, it belongs to surface %p\n", *surface, surf);
@@ -5752,7 +5746,7 @@ static HRESULT WINAPI findRenderTarget(IDirectDrawSurface7 *surface, DDSURFACEDE
static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDeviceParent *iface,
void *container_parent, UINT width, UINT height, enum wined3d_format_id format,
WINED3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL lockable,
- IWineD3DSurface **surface)
+ struct wined3d_surface **surface)
{
struct IDirectDrawImpl *This = ddraw_from_device_parent(iface);
IDirectDrawSurfaceImpl *d3d_surface = This->d3d_target;
@@ -5779,8 +5773,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
/* TODO: Return failure if the dimensions do not match, but this shouldn't happen */
- *surface = target->WineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = target->wined3d_surface;
+ wined3d_surface_incref(*surface);
target->isRenderTarget = TRUE;
TRACE("Returning wineD3DSurface %p, it belongs to surface %p\n", *surface, d3d_surface);
@@ -5790,7 +5784,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateRenderTarget(IWineD3DDevice
static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3DDeviceParent *iface,
UINT width, UINT height, enum wined3d_format_id format, WINED3DMULTISAMPLE_TYPE multisample_type,
- DWORD multisample_quality, BOOL discard, IWineD3DSurface **surface)
+ DWORD multisample_quality, BOOL discard, struct wined3d_surface **surface)
{
struct IDirectDrawImpl *This = ddraw_from_device_parent(iface);
IDirectDrawSurfaceImpl *ddraw_surface;
@@ -5830,8 +5824,8 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateDepthStencilSurface(IWineD3
return hr;
}
- *surface = ddraw_surface->WineD3DSurface;
- IWineD3DSurface_AddRef(*surface);
+ *surface = ddraw_surface->wined3d_surface;
+ wined3d_surface_incref(*surface);
IDirectDrawSurface7_Release((IDirectDrawSurface7 *)ddraw_surface);
return D3D_OK;
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 2e029b9..058804a 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -180,7 +180,7 @@ struct IDirectDrawSurfaceImpl
/* Connections to other Objects */
IDirectDrawImpl *ddraw;
- IWineD3DSurface *WineD3DSurface;
+ struct wined3d_surface *wined3d_surface;
struct wined3d_texture *wined3d_texture;
struct wined3d_swapchain *wined3d_swapchain;
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 1c2b89c..3909987 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -298,7 +298,7 @@ IDirect3DDeviceImpl_7_Release(IDirect3DDevice7 *iface)
/* Set the device up to render to the front buffer since the back
* buffer will vanish soon. */
IWineD3DDevice_SetRenderTarget(This->wineD3DDevice, 0,
- This->ddraw->d3d_target->WineD3DSurface, TRUE);
+ This->ddraw->d3d_target->wined3d_surface, TRUE);
/* Release the WineD3DDevice. This won't destroy it */
if(IWineD3DDevice_Release(This->wineD3DDevice) <= 0)
@@ -1861,10 +1861,8 @@ IDirect3DDeviceImpl_7_SetRenderTarget(IDirect3DDevice7 *iface,
return D3D_OK;
}
- hr = IWineD3DDevice_SetRenderTarget(This->wineD3DDevice,
- 0,
- Target ? Target->WineD3DSurface : NULL,
- FALSE);
+ hr = IWineD3DDevice_SetRenderTarget(This->wineD3DDevice, 0,
+ Target ? Target->wined3d_surface : NULL, FALSE);
if(hr != D3D_OK)
{
LeaveCriticalSection(&ddraw_cs);
@@ -5563,7 +5561,7 @@ IDirect3DDeviceImpl_7_PreLoad(IDirect3DDevice7 *iface,
return DDERR_INVALIDPARAMS;
EnterCriticalSection(&ddraw_cs);
- IWineD3DSurface_PreLoad(surf->WineD3DSurface);
+ wined3d_surface_preload(surf->wined3d_surface);
LeaveCriticalSection(&ddraw_cs);
return D3D_OK;
}
@@ -5978,15 +5976,14 @@ static void copy_mipmap_chain(IDirect3DDeviceImpl *device,
* Some games like Sacrifice set palette after Load, and it is a waste of effort to try to load texture without palette and generates
* warnings in wined3d. */
if (!palette_missing)
- hr = IWineD3DDevice_UpdateSurface(device->wineD3DDevice, src_level->WineD3DSurface, &rect, dest_level->WineD3DSurface,
- &point);
+ hr = IWineD3DDevice_UpdateSurface(device->wineD3DDevice, src_level->wined3d_surface,
+ &rect, dest_level->wined3d_surface, &point);
if (palette_missing || FAILED(hr))
{
/* UpdateSurface may fail e.g. if dest is in system memory. Fall back to BltFast that is less strict. */
- IWineD3DSurface_BltFast(dest_level->WineD3DSurface,
- point.x, point.y,
- src_level->WineD3DSurface, &rect, 0);
+ wined3d_surface_bltfast(dest_level->wined3d_surface, point.x, point.y,
+ src_level->wined3d_surface, &rect, 0);
}
ddsd.ddsCaps.dwCaps = DDSCAPS_TEXTURE;
@@ -6778,9 +6775,8 @@ IDirect3DDeviceImpl_UpdateDepthStencil(IDirect3DDeviceImpl *This)
}
dsi = (IDirectDrawSurfaceImpl *)depthStencil;
- TRACE("Setting wined3d depth stencil to %p (wined3d %p)\n", dsi, dsi->WineD3DSurface);
- IWineD3DDevice_SetDepthStencilSurface(This->wineD3DDevice,
- dsi->WineD3DSurface);
+ TRACE("Setting wined3d depth stencil to %p (wined3d %p)\n", dsi, dsi->wined3d_surface);
+ IWineD3DDevice_SetDepthStencilSurface(This->wineD3DDevice, dsi->wined3d_surface);
IDirectDrawSurface7_Release(depthStencil);
return WINED3DZB_TRUE;
@@ -6827,7 +6823,7 @@ HRESULT d3d_device_init(IDirect3DDeviceImpl *device, IDirectDrawImpl *ddraw, IDi
IWineD3DDevice_AddRef(ddraw->wineD3DDevice);
/* Render to the back buffer */
- hr = IWineD3DDevice_SetRenderTarget(ddraw->wineD3DDevice, 0, target->WineD3DSurface, TRUE);
+ hr = IWineD3DDevice_SetRenderTarget(ddraw->wineD3DDevice, 0, target->wined3d_surface, TRUE);
if (FAILED(hr))
{
ERR("Failed to set render target, hr %#x.\n", hr);
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 84082c5..a4ff75c 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -183,8 +183,8 @@ static ULONG WINAPI ddraw_surface7_AddRef(IDirectDrawSurface7 *iface)
if (refCount == 1)
{
EnterCriticalSection(&ddraw_cs);
- if (This->WineD3DSurface)
- IWineD3DSurface_AddRef(This->WineD3DSurface);
+ if (This->wined3d_surface)
+ wined3d_surface_incref(This->wined3d_surface);
if (This->wined3d_texture)
wined3d_texture_incref(This->wined3d_texture);
LeaveCriticalSection(&ddraw_cs);
@@ -247,8 +247,8 @@ void ddraw_surface_destroy(IDirectDrawSurfaceImpl *This)
WARN("(%p): Destroying surface with refount %d\n", This, This->ref);
}
- if (This->WineD3DSurface)
- IWineD3DSurface_Release(This->WineD3DSurface);
+ if (This->wined3d_surface)
+ wined3d_surface_decref(This->wined3d_surface);
}
static void ddraw_surface_cleanup(IDirectDrawSurfaceImpl *surface)
@@ -633,7 +633,7 @@ static HRESULT WINAPI ddraw_surface7_Lock(IDirectDrawSurface7 *iface,
}
}
- hr = IWineD3DSurface_Map(This->WineD3DSurface, &LockedRect, Rect, Flags);
+ hr = wined3d_surface_map(This->wined3d_surface, &LockedRect, Rect, Flags);
if (FAILED(hr))
{
LeaveCriticalSection(&ddraw_cs);
@@ -695,7 +695,7 @@ static HRESULT WINAPI ddraw_surface7_Unlock(IDirectDrawSurface7 *iface, RECT *pR
TRACE("iface %p, rect %s.\n", iface, wine_dbgstr_rect(pRect));
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_Unmap(This->WineD3DSurface);
+ hr = wined3d_surface_unmap(This->wined3d_surface);
if (SUCCEEDED(hr))
{
This->surface_desc.lpSurface = NULL;
@@ -768,9 +768,7 @@ static HRESULT WINAPI ddraw_surface7_Flip(IDirectDrawSurface7 *iface, IDirectDra
ddraw_surface7_Release(Override7);
}
- hr = IWineD3DSurface_Flip(This->WineD3DSurface,
- Override->WineD3DSurface,
- Flags);
+ hr = wined3d_surface_flip(This->wined3d_surface, Override->wined3d_surface, Flags);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -854,11 +852,11 @@ static HRESULT WINAPI ddraw_surface7_Blt(IDirectDrawSurface7 *iface, RECT *DestR
return DDERR_INVALIDPARAMS;
}
- /* TODO: Check if the DDBltFx contains any ddraw surface pointers. If it does, copy the struct,
- * and replace the ddraw surfaces with the wined3d surfaces
- * So far no blitting operations using surfaces in the bltfx struct are supported anyway.
- */
- hr = IWineD3DSurface_Blt(This->WineD3DSurface, DestRect, Src ? Src->WineD3DSurface : NULL,
+ /* TODO: Check if the DDBltFx contains any ddraw surface pointers. If it
+ * does, copy the struct, and replace the ddraw surfaces with the wined3d
+ * surfaces. So far no blitting operations using surfaces in the bltfx
+ * struct are supported anyway. */
+ hr = wined3d_surface_blt(This->wined3d_surface, DestRect, Src ? Src->wined3d_surface : NULL,
SrcRect, Flags, (WINEDDBLTFX *)DDBltFx, WINED3DTEXF_LINEAR);
LeaveCriticalSection(&ddraw_cs);
@@ -1145,8 +1143,7 @@ static HRESULT WINAPI ddraw_surface7_GetDC(IDirectDrawSurface7 *iface, HDC *hdc)
return DDERR_INVALIDPARAMS;
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_GetDC(This->WineD3DSurface,
- hdc);
+ hr = wined3d_surface_getdc(This->wined3d_surface, hdc);
LeaveCriticalSection(&ddraw_cs);
switch(hr)
{
@@ -1189,7 +1186,7 @@ static HRESULT WINAPI ddraw_surface7_ReleaseDC(IDirectDrawSurface7 *iface, HDC h
TRACE("iface %p, dc %p.\n", iface, hdc);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_ReleaseDC(This->WineD3DSurface, hdc);
+ hr = wined3d_surface_releasedc(This->wined3d_surface, hdc);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -1262,7 +1259,7 @@ static HRESULT WINAPI ddraw_surface7_SetPriority(IDirectDrawSurface7 *iface, DWO
TRACE("iface %p, priority %u.\n", iface, Priority);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_SetPriority(This->WineD3DSurface, Priority);
+ hr = wined3d_surface_set_priority(This->wined3d_surface, Priority);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -1293,7 +1290,7 @@ static HRESULT WINAPI ddraw_surface7_GetPriority(IDirectDrawSurface7 *iface, DWO
}
EnterCriticalSection(&ddraw_cs);
- *Priority = IWineD3DSurface_GetPriority(This->WineD3DSurface);
+ *Priority = wined3d_surface_get_priority(This->wined3d_surface);
LeaveCriticalSection(&ddraw_cs);
return DD_OK;
}
@@ -1325,11 +1322,7 @@ static HRESULT WINAPI ddraw_surface7_SetPrivateData(IDirectDrawSurface7 *iface,
iface, debugstr_guid(tag), Data, Size, Flags);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_SetPrivateData(This->WineD3DSurface,
- tag,
- Data,
- Size,
- Flags);
+ hr = wined3d_surface_set_private_data(This->wined3d_surface, tag, Data, Size, Flags);
LeaveCriticalSection(&ddraw_cs);
switch(hr)
{
@@ -1366,10 +1359,7 @@ static HRESULT WINAPI ddraw_surface7_GetPrivateData(IDirectDrawSurface7 *iface,
return DDERR_INVALIDPARAMS;
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_GetPrivateData(This->WineD3DSurface,
- tag,
- Data,
- Size);
+ hr = wined3d_surface_get_private_data(This->wined3d_surface, tag, Data, Size);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -1395,7 +1385,7 @@ static HRESULT WINAPI ddraw_surface7_FreePrivateData(IDirectDrawSurface7 *iface,
TRACE("iface %p, tag %s.\n", iface, debugstr_guid(tag));
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_FreePrivateData(This->WineD3DSurface, tag);
+ hr = wined3d_surface_free_private_data(This->wined3d_surface, tag);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -1626,7 +1616,7 @@ static HRESULT WINAPI ddraw_surface7_GetBltStatus(IDirectDrawSurface7 *iface, DW
TRACE("iface %p, flags %#x.\n", iface, Flags);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_GetBltStatus(This->WineD3DSurface, Flags);
+ hr = wined3d_surface_get_blt_status(This->wined3d_surface, Flags);
LeaveCriticalSection(&ddraw_cs);
switch(hr)
{
@@ -1741,7 +1731,7 @@ static HRESULT WINAPI ddraw_surface7_GetFlipStatus(IDirectDrawSurface7 *iface, D
TRACE("iface %p, flags %#x.\n", iface, Flags);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_GetFlipStatus(This->WineD3DSurface, Flags);
+ hr = wined3d_surface_get_flip_status(This->wined3d_surface, Flags);
LeaveCriticalSection(&ddraw_cs);
switch(hr)
{
@@ -1777,9 +1767,7 @@ static HRESULT WINAPI ddraw_surface7_GetOverlayPosition(IDirectDrawSurface7 *ifa
TRACE("iface %p, x %p, y %p.\n", iface, X, Y);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_GetOverlayPosition(This->WineD3DSurface,
- X,
- Y);
+ hr = wined3d_surface_get_overlay_position(This->wined3d_surface, X, Y);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -1975,7 +1963,7 @@ static HRESULT WINAPI ddraw_surface7_IsLost(IDirectDrawSurface7 *iface)
return DDERR_SURFACELOST;
}
- hr = IWineD3DSurface_IsLost(This->WineD3DSurface);
+ hr = wined3d_surface_is_lost(This->wined3d_surface);
LeaveCriticalSection(&ddraw_cs);
switch(hr)
{
@@ -2019,7 +2007,7 @@ static HRESULT WINAPI ddraw_surface7_Restore(IDirectDrawSurface7 *iface)
IDirectDrawSurface_AddRef(iface);
ddraw_recreate_surfaces_cb(iface, &This->surface_desc, NULL /* Not needed */);
}
- hr = IWineD3DSurface_Restore(This->WineD3DSurface);
+ hr = wined3d_surface_restore(This->wined3d_surface);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -2051,9 +2039,7 @@ static HRESULT WINAPI ddraw_surface7_SetOverlayPosition(IDirectDrawSurface7 *ifa
TRACE("iface %p, x %d, y %d.\n", iface, X, Y);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_SetOverlayPosition(This->WineD3DSurface,
- X,
- Y);
+ hr = wined3d_surface_set_overlay_position(This->wined3d_surface, X, Y);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -2091,12 +2077,8 @@ static HRESULT WINAPI ddraw_surface7_UpdateOverlay(IDirectDrawSurface7 *iface, R
iface, wine_dbgstr_rect(SrcRect), DstSurface, wine_dbgstr_rect(DstRect), Flags, FX);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_UpdateOverlay(This->WineD3DSurface,
- SrcRect,
- Dst ? Dst->WineD3DSurface : NULL,
- DstRect,
- Flags,
- (WINEDDOVERLAYFX *) FX);
+ hr = wined3d_surface_update_overlay(This->wined3d_surface, SrcRect,
+ Dst ? Dst->wined3d_surface : NULL, DstRect, Flags, (WINEDDOVERLAYFX *)FX);
LeaveCriticalSection(&ddraw_cs);
switch(hr) {
case WINED3DERR_INVALIDCALL: return DDERR_INVALIDPARAMS;
@@ -2165,9 +2147,8 @@ static HRESULT WINAPI ddraw_surface7_UpdateOverlayZOrder(IDirectDrawSurface7 *if
TRACE("iface %p, flags %#x, reference %p.\n", iface, Flags, DDSRef);
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_UpdateOverlayZOrder(This->WineD3DSurface,
- Flags,
- Ref ? Ref->WineD3DSurface : NULL);
+ hr = wined3d_surface_update_overlay_z_order(This->wined3d_surface,
+ Flags, Ref ? Ref->wined3d_surface : NULL);
LeaveCriticalSection(&ddraw_cs);
return hr;
}
@@ -2413,11 +2394,8 @@ static HRESULT WINAPI ddraw_surface7_BltFast(IDirectDrawSurface7 *iface, DWORD d
}
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_BltFast(This->WineD3DSurface,
- dstx, dsty,
- src ? src->WineD3DSurface : NULL,
- rsrc,
- trans);
+ hr = wined3d_surface_bltfast(This->wined3d_surface, dstx, dsty,
+ src ? src->wined3d_surface : NULL, rsrc, trans);
LeaveCriticalSection(&ddraw_cs);
switch(hr)
{
@@ -2519,7 +2497,8 @@ static HRESULT WINAPI ddraw_surface7_SetClipper(IDirectDrawSurface7 *iface, IDir
if(oldClipper)
IDirectDrawClipper_Release((IDirectDrawClipper *)oldClipper);
- hr = IWineD3DSurface_SetClipper(This->WineD3DSurface, This->clipper ? This->clipper->wineD3DClipper : NULL);
+ hr = wined3d_surface_set_clipper(This->wined3d_surface,
+ This->clipper ? This->clipper->wineD3DClipper : NULL);
if (This->wined3d_swapchain)
{
@@ -2585,9 +2564,8 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
}
if(newFormat != PixelFormat_DD2WineD3D(&This->surface_desc.u4.ddpfPixelFormat) )
{
- hr = IWineD3DSurface_SetFormat(This->WineD3DSurface,
- newFormat);
- if(hr != DD_OK)
+ hr = wined3d_surface_set_format(This->wined3d_surface, newFormat);
+ if (FAILED(hr))
{
LeaveCriticalSection(&ddraw_cs);
return hr;
@@ -2596,32 +2574,28 @@ static HRESULT WINAPI ddraw_surface7_SetSurfaceDesc(IDirectDrawSurface7 *iface,
}
if (DDSD->dwFlags & DDSD_CKDESTOVERLAY)
{
- IWineD3DSurface_SetColorKey(This->WineD3DSurface,
- DDCKEY_DESTOVERLAY,
- (WINEDDCOLORKEY *) &DDSD->u3.ddckCKDestOverlay);
+ wined3d_surface_set_color_key(This->wined3d_surface, DDCKEY_DESTOVERLAY,
+ (WINEDDCOLORKEY *)&DDSD->u3.ddckCKDestOverlay);
}
if (DDSD->dwFlags & DDSD_CKDESTBLT)
{
- IWineD3DSurface_SetColorKey(This->WineD3DSurface,
- DDCKEY_DESTBLT,
- (WINEDDCOLORKEY *) &DDSD->ddckCKDestBlt);
+ wined3d_surface_set_color_key(This->wined3d_surface, DDCKEY_DESTBLT,
+ (WINEDDCOLORKEY *)&DDSD->ddckCKDestBlt);
}
if (DDSD->dwFlags & DDSD_CKSRCOVERLAY)
{
- IWineD3DSurface_SetColorKey(This->WineD3DSurface,
- DDCKEY_SRCOVERLAY,
- (WINEDDCOLORKEY *) &DDSD->ddckCKSrcOverlay);
+ wined3d_surface_set_color_key(This->wined3d_surface, DDCKEY_SRCOVERLAY,
+ (WINEDDCOLORKEY *)&DDSD->ddckCKSrcOverlay);
}
if (DDSD->dwFlags & DDSD_CKSRCBLT)
{
- IWineD3DSurface_SetColorKey(This->WineD3DSurface,
- DDCKEY_SRCBLT,
- (WINEDDCOLORKEY *) &DDSD->ddckCKSrcBlt);
+ wined3d_surface_set_color_key(This->wined3d_surface, DDCKEY_SRCBLT,
+ (WINEDDCOLORKEY *)&DDSD->ddckCKSrcBlt);
}
if (DDSD->dwFlags & DDSD_LPSURFACE && DDSD->lpSurface)
{
- hr = IWineD3DSurface_SetMem(This->WineD3DSurface, DDSD->lpSurface);
- if(hr != WINED3D_OK)
+ hr = wined3d_surface_set_mem(This->wined3d_surface, DDSD->lpSurface);
+ if (FAILED(hr))
{
/* No need for a trace here, wined3d does that for us */
switch(hr)
@@ -2668,7 +2642,7 @@ static HRESULT WINAPI ddraw_surface7_GetPalette(IDirectDrawSurface7 *iface, IDir
{
IDirectDrawSurfaceImpl *This = (IDirectDrawSurfaceImpl *)iface;
struct wined3d_palette *wined3d_palette;
- HRESULT hr;
+ HRESULT hr = DD_OK;
TRACE("iface %p, palette %p.\n", iface, Pal);
@@ -2676,13 +2650,7 @@ static HRESULT WINAPI ddraw_surface7_GetPalette(IDirectDrawSurface7 *iface, IDir
return DDERR_INVALIDPARAMS;
EnterCriticalSection(&ddraw_cs);
- hr = IWineD3DSurface_GetPalette(This->WineD3DSurface, &wined3d_palette);
- if (FAILED(hr))
- {
- LeaveCriticalSection(&ddraw_cs);
- return hr;
- }
-
+ wined3d_palette = wined3d_surface_get_palette(This->wined3d_surface);
if (wined3d_palette)
{
*Pal = wined3d_palette_get_parent(wined3d_palette);
@@ -2728,10 +2696,8 @@ SetColorKeyEnum(IDirectDrawSurface7 *surface,
struct SCKContext *ctx = context;
HRESULT hr;
- hr = IWineD3DSurface_SetColorKey(This->WineD3DSurface,
- ctx->Flags,
- ctx->CKey);
- if(hr != DD_OK)
+ hr = wined3d_surface_set_color_key(This->wined3d_surface, ctx->Flags, ctx->CKey);
+ if (FAILED(hr))
{
WARN("IWineD3DSurface_SetColorKey failed, hr = %08x\n", hr);
ctx->ret = hr;
@@ -2827,7 +2793,7 @@ static HRESULT WINAPI ddraw_surface7_SetColorKey(IDirectDrawSurface7 *iface, DWO
return DDERR_INVALIDPARAMS;
}
}
- ctx.ret = IWineD3DSurface_SetColorKey(This->WineD3DSurface, Flags, ctx.CKey);
+ ctx.ret = wined3d_surface_set_color_key(This->wined3d_surface, Flags, ctx.CKey);
ddraw_surface7_EnumAttachedSurfaces(iface, &ctx, SetColorKeyEnum);
LeaveCriticalSection(&ddraw_cs);
switch(ctx.ret)
@@ -2882,8 +2848,7 @@ static HRESULT WINAPI ddraw_surface7_SetPalette(IDirectDrawSurface7 *iface, IDir
if(oldPal) IDirectDrawPalette_Release(oldPal); /* For the GetPalette */
/* Set the new Palette */
- IWineD3DSurface_SetPalette(This->WineD3DSurface,
- PalImpl ? PalImpl->wineD3DPalette : NULL);
+ wined3d_surface_set_palette(This->wined3d_surface, PalImpl ? PalImpl->wineD3DPalette : NULL);
/* AddRef the Palette */
if(Pal) IDirectDrawPalette_AddRef(Pal);
@@ -3188,23 +3153,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
dst_surface->surface_desc.ddsCaps.dwCaps &= ~DDSCAPS_ALLOCONLOAD;
/* Get the palettes */
- hr = IWineD3DSurface_GetPalette(dst_surface->WineD3DSurface, &wined3d_dst_pal);
- if (FAILED(hr))
- {
- ERR("Failed to get destination palette, hr %#x.\n", hr);
- LeaveCriticalSection(&ddraw_cs);
- return D3DERR_TEXTURE_LOAD_FAILED;
- }
+ wined3d_dst_pal = wined3d_surface_get_palette(dst_surface->wined3d_surface);
if (wined3d_dst_pal)
dst_pal = wined3d_palette_get_parent(wined3d_dst_pal);
- hr = IWineD3DSurface_GetPalette(src_surface->WineD3DSurface, &wined3d_src_pal);
- if (FAILED(hr))
- {
- ERR("Failed to get source palette, hr %#x.\n", hr);
- LeaveCriticalSection(&ddraw_cs);
- return D3DERR_TEXTURE_LOAD_FAILED;
- }
+ wined3d_src_pal = wined3d_surface_get_palette(src_surface->wined3d_surface);
if (wined3d_src_pal)
src_pal = wined3d_palette_get_parent(wined3d_src_pal);
@@ -3247,7 +3200,7 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
/* Copy the main memory texture into the surface that corresponds
* to the OpenGL texture object. */
- hr = IWineD3DSurface_Map(src_surface->WineD3DSurface, &src_rect, NULL, 0);
+ hr = wined3d_surface_map(src_surface->wined3d_surface, &src_rect, NULL, 0);
if (FAILED(hr))
{
ERR("Failed to lock source surface, hr %#x.\n", hr);
@@ -3255,11 +3208,11 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
return D3DERR_TEXTURE_LOAD_FAILED;
}
- hr = IWineD3DSurface_Map(dst_surface->WineD3DSurface, &dst_rect, NULL, 0);
+ hr = wined3d_surface_map(dst_surface->wined3d_surface, &dst_rect, NULL, 0);
if (FAILED(hr))
{
ERR("Failed to lock destination surface, hr %#x.\n", hr);
- IWineD3DSurface_Unmap(src_surface->WineD3DSurface);
+ wined3d_surface_unmap(src_surface->wined3d_surface);
LeaveCriticalSection(&ddraw_cs);
return D3DERR_TEXTURE_LOAD_FAILED;
}
@@ -3269,8 +3222,8 @@ static HRESULT WINAPI d3d_texture2_Load(IDirect3DTexture2 *iface, IDirect3DTextu
else
memcpy(dst_rect.pBits, src_rect.pBits, src_rect.Pitch * src_desc->dwHeight);
- IWineD3DSurface_Unmap(src_surface->WineD3DSurface);
- IWineD3DSurface_Unmap(dst_surface->WineD3DSurface);
+ wined3d_surface_unmap(src_surface->wined3d_surface);
+ wined3d_surface_unmap(dst_surface->wined3d_surface);
}
if (src_surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_MIPMAP)
@@ -3622,7 +3575,7 @@ HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl *surface, IDirectDrawImpl *ddr
hr = IWineD3DDevice_CreateSurface(ddraw->wineD3DDevice, desc->dwWidth, desc->dwHeight, format,
TRUE /* Lockable */, FALSE /* Discard */, mip_level, usage, pool,
WINED3DMULTISAMPLE_NONE, 0 /* MultiSampleQuality */, surface_type, surface,
- &ddraw_surface_wined3d_parent_ops, &surface->WineD3DSurface);
+ &ddraw_surface_wined3d_parent_ops, &surface->wined3d_surface);
if (FAILED(hr))
{
WARN("Failed to create wined3d surface, hr %#x.\n", hr);
@@ -3630,7 +3583,7 @@ HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl *surface, IDirectDrawImpl *ddr
}
surface->surface_desc.dwFlags |= DDSD_PIXELFORMAT;
- wined3d_resource = IWineD3DSurface_GetResource(surface->WineD3DSurface);
+ wined3d_resource = wined3d_surface_get_resource(surface->wined3d_surface);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
format = wined3d_desc.format;
@@ -3658,36 +3611,36 @@ HRESULT ddraw_surface_init(IDirectDrawSurfaceImpl *surface, IDirectDrawImpl *ddr
else
{
surface->surface_desc.dwFlags |= DDSD_PITCH;
- surface->surface_desc.u1.lPitch = IWineD3DSurface_GetPitch(surface->WineD3DSurface);
+ surface->surface_desc.u1.lPitch = wined3d_surface_get_pitch(surface->wined3d_surface);
}
if (desc->dwFlags & DDSD_CKDESTOVERLAY)
{
- IWineD3DSurface_SetColorKey(surface->WineD3DSurface,
- DDCKEY_DESTOVERLAY, (WINEDDCOLORKEY *)&desc->u3.ddckCKDestOverlay);
+ wined3d_surface_set_color_key(surface->wined3d_surface, DDCKEY_DESTOVERLAY,
+ (WINEDDCOLORKEY *)&desc->u3.ddckCKDestOverlay);
}
if (desc->dwFlags & DDSD_CKDESTBLT)
{
- IWineD3DSurface_SetColorKey(surface->WineD3DSurface,
- DDCKEY_DESTBLT, (WINEDDCOLORKEY *)&desc->ddckCKDestBlt);
+ wined3d_surface_set_color_key(surface->wined3d_surface, DDCKEY_DESTBLT,
+ (WINEDDCOLORKEY *)&desc->ddckCKDestBlt);
}
if (desc->dwFlags & DDSD_CKSRCOVERLAY)
{
- IWineD3DSurface_SetColorKey(surface->WineD3DSurface,
- DDCKEY_SRCOVERLAY, (WINEDDCOLORKEY *)&desc->ddckCKSrcOverlay);
+ wined3d_surface_set_color_key(surface->wined3d_surface, DDCKEY_SRCOVERLAY,
+ (WINEDDCOLORKEY *)&desc->ddckCKSrcOverlay);
}
if (desc->dwFlags & DDSD_CKSRCBLT)
{
- IWineD3DSurface_SetColorKey(surface->WineD3DSurface,
- DDCKEY_SRCBLT, (WINEDDCOLORKEY *)&desc->ddckCKSrcBlt);
+ wined3d_surface_set_color_key(surface->wined3d_surface, DDCKEY_SRCBLT,
+ (WINEDDCOLORKEY *)&desc->ddckCKSrcBlt);
}
if (desc->dwFlags & DDSD_LPSURFACE)
{
- hr = IWineD3DSurface_SetMem(surface->WineD3DSurface, desc->lpSurface);
+ hr = wined3d_surface_set_mem(surface->wined3d_surface, desc->lpSurface);
if (FAILED(hr))
{
ERR("Failed to set surface memory, hr %#x.\n", hr);
- IWineD3DSurface_Release(surface->WineD3DSurface);
+ wined3d_surface_decref(surface->wined3d_surface);
return hr;
}
}
diff --git a/dlls/dxgi/device.c b/dlls/dxgi/device.c
index a36839c..f84952f 100644
--- a/dlls/dxgi/device.c
+++ b/dlls/dxgi/device.c
@@ -178,7 +178,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_device_CreateSurface(IWineDXGIDevice *ifac
memset(surface, 0, surface_count * sizeof(*surface));
for (i = 0; i < surface_count; ++i)
{
- IWineD3DSurface *wined3d_surface;
+ struct wined3d_surface *wined3d_surface;
IUnknown *parent;
hr = IWineD3DDeviceParent_CreateSurface(device_parent, NULL, desc->Width, desc->Height,
@@ -190,9 +190,9 @@ static HRESULT STDMETHODCALLTYPE dxgi_device_CreateSurface(IWineDXGIDevice *ifac
goto fail;
}
- parent = IWineD3DSurface_GetParent(wined3d_surface);
+ parent = wined3d_surface_get_parent(wined3d_surface);
hr = IUnknown_QueryInterface(parent, &IID_IDXGISurface, (void **)&surface[i]);
- IWineD3DSurface_Release(wined3d_surface);
+ wined3d_surface_decref(wined3d_surface);
if (FAILED(hr))
{
ERR("Surface should implement IDXGISurface\n");
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index b99faf2..ee9a292 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -144,7 +144,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetBuffer(IDXGISwapChain *iface,
UINT buffer_idx, REFIID riid, void **surface)
{
struct dxgi_swapchain *This = (struct dxgi_swapchain *)iface;
- IWineD3DSurface *backbuffer;
+ struct wined3d_surface *backbuffer;
IUnknown *parent;
HRESULT hr;
@@ -161,9 +161,9 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetBuffer(IDXGISwapChain *iface,
return hr;
}
- parent = IWineD3DSurface_GetParent(backbuffer);
+ parent = wined3d_surface_get_parent(backbuffer);
hr = IUnknown_QueryInterface(parent, riid, surface);
- IWineD3DSurface_Release(backbuffer);
+ wined3d_surface_decref(backbuffer);
LeaveCriticalSection(&dxgi_cs);
return hr;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 827365a..6621654 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -582,10 +582,10 @@ void device_switch_onscreen_ds(IWineD3DDeviceImpl *device,
surface_modify_ds_location(device->onscreen_depth_stencil, SFLAG_DS_OFFSCREEN,
device->onscreen_depth_stencil->ds_current_size.cx,
device->onscreen_depth_stencil->ds_current_size.cy);
- IWineD3DSurface_Release((IWineD3DSurface *)device->onscreen_depth_stencil);
+ wined3d_surface_decref(device->onscreen_depth_stencil);
}
device->onscreen_depth_stencil = depth_stencil;
- IWineD3DSurface_AddRef((IWineD3DSurface *)device->onscreen_depth_stencil);
+ wined3d_surface_incref(device->onscreen_depth_stencil);
}
static BOOL is_full_clear(IWineD3DSurfaceImpl *target, const RECT *draw_rect, const RECT *clear_rect)
@@ -1692,15 +1692,16 @@ static void IWineD3DDeviceImpl_LoadLogo(IWineD3DDeviceImpl *This, const char *fi
goto out;
}
- if(dcb) {
- hr = IWineD3DSurface_GetDC(This->logo_surface, &dcs);
- if(FAILED(hr)) goto out;
+ if (dcb)
+ {
+ if (FAILED(hr = wined3d_surface_getdc(This->logo_surface, &dcs)))
+ goto out;
BitBlt(dcs, 0, 0, bm.bmWidth, bm.bmHeight, dcb, 0, 0, SRCCOPY);
- IWineD3DSurface_ReleaseDC(This->logo_surface, dcs);
+ wined3d_surface_releasedc(This->logo_surface, dcs);
colorkey.dwColorSpaceLowValue = 0;
colorkey.dwColorSpaceHighValue = 0;
- IWineD3DSurface_SetColorKey(This->logo_surface, WINEDDCKEY_SRCBLT, &colorkey);
+ wined3d_surface_set_color_key(This->logo_surface, WINEDDCKEY_SRCBLT, &colorkey);
}
else
{
@@ -1983,12 +1984,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface,
TRACE("Setting rendertarget to %p.\n", swapchain->front_buffer);
This->render_targets[0] = swapchain->front_buffer;
}
- IWineD3DSurface_AddRef((IWineD3DSurface *)This->render_targets[0]);
+ wined3d_surface_incref(This->render_targets[0]);
/* Depth Stencil support */
This->depth_stencil = This->auto_depth_stencil;
if (This->depth_stencil)
- IWineD3DSurface_AddRef((IWineD3DSurface *)This->depth_stencil);
+ wined3d_surface_incref(This->depth_stencil);
hr = This->shader_backend->shader_alloc_private(This);
if(FAILED(hr)) {
@@ -2134,8 +2135,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
const struct wined3d_gl_info *gl_info;
- struct IWineD3DSurfaceImpl *surface;
struct wined3d_context *context;
+ struct wined3d_surface *surface;
UINT i;
TRACE("(%p)\n", This);
@@ -2150,7 +2151,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface)
context = context_acquire(This, NULL);
gl_info = context->gl_info;
- if(This->logo_surface) IWineD3DSurface_Release(This->logo_surface);
+ if (This->logo_surface)
+ wined3d_surface_decref(This->logo_surface);
/* Unload resources */
IWineD3DDevice_EnumResources(iface, device_unload_resource, NULL);
@@ -2218,7 +2220,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface)
{
surface = This->onscreen_depth_stencil;
This->onscreen_depth_stencil = NULL;
- IWineD3DSurface_Release((IWineD3DSurface *)surface);
+ wined3d_surface_decref(surface);
}
if (This->depth_stencil)
@@ -2228,7 +2230,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface)
TRACE("Releasing depth/stencil buffer %p.\n", surface);
This->depth_stencil = NULL;
- if (IWineD3DSurface_Release((IWineD3DSurface *)surface)
+ if (wined3d_surface_decref(surface)
&& surface != This->auto_depth_stencil)
{
ERR("Something is still holding a reference to depth/stencil buffer %p.\n", surface);
@@ -2239,7 +2241,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface)
{
surface = This->auto_depth_stencil;
This->auto_depth_stencil = NULL;
- if (IWineD3DSurface_Release((IWineD3DSurface *)surface))
+ if (wined3d_surface_decref(surface))
{
FIXME("(%p) Something's still holding the auto depth stencil buffer\n", This);
}
@@ -2254,7 +2256,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Uninit3D(IWineD3DDevice *iface)
TRACE("Setting rendertarget 0 to NULL\n");
This->render_targets[0] = NULL;
TRACE("Releasing the render target at %p\n", surface);
- IWineD3DSurface_Release((IWineD3DSurface *)surface);
+ wined3d_surface_decref(surface);
context_release(context);
@@ -5548,7 +5550,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_UpdateSurface(IWineD3DDevice *iface,
* loading. */
d3dfmt_get_conv(dst_impl, FALSE, TRUE, &format, &convert);
if (convert != NO_CONVERSION || format.convert)
- return IWineD3DSurface_BltFast(dst_surface, dst_x, dst_y, src_surface, src_rect, 0);
+ return wined3d_surface_bltfast(dst_surface, dst_x, dst_y, src_surface, src_rect, 0);
context = context_acquire(This, NULL);
gl_info = context->gl_info;
@@ -5815,7 +5817,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetRenderTarget(IWineD3DDevice *iface,
}
*render_target = (IWineD3DSurface *)device->render_targets[render_target_idx];
- if (*render_target) IWineD3DSurface_AddRef(*render_target);
+ if (*render_target)
+ wined3d_surface_incref(*render_target);
TRACE("Returning render target %p.\n", *render_target);
@@ -5831,7 +5834,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetDepthStencilSurface(IWineD3DDevice *
*depth_stencil = (IWineD3DSurface *)device->depth_stencil;
TRACE("Returning depth/stencil surface %p.\n", *depth_stencil);
if (!*depth_stencil) return WINED3DERR_NOTFOUND;
- IWineD3DSurface_AddRef(*depth_stencil);
+ wined3d_surface_incref(*depth_stencil);
return WINED3D_OK;
}
@@ -5871,11 +5874,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetRenderTarget(IWineD3DDevice *iface,
return WINED3DERR_INVALIDCALL;
}
- if (render_target) IWineD3DSurface_AddRef(render_target);
+ if (render_target)
+ wined3d_surface_incref(render_target);
device->render_targets[render_target_idx] = (IWineD3DSurfaceImpl *)render_target;
/* Release after the assignment, to prevent device_resource_released()
* from seeing the surface as still in use. */
- if (prev) IWineD3DSurface_Release((IWineD3DSurface *)prev);
+ if (prev)
+ wined3d_surface_decref(prev);
/* Render target 0 is special. */
if (!render_target_idx && set_viewport)
@@ -5924,7 +5929,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetDepthStencilSurface(IWineD3DDevice *
This->depth_stencil->resource.height);
if (This->depth_stencil == This->onscreen_depth_stencil)
{
- IWineD3DSurface_Release((IWineD3DSurface *)This->onscreen_depth_stencil);
+ wined3d_surface_decref(This->onscreen_depth_stencil);
This->onscreen_depth_stencil = NULL;
}
}
@@ -5932,8 +5937,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetDepthStencilSurface(IWineD3DDevice *
tmp = This->depth_stencil;
This->depth_stencil = (IWineD3DSurfaceImpl *)depth_stencil;
- if (This->depth_stencil) IWineD3DSurface_AddRef((IWineD3DSurface *)This->depth_stencil);
- if (tmp) IWineD3DSurface_Release((IWineD3DSurface *)tmp);
+ if (This->depth_stencil)
+ wined3d_surface_incref(This->depth_stencil);
+ if (tmp)
+ wined3d_surface_decref(tmp);
if ((!tmp && depth_stencil) || (!depth_stencil && tmp))
{
@@ -6008,7 +6015,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice *ifa
*/
This->cursorWidth = s->resource.width;
This->cursorHeight = s->resource.height;
- if (SUCCEEDED(IWineD3DSurface_Map(cursor_image, &rect, NULL, WINED3DLOCK_READONLY)))
+ if (SUCCEEDED(wined3d_surface_map(cursor_image, &rect, NULL, WINED3DLOCK_READONLY)))
{
const struct wined3d_gl_info *gl_info = &This->adapter->gl_info;
const struct wined3d_format *format = wined3d_get_format(gl_info, WINED3DFMT_B8G8R8A8_UNORM);
@@ -6028,7 +6035,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice *ifa
mem = HeapAlloc(GetProcessHeap(), 0, width * height * bpp);
for(i = 0; i < height; i++)
memcpy(&mem[width * bpp * i], &bits[rect.Pitch * i], width * bpp);
- IWineD3DSurface_Unmap(cursor_image);
+ wined3d_surface_unmap(cursor_image);
context = context_acquire(This, NULL);
@@ -6084,7 +6091,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice *ifa
* chunks. */
DWORD *maskBits = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
(s->resource.width * s->resource.height / 8));
- IWineD3DSurface_Map(cursor_image, &lockedRect, NULL,
+ wined3d_surface_map(cursor_image, &lockedRect, NULL,
WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY);
TRACE("width: %u height: %u.\n", s->resource.width, s->resource.height);
@@ -6093,7 +6100,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice *ifa
cursorInfo.yHotspot = YHotSpot;
cursorInfo.hbmMask = CreateBitmap(s->resource.width, s->resource.height, 1, 1, maskBits);
cursorInfo.hbmColor = CreateBitmap(s->resource.width, s->resource.height, 1, 32, lockedRect.pBits);
- IWineD3DSurface_Unmap(cursor_image);
+ wined3d_surface_unmap(cursor_image);
/* Create our cursor and clean up. */
cursor = CreateIconIndirect(&cursorInfo);
SetCursor(cursor);
@@ -6230,7 +6237,7 @@ static HRESULT updateSurfaceDesc(IWineD3DSurfaceImpl *surface, const WINED3DPRES
HeapFree(GetProcessHeap(), 0, surface->resource.heapMemory);
surface->resource.allocatedMemory = NULL;
surface->resource.heapMemory = NULL;
- surface->resource.size = IWineD3DSurface_GetPitch((IWineD3DSurface *) surface) * surface->pow2Width;
+ surface->resource.size = wined3d_surface_get_pitch(surface) * surface->pow2Width;
/* Put all surfaces into sysmem - the drawable might disappear if the backbuffer was rendered
* to a FBO */
@@ -6470,7 +6477,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Reset(IWineD3DDevice *iface,
if (This->onscreen_depth_stencil)
{
- IWineD3DSurface_Release((IWineD3DSurface *)This->onscreen_depth_stencil);
+ wined3d_surface_decref(This->onscreen_depth_stencil);
This->onscreen_depth_stencil = NULL;
}
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index b1b823a..da1cd64 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -1303,8 +1303,8 @@ void stateblock_init_default_state(struct wined3d_stateblock *stateblock)
{
struct wined3d_resource_desc desc;
- wined3d_resource_get_desc(&((IWineD3DSurfaceImpl *)backbuffer)->resource, &desc);
- IWineD3DSurface_Release(backbuffer);
+ wined3d_resource_get_desc(&backbuffer->resource, &desc);
+ wined3d_surface_decref(backbuffer);
/* Set the default scissor rect values */
state->scissor_rect.left = 0;
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index bb8d44a..7f3bf15 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -94,7 +94,8 @@ static void surface_cleanup(IWineD3DSurfaceImpl *This)
This->resource.allocatedMemory = NULL;
}
- if (This->flags & SFLAG_USERPTR) IWineD3DSurface_SetMem((IWineD3DSurface *)This, NULL);
+ if (This->flags & SFLAG_USERPTR)
+ wined3d_surface_set_mem(This, NULL);
if (This->overlay_dest) list_remove(&This->overlay_entry);
HeapFree(GetProcessHeap(), 0, This->palette9);
@@ -397,10 +398,10 @@ static HRESULT surface_create_dib_section(IWineD3DSurfaceImpl *surface)
b_info->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
/* TODO: Is there a nicer way to force a specific alignment? (8 byte for ddraw) */
- b_info->bmiHeader.biWidth = IWineD3DSurface_GetPitch((IWineD3DSurface *)surface) / format->byte_count;
+ b_info->bmiHeader.biWidth = wined3d_surface_get_pitch(surface) / format->byte_count;
b_info->bmiHeader.biHeight = -surface->resource.height - extraline;
b_info->bmiHeader.biSizeImage = (surface->resource.height + extraline)
- * IWineD3DSurface_GetPitch((IWineD3DSurface *)surface);
+ * wined3d_surface_get_pitch(surface);
b_info->bmiHeader.biPlanes = 1;
b_info->bmiHeader.biBitCount = format->byte_count * 8;
@@ -468,7 +469,7 @@ static HRESULT surface_create_dib_section(IWineD3DSurfaceImpl *surface)
if (surface->resource.allocatedMemory)
{
memcpy(surface->dib.bitmap_data, surface->resource.allocatedMemory,
- surface->resource.height * IWineD3DSurface_GetPitch((IWineD3DSurface *)surface));
+ surface->resource.height * wined3d_surface_get_pitch(surface));
}
else
{
@@ -646,7 +647,7 @@ static void surface_release_client_storage(IWineD3DSurfaceImpl *surface)
surface_force_reload(surface);
}
-static HRESULT surface_private_setup(struct IWineD3DSurfaceImpl *surface)
+static HRESULT surface_private_setup(struct wined3d_surface *surface)
{
/* TODO: Check against the maximum texture sizes supported by the video card. */
const struct wined3d_gl_info *gl_info = &surface->resource.device->adapter->gl_info;
@@ -822,9 +823,8 @@ static HRESULT surface_draw_overlay(IWineD3DSurfaceImpl *surface)
return WINED3D_OK;
surface->overlay_dest->flags |= SFLAG_INOVERLAYDRAW;
- hr = IWineD3DSurface_Blt((IWineD3DSurface *)surface->overlay_dest,
- &surface->overlay_destrect, (IWineD3DSurface *)surface, &surface->overlay_srcrect,
- WINEDDBLT_WAIT, NULL, WINED3DTEXF_LINEAR);
+ hr = wined3d_surface_blt(surface->overlay_dest, &surface->overlay_destrect, surface,
+ &surface->overlay_srcrect, WINEDDBLT_WAIT, NULL, WINED3DTEXF_LINEAR);
surface->overlay_dest->flags &= ~SFLAG_INOVERLAYDRAW;
return hr;
@@ -1034,7 +1034,7 @@ static HRESULT surface_getdc(IWineD3DSurfaceImpl *surface)
}
/* Map the surface. */
- hr = IWineD3DSurface_Map((IWineD3DSurface *)surface, &lock, NULL, 0);
+ hr = wined3d_surface_map(surface, &lock, NULL, 0);
if (FAILED(hr))
ERR("Map failed, hr %#x.\n", hr);
@@ -1680,7 +1680,7 @@ static void surface_gdi_cleanup(IWineD3DSurfaceImpl *surface)
}
if (surface->flags & SFLAG_USERPTR)
- IWineD3DSurface_SetMem((IWineD3DSurface *)surface, NULL);
+ wined3d_surface_set_mem(surface, NULL);
if (surface->overlay_dest)
list_remove(&surface->overlay_entry);
@@ -1786,7 +1786,7 @@ static HRESULT gdi_surface_getdc(IWineD3DSurfaceImpl *surface)
}
/* Map the surface. */
- hr = IWineD3DSurface_Map((IWineD3DSurface *)surface, &lock, NULL, 0);
+ hr = wined3d_surface_map(surface, &lock, NULL, 0);
if (FAILED(hr))
ERR("Map failed, hr %#x.\n", hr);
@@ -2054,7 +2054,7 @@ static void surface_download_data(IWineD3DSurfaceImpl *This, const struct wined3
{
unsigned char alignment = This->resource.device->surface_alignment;
src_pitch = format->byte_count * This->pow2Width;
- dst_pitch = IWineD3DSurface_GetPitch((IWineD3DSurface *) This);
+ dst_pitch = wined3d_surface_get_pitch(This);
src_pitch = (src_pitch + alignment - 1) & ~(alignment - 1);
mem = HeapAlloc(GetProcessHeap(), 0, src_pitch * This->pow2Height);
} else {
@@ -2606,28 +2606,8 @@ static inline unsigned short float_32_to_16(const float *in)
return ret;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_QueryInterface(IWineD3DSurface *iface,
- REFIID riid, void **object)
+ULONG CDECL wined3d_surface_incref(struct wined3d_surface *surface)
{
- TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object);
-
- if (IsEqualGUID(riid, &IID_IWineD3DSurface)
- || 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 IWineD3DBaseSurfaceImpl_AddRef(IWineD3DSurface *iface)
-{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
ULONG refcount;
TRACE("Surface %p, container %p of type %#x.\n",
@@ -2654,9 +2634,8 @@ static ULONG WINAPI IWineD3DBaseSurfaceImpl_AddRef(IWineD3DSurface *iface)
}
/* Do not call while under the GL lock. */
-static ULONG WINAPI IWineD3DBaseSurfaceImpl_Release(IWineD3DSurface *iface)
+ULONG CDECL wined3d_surface_decref(struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
ULONG refcount;
TRACE("Surface %p, container %p of type %#x.\n",
@@ -2692,59 +2671,57 @@ static ULONG WINAPI IWineD3DBaseSurfaceImpl_Release(IWineD3DSurface *iface)
return refcount;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPrivateData(IWineD3DSurface *iface,
+HRESULT CDECL wined3d_surface_set_private_data(struct wined3d_surface *surface,
REFGUID riid, const void *data, DWORD data_size, DWORD flags)
{
- return resource_set_private_data(&((IWineD3DSurfaceImpl *)iface)->resource, riid, data, data_size, flags);
+ return resource_set_private_data(&surface->resource, riid, data, data_size, flags);
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPrivateData(IWineD3DSurface *iface,
+HRESULT CDECL wined3d_surface_get_private_data(const struct wined3d_surface *surface,
REFGUID guid, void *data, DWORD *data_size)
{
- return resource_get_private_data(&((IWineD3DSurfaceImpl *)iface)->resource, guid, data, data_size);
+ return resource_get_private_data(&surface->resource, guid, data, data_size);
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_FreePrivateData(IWineD3DSurface *iface, REFGUID refguid)
+HRESULT CDECL wined3d_surface_free_private_data(struct wined3d_surface *surface, REFGUID refguid)
{
- return resource_free_private_data(&((IWineD3DSurfaceImpl *)iface)->resource, refguid);
+ return resource_free_private_data(&surface->resource, refguid);
}
-static DWORD WINAPI IWineD3DBaseSurfaceImpl_SetPriority(IWineD3DSurface *iface, DWORD priority)
+DWORD CDECL wined3d_surface_set_priority(struct wined3d_surface *surface, DWORD priority)
{
- return resource_set_priority(&((IWineD3DSurfaceImpl *)iface)->resource, priority);
+ return resource_set_priority(&surface->resource, priority);
}
-static DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPriority(IWineD3DSurface *iface)
+DWORD CDECL wined3d_surface_get_priority(const struct wined3d_surface *surface)
{
- return resource_get_priority(&((IWineD3DSurfaceImpl *)iface)->resource);
+ return resource_get_priority(&surface->resource);
}
-static void WINAPI IWineD3DBaseSurfaceImpl_PreLoad(IWineD3DSurface *iface)
+void CDECL wined3d_surface_preload(struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
surface->surface_ops->surface_preload(surface);
}
-static void * WINAPI IWineD3DBaseSurfaceImpl_GetParent(IWineD3DSurface *iface)
+void * CDECL wined3d_surface_get_parent(const struct wined3d_surface *surface)
{
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
- return ((IWineD3DSurfaceImpl *)iface)->resource.parent;
+ return surface->resource.parent;
}
-static struct wined3d_resource * WINAPI IWineD3DBaseSurfaceImpl_GetResource(IWineD3DSurface *iface)
+struct wined3d_resource * CDECL wined3d_surface_get_resource(struct wined3d_surface *surface)
{
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
- return &((IWineD3DSurfaceImpl *)iface)->resource;
+ return &surface->resource;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *iface, DWORD flags)
+HRESULT CDECL wined3d_surface_get_blt_status(const struct wined3d_surface *surface, DWORD flags)
{
- TRACE("iface %p, flags %#x.\n", iface, flags);
+ TRACE("surface %p, flags %#x.\n", surface, flags);
switch (flags)
{
@@ -2757,11 +2734,11 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetBltStatus(IWineD3DSurface *ifac
}
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *iface, DWORD flags)
+HRESULT CDECL wined3d_surface_get_flip_status(const struct wined3d_surface *surface, DWORD flags)
{
- /* XXX: DDERR_INVALIDSURFACETYPE */
+ TRACE("surface %p, flags %#x.\n", surface, flags);
- TRACE("iface %p, flags %#x.\n", iface, flags);
+ /* XXX: DDERR_INVALIDSURFACETYPE */
switch (flags)
{
@@ -2774,32 +2751,26 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetFlipStatus(IWineD3DSurface *ifa
}
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_IsLost(IWineD3DSurface *iface)
+HRESULT CDECL wined3d_surface_is_lost(const struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
/* D3D8 and 9 loose full devices, ddraw only surfaces. */
return surface->flags & SFLAG_LOST ? WINED3DERR_DEVICELOST : WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Restore(IWineD3DSurface *iface)
+HRESULT CDECL wined3d_surface_restore(struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
/* So far we don't lose anything :) */
surface->flags &= ~SFLAG_LOST;
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface, struct wined3d_palette *palette)
+HRESULT CDECL wined3d_surface_set_palette(struct wined3d_surface *surface, struct wined3d_palette *palette)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, palette %p.\n", iface, palette);
+ TRACE("surface %p, palette %p.\n", surface, palette);
if (surface->palette == palette)
{
@@ -2823,12 +2794,10 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetPalette(IWineD3DSurface *iface,
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface,
+HRESULT CDECL wined3d_surface_set_color_key(struct wined3d_surface *surface,
DWORD flags, const WINEDDCOLORKEY *color_key)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, flags %#x, color_key %p.\n", iface, flags, color_key);
+ TRACE("surface %p, flags %#x, color_key %p.\n", surface, flags, color_key);
if (flags & WINEDDCKEY_COLORSPACE)
{
@@ -2887,24 +2856,19 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetColorKey(IWineD3DSurface *iface
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetPalette(IWineD3DSurface *iface, struct wined3d_palette **palette)
+struct wined3d_palette * CDECL wined3d_surface_get_palette(const struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *) iface;
-
- TRACE("iface %p, palette %p.\n", iface, palette);
-
- *palette = surface->palette;
+ TRACE("surface %p.\n", surface);
- return WINED3D_OK;
+ return surface->palette;
}
-static DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPitch(IWineD3DSurface *iface)
+DWORD CDECL wined3d_surface_get_pitch(const struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
const struct wined3d_format *format = surface->resource.format;
DWORD pitch;
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
if ((format->flags & (WINED3DFMT_FLAG_COMPRESSED | WINED3DFMT_FLAG_BROKEN_PITCH)) == WINED3DFMT_FLAG_COMPRESSED)
{
@@ -2925,11 +2889,9 @@ static DWORD WINAPI IWineD3DBaseSurfaceImpl_GetPitch(IWineD3DSurface *iface)
return pitch;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetMem(IWineD3DSurface *iface, void *mem)
+HRESULT CDECL wined3d_surface_set_mem(struct wined3d_surface *surface, void *mem)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, mem %p.\n", iface, mem);
+ TRACE("surface %p, mem %p.\n", surface, mem);
if (surface->flags & (SFLAG_LOCKED | SFLAG_DCINUSE))
{
@@ -2940,12 +2902,11 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetMem(IWineD3DSurface *iface, voi
return surface->surface_ops->surface_set_mem(surface, mem);
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetOverlayPosition(IWineD3DSurface *iface, LONG x, LONG y)
+HRESULT CDECL wined3d_surface_set_overlay_position(struct wined3d_surface *surface, LONG x, LONG y)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
LONG w, h;
- TRACE("iface %p, x %d, y %d.\n", iface, x, y);
+ TRACE("surface %p, x %d, y %d.\n", surface, x, y);
if (!(surface->resource.usage & WINED3DUSAGE_OVERLAY))
{
@@ -2965,11 +2926,9 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetOverlayPosition(IWineD3DSurface
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetOverlayPosition(IWineD3DSurface *iface, LONG *x, LONG *y)
+HRESULT CDECL wined3d_surface_get_overlay_position(const struct wined3d_surface *surface, LONG *x, LONG *y)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, x %p, y %p.\n", iface, x, y);
+ TRACE("surface %p, x %p, y %p.\n", surface, x, y);
if (!(surface->resource.usage & WINED3DUSAGE_OVERLAY))
{
@@ -2993,12 +2952,10 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetOverlayPosition(IWineD3DSurface
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurface *iface,
- DWORD flags, IWineD3DSurface *ref)
+HRESULT CDECL wined3d_surface_update_overlay_z_order(struct wined3d_surface *surface,
+ DWORD flags, struct wined3d_surface *ref)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- FIXME("iface %p, flags %#x, ref %p stub!\n", iface, flags, ref);
+ FIXME("surface %p, flags %#x, ref %p stub!\n", surface, flags, ref);
if (!(surface->resource.usage & WINED3DUSAGE_OVERLAY))
{
@@ -3009,14 +2966,13 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder(IWineD3DSurfac
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *iface, const RECT *src_rect,
+HRESULT CDECL wined3d_surface_update_overlay(struct wined3d_surface *surface, const RECT *src_rect,
IWineD3DSurface *dst_surface, const RECT *dst_rect, DWORD flags, const WINEDDOVERLAYFX *fx)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
IWineD3DSurfaceImpl *Dst = (IWineD3DSurfaceImpl *)dst_surface;
- TRACE("iface %p, src_rect %s, dst_surface %p, dst_rect %s, flags %#x, fx %p.\n",
- iface, wine_dbgstr_rect(src_rect), dst_surface, wine_dbgstr_rect(dst_rect), flags, fx);
+ TRACE("surface %p, src_rect %s, dst_surface %p, dst_rect %s, flags %#x, fx %p.\n",
+ surface, wine_dbgstr_rect(src_rect), dst_surface, wine_dbgstr_rect(dst_rect), flags, fx);
if (!(surface->resource.usage & WINED3DUSAGE_OVERLAY))
{
@@ -3081,36 +3037,27 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_UpdateOverlay(IWineD3DSurface *ifa
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetClipper(IWineD3DSurface *iface, struct wined3d_clipper *clipper)
+HRESULT CDECL wined3d_surface_set_clipper(struct wined3d_surface *surface, struct wined3d_clipper *clipper)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, clipper %p.\n", iface, clipper);
+ TRACE("surface %p, clipper %p.\n", surface, clipper);
surface->clipper = clipper;
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetClipper(IWineD3DSurface *iface, struct wined3d_clipper **clipper)
+struct wined3d_clipper * CDECL wined3d_surface_get_clipper(const struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, clipper %p.\n", iface, clipper);
-
- *clipper = surface->clipper;
- if (*clipper)
- wined3d_clipper_incref(*clipper);
+ TRACE("surface %p.\n", surface);
- return WINED3D_OK;
+ return surface->clipper;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_SetFormat(IWineD3DSurface *iface, enum wined3d_format_id format_id)
+HRESULT CDECL wined3d_surface_set_format(struct wined3d_surface *surface, enum wined3d_format_id format_id)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
const struct wined3d_format *format = wined3d_get_format(&surface->resource.device->adapter->gl_info, format_id);
- TRACE("iface %p, format %s.\n", iface, debug_d3dformat(format_id));
+ TRACE("surface %p, format %s.\n", surface, debug_d3dformat(format_id));
if (surface->resource.format->id != WINED3DFMT_UNKNOWN)
{
@@ -3366,29 +3313,29 @@ static IWineD3DSurfaceImpl *surface_convert_format(IWineD3DSurfaceImpl *source,
memset(&lock_src, 0, sizeof(lock_src));
memset(&lock_dst, 0, sizeof(lock_dst));
- hr = IWineD3DSurface_Map((IWineD3DSurface *)source, &lock_src, NULL, WINED3DLOCK_READONLY);
+ hr = wined3d_surface_map(source, &lock_src, NULL, WINED3DLOCK_READONLY);
if (FAILED(hr))
{
ERR("Failed to lock the source surface.\n");
- IWineD3DSurface_Release(ret);
+ wined3d_surface_decref(ret);
return NULL;
}
- hr = IWineD3DSurface_Map(ret, &lock_dst, NULL, WINED3DLOCK_READONLY);
+ hr = wined3d_surface_map(ret, &lock_dst, NULL, WINED3DLOCK_READONLY);
if (FAILED(hr))
{
ERR("Failed to lock the destination surface.\n");
- IWineD3DSurface_Unmap((IWineD3DSurface *)source);
- IWineD3DSurface_Release(ret);
+ wined3d_surface_unmap(source);
+ wined3d_surface_decref(ret);
return NULL;
}
conv->convert(lock_src.pBits, lock_dst.pBits, lock_src.Pitch, lock_dst.Pitch,
source->resource.width, source->resource.height);
- IWineD3DSurface_Unmap(ret);
- IWineD3DSurface_Unmap((IWineD3DSurface *)source);
+ wined3d_surface_unmap(ret);
+ wined3d_surface_unmap(source);
- return (IWineD3DSurfaceImpl *)ret;
+ return ret;
}
static HRESULT _Blt_ColorFill(BYTE *buf, unsigned int width, unsigned int height,
@@ -3450,38 +3397,32 @@ do { \
}
/* Do not call while under the GL lock. */
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Blt(IWineD3DSurface *iface, const RECT *dst_rect,
- IWineD3DSurface *src_surface, const RECT *src_rect, DWORD flags,
+HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst_rect,
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags,
const WINEDDBLTFX *fx, WINED3DTEXTUREFILTERTYPE filter)
{
- IWineD3DSurfaceImpl *dst_surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
- iface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect),
+ TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
+ dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect),
flags, fx, debug_d3dtexturefiltertype(filter));
- return dst_surface->surface_ops->surface_blt(dst_surface, dst_rect,
- (IWineD3DSurfaceImpl *)src_surface, src_rect, flags, fx, filter);
+ return dst_surface->surface_ops->surface_blt(dst_surface,
+ dst_rect, src_surface, src_rect, flags, fx, filter);
}
/* Do not call while under the GL lock. */
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_BltFast(IWineD3DSurface *iface,
- DWORD dst_x, DWORD dst_y, IWineD3DSurface *src_surface, const RECT *src_rect, DWORD trans)
+HRESULT CDECL wined3d_surface_bltfast(struct wined3d_surface *dst_surface, DWORD dst_x, DWORD dst_y,
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD trans)
{
- IWineD3DSurfaceImpl *dst_surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, dst_x %u, dst_y %u, src_surface %p, src_rect %s, trans %#x.\n",
- iface, dst_x, dst_y, src_surface, wine_dbgstr_rect(src_rect), trans);
+ TRACE("dst_surface %p, dst_x %u, dst_y %u, src_surface %p, src_rect %s, trans %#x.\n",
+ dst_surface, dst_x, dst_y, src_surface, wine_dbgstr_rect(src_rect), trans);
- return dst_surface->surface_ops->surface_bltfast(dst_surface, dst_x, dst_y,
- (IWineD3DSurfaceImpl *)src_surface, src_rect, trans);
+ return dst_surface->surface_ops->surface_bltfast(dst_surface,
+ dst_x, dst_y, src_surface, src_rect, trans);
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Unmap(IWineD3DSurface *iface)
+HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p.\n", iface);
+ TRACE("surface %p.\n", surface);
if (!(surface->flags & SFLAG_LOCKED))
{
@@ -3495,13 +3436,11 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Unmap(IWineD3DSurface *iface)
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface,
+HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
WINED3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, locked_rect %p, rect %s, flags %#x.\n",
- iface, locked_rect, wine_dbgstr_rect(rect), flags);
+ TRACE("surface %p, locked_rect %p, rect %s, flags %#x.\n",
+ surface, locked_rect, wine_dbgstr_rect(rect), flags);
if (surface->flags & SFLAG_LOCKED)
{
@@ -3515,7 +3454,7 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface,
surface->surface_ops->surface_map(surface, rect, flags);
- locked_rect->Pitch = IWineD3DSurface_GetPitch(iface);
+ locked_rect->Pitch = wined3d_surface_get_pitch(surface);
if (!rect)
{
@@ -3555,12 +3494,11 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Map(IWineD3DSurface *iface,
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetDC(IWineD3DSurface *iface, HDC *dc)
+HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
HRESULT hr;
- TRACE("iface %p, dc %p.\n", iface, dc);
+ TRACE("surface %p, dc %p.\n", surface, dc);
if (surface->flags & SFLAG_USERPTR)
{
@@ -3625,11 +3563,9 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_GetDC(IWineD3DSurface *iface, HDC
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_ReleaseDC(IWineD3DSurface *iface, HDC dc)
+HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
-
- TRACE("iface %p, dc %p.\n", iface, dc);
+ TRACE("surface %p, dc %p.\n", surface, dc);
if (!(surface->flags & SFLAG_DCINUSE))
return WINEDDERR_NODC;
@@ -3648,20 +3584,19 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_ReleaseDC(IWineD3DSurface *iface,
}
/* We locked first, so unlock now. */
- IWineD3DSurface_Unmap(iface);
+ wined3d_surface_unmap(surface);
surface->flags &= ~SFLAG_DCINUSE;
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Flip(IWineD3DSurface *iface, IWineD3DSurface *override, DWORD flags)
+HRESULT CDECL wined3d_surface_flip(struct wined3d_surface *surface, struct wined3d_surface *override, DWORD flags)
{
- IWineD3DSurfaceImpl *surface = (IWineD3DSurfaceImpl *)iface;
struct wined3d_swapchain *swapchain;
HRESULT hr;
- TRACE("iface %p, override %p, flags %#x.\n", iface, override, flags);
+ TRACE("surface %p, override %p, flags %#x.\n", surface, override, flags);
if (surface->container.type != WINED3D_CONTAINER_SWAPCHAIN)
{
@@ -3670,7 +3605,7 @@ static HRESULT WINAPI IWineD3DBaseSurfaceImpl_Flip(IWineD3DSurface *iface, IWine
}
swapchain = surface->container.u.swapchain;
- hr = surface->surface_ops->surface_flip(surface, (IWineD3DSurfaceImpl *)override);
+ hr = surface->surface_ops->surface_flip(surface, override);
if (FAILED(hr))
return hr;
@@ -4109,8 +4044,8 @@ void surface_prepare_texture(IWineD3DSurfaceImpl *surface, const struct wined3d_
static void flush_to_framebuffer_drawpixels(IWineD3DSurfaceImpl *surface,
const RECT *rect, GLenum fmt, GLenum type, UINT bpp, const BYTE *mem)
{
- UINT pitch = IWineD3DSurface_GetPitch((IWineD3DSurface *)surface); /* target is argb, 4 byte */
IWineD3DDeviceImpl *device = surface->resource.device;
+ UINT pitch = wined3d_surface_get_pitch(surface);
const struct wined3d_gl_info *gl_info;
struct wined3d_context *context;
RECT local_rect;
@@ -5996,7 +5931,7 @@ HRESULT surface_load_location(IWineD3DSurfaceImpl *surface, DWORD flag, const RE
{
/* Note: It might be faster to download into a texture first. */
read_from_framebuffer(surface, rect, surface->resource.allocatedMemory,
- IWineD3DSurface_GetPitch((IWineD3DSurface *)surface));
+ wined3d_surface_get_pitch(surface));
}
}
else if (flag == SFLAG_INDRAWABLE)
@@ -6028,7 +5963,7 @@ HRESULT surface_load_location(IWineD3DSurfaceImpl *surface, DWORD flag, const RE
/* The width is in 'length' not in bytes */
width = surface->resource.width;
- pitch = IWineD3DSurface_GetPitch((IWineD3DSurface *)surface);
+ pitch = wined3d_surface_get_pitch(surface);
/* Don't use PBOs for converted surfaces. During PBO conversion we look at SFLAG_CONVERTED
* but it isn't set (yet) in all cases it is getting called. */
@@ -6144,7 +6079,7 @@ HRESULT surface_load_location(IWineD3DSurfaceImpl *surface, DWORD flag, const RE
/* The width is in 'length' not in bytes */
width = surface->resource.width;
- pitch = IWineD3DSurface_GetPitch((IWineD3DSurface *)surface);
+ pitch = wined3d_surface_get_pitch(surface);
/* Don't use PBOs for converted surfaces. During PBO conversion we look at SFLAG_CONVERTED
* but it isn't set (yet) in all cases it is getting called. */
@@ -6253,48 +6188,6 @@ BOOL surface_is_offscreen(IWineD3DSurfaceImpl *surface)
return swapchain->render_to_fbo;
}
-const IWineD3DSurfaceVtbl IWineD3DSurface_Vtbl =
-{
- /* IUnknown */
- IWineD3DBaseSurfaceImpl_QueryInterface,
- IWineD3DBaseSurfaceImpl_AddRef,
- IWineD3DBaseSurfaceImpl_Release,
- /* IWineD3DResource */
- IWineD3DBaseSurfaceImpl_GetParent,
- IWineD3DBaseSurfaceImpl_SetPrivateData,
- IWineD3DBaseSurfaceImpl_GetPrivateData,
- IWineD3DBaseSurfaceImpl_FreePrivateData,
- IWineD3DBaseSurfaceImpl_SetPriority,
- IWineD3DBaseSurfaceImpl_GetPriority,
- IWineD3DBaseSurfaceImpl_PreLoad,
- /* IWineD3DSurface */
- IWineD3DBaseSurfaceImpl_GetResource,
- IWineD3DBaseSurfaceImpl_Map,
- IWineD3DBaseSurfaceImpl_Unmap,
- IWineD3DBaseSurfaceImpl_GetDC,
- IWineD3DBaseSurfaceImpl_ReleaseDC,
- IWineD3DBaseSurfaceImpl_Flip,
- IWineD3DBaseSurfaceImpl_Blt,
- IWineD3DBaseSurfaceImpl_GetBltStatus,
- IWineD3DBaseSurfaceImpl_GetFlipStatus,
- IWineD3DBaseSurfaceImpl_IsLost,
- IWineD3DBaseSurfaceImpl_Restore,
- IWineD3DBaseSurfaceImpl_BltFast,
- IWineD3DBaseSurfaceImpl_GetPalette,
- IWineD3DBaseSurfaceImpl_SetPalette,
- IWineD3DBaseSurfaceImpl_SetColorKey,
- IWineD3DBaseSurfaceImpl_GetPitch,
- IWineD3DBaseSurfaceImpl_SetMem,
- IWineD3DBaseSurfaceImpl_SetOverlayPosition,
- IWineD3DBaseSurfaceImpl_GetOverlayPosition,
- IWineD3DBaseSurfaceImpl_UpdateOverlayZOrder,
- IWineD3DBaseSurfaceImpl_UpdateOverlay,
- IWineD3DBaseSurfaceImpl_SetClipper,
- IWineD3DBaseSurfaceImpl_GetClipper,
- /* Internal use: */
- IWineD3DBaseSurfaceImpl_SetFormat,
-};
-
static HRESULT ffp_blit_alloc(IWineD3DDeviceImpl *device) { return WINED3D_OK; }
/* Context activation is done by the caller. */
static void ffp_blit_free(IWineD3DDeviceImpl *device) { }
@@ -6636,7 +6529,7 @@ static HRESULT surface_cpu_blt(IWineD3DSurfaceImpl *dst_surface, const RECT *dst
if (src_surface == dst_surface)
{
- IWineD3DSurface_Map((IWineD3DSurface *)dst_surface, &dlock, NULL, 0);
+ wined3d_surface_map(dst_surface, &dlock, NULL, 0);
slock = dlock;
src_format = dst_surface->resource.format;
dst_format = src_format;
@@ -6656,7 +6549,7 @@ static HRESULT surface_cpu_blt(IWineD3DSurfaceImpl *dst_surface, const RECT *dst
goto release;
}
}
- IWineD3DSurface_Map((IWineD3DSurface *)src_surface, &slock, NULL, WINED3DLOCK_READONLY);
+ wined3d_surface_map(src_surface, &slock, NULL, WINED3DLOCK_READONLY);
src_format = src_surface->resource.format;
}
else
@@ -6664,9 +6557,9 @@ static HRESULT surface_cpu_blt(IWineD3DSurfaceImpl *dst_surface, const RECT *dst
src_format = dst_format;
}
if (dst_rect)
- IWineD3DSurface_Map((IWineD3DSurface *)dst_surface, &dlock, &xdst, 0);
+ wined3d_surface_map(dst_surface, &dlock, &xdst, 0);
else
- IWineD3DSurface_Map((IWineD3DSurface *)dst_surface, &dlock, NULL, 0);
+ wined3d_surface_map(dst_surface, &dlock, NULL, 0);
}
if (!fx || !(fx->dwDDFX)) flags &= ~WINEDDBLT_DDFX;
@@ -7095,12 +6988,12 @@ error:
}
release:
- IWineD3DSurface_Unmap((IWineD3DSurface *)dst_surface);
+ wined3d_surface_unmap(dst_surface);
if (src_surface && src_surface != dst_surface)
- IWineD3DSurface_Unmap((IWineD3DSurface *)src_surface);
+ wined3d_surface_unmap(src_surface);
/* Release the converted surface, if any. */
if (src_surface && src_surface != orig_src)
- IWineD3DSurface_Release((IWineD3DSurface *)src_surface);
+ wined3d_surface_decref(src_surface);
return hr;
}
@@ -7183,8 +7076,8 @@ static HRESULT surface_cpu_bltfast(IWineD3DSurfaceImpl *dst_surface, DWORD dst_x
UnionRect(&lock_union, &lock_src, &lock_dst);
- /* Lock the union of the two rectangles */
- hr = IWineD3DSurface_Map((IWineD3DSurface *)dst_surface, &dlock, &lock_union, 0);
+ /* Lock the union of the two rectangles. */
+ hr = wined3d_surface_map(dst_surface, &dlock, &lock_union, 0);
if (FAILED(hr))
goto error;
@@ -7199,10 +7092,10 @@ static HRESULT surface_cpu_bltfast(IWineD3DSurfaceImpl *dst_surface, DWORD dst_x
}
else
{
- hr = IWineD3DSurface_Map((IWineD3DSurface *)src_surface, &slock, &lock_src, WINED3DLOCK_READONLY);
+ hr = wined3d_surface_map(src_surface, &slock, &lock_src, WINED3DLOCK_READONLY);
if (FAILED(hr))
goto error;
- hr = IWineD3DSurface_Map((IWineD3DSurface *)dst_surface, &dlock, &lock_dst, 0);
+ hr = wined3d_surface_map(dst_surface, &dlock, &lock_dst, 0);
if (FAILED(hr))
goto error;
@@ -7366,12 +7259,12 @@ do { \
error:
if (src_surface == dst_surface)
{
- IWineD3DSurface_Unmap((IWineD3DSurface *)dst_surface);
+ wined3d_surface_unmap(dst_surface);
}
else
{
- IWineD3DSurface_Unmap((IWineD3DSurface *)dst_surface);
- IWineD3DSurface_Unmap((IWineD3DSurface *)src_surface);
+ wined3d_surface_unmap(dst_surface);
+ wined3d_surface_unmap(src_surface);
}
return hr;
@@ -7386,8 +7279,8 @@ static HRESULT cpu_blit_color_fill(IWineD3DDeviceImpl *device, IWineD3DSurfaceIm
memset(&BltFx, 0, sizeof(BltFx));
BltFx.dwSize = sizeof(BltFx);
BltFx.u5.dwFillColor = wined3d_format_convert_from_float(dst_surface->resource.format, color);
- return IWineD3DBaseSurfaceImpl_Blt((IWineD3DSurface*)dst_surface, dst_rect,
- NULL, NULL, WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT);
+ return wined3d_surface_blt(dst_surface, dst_rect, NULL, NULL,
+ WINEDDBLT_COLORFILL, &BltFx, WINED3DTEXF_POINT);
}
/* Do not call while under the GL lock. */
@@ -7469,7 +7362,6 @@ HRESULT surface_init(IWineD3DSurfaceImpl *surface, WINED3DSURFTYPE surface_type,
return WINED3DERR_INVALIDCALL;
surface->surface_type = surface_type;
- surface->lpVtbl = &IWineD3DSurface_Vtbl;
switch (surface_type)
{
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 275084b..aacf137 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -41,7 +41,7 @@ static void swapchain_cleanup(struct wined3d_swapchain *swapchain)
if (swapchain->front_buffer)
{
surface_set_container(swapchain->front_buffer, WINED3D_CONTAINER_NONE, NULL);
- if (IWineD3DSurface_Release((IWineD3DSurface *)swapchain->front_buffer))
+ if (wined3d_surface_decref(swapchain->front_buffer))
WARN("Something's still holding the front buffer (%p).\n", swapchain->front_buffer);
swapchain->front_buffer = NULL;
}
@@ -53,7 +53,7 @@ static void swapchain_cleanup(struct wined3d_swapchain *swapchain)
while (i--)
{
surface_set_container(swapchain->back_buffers[i], WINED3D_CONTAINER_NONE, NULL);
- if (IWineD3DSurface_Release((IWineD3DSurface *)swapchain->back_buffers[i]))
+ if (wined3d_surface_decref(swapchain->back_buffers[i]))
WARN("Something's still holding back buffer %u (%p).\n", i, swapchain->back_buffers[i]);
}
HeapFree(GetProcessHeap(), 0, swapchain->back_buffers);
@@ -161,8 +161,7 @@ HRESULT CDECL wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapc
if (swapchain->presentParms.Windowed)
MapWindowPoints(swapchain->win_handle, NULL, &offset, 1);
- IWineD3DSurface_BltFast(dst_surface, offset.x, offset.y,
- (IWineD3DSurface *)swapchain->front_buffer, NULL, 0);
+ wined3d_surface_bltfast(dst_surface, offset.x, offset.y, swapchain->front_buffer, NULL, 0);
return WINED3D_OK;
}
@@ -187,8 +186,9 @@ HRESULT CDECL wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *
return WINED3DERR_INVALIDCALL;
}
- *back_buffer = (IWineD3DSurface *)swapchain->back_buffers[back_buffer_idx];
- if (*back_buffer) IWineD3DSurface_AddRef(*back_buffer);
+ *back_buffer = swapchain->back_buffers[back_buffer_idx];
+ if (*back_buffer)
+ wined3d_surface_incref(*back_buffer);
TRACE("Returning back buffer %p.\n", *back_buffer);
@@ -438,7 +438,6 @@ static HRESULT swapchain_gl_present(struct wined3d_swapchain *swapchain, const R
* allows to use the Blitting engine and avoid copying the whole texture -> render target blitting code.
*/
memset(&cursor, 0, sizeof(cursor));
- cursor.lpVtbl = &IWineD3DSurface_Vtbl;
cursor.resource.ref = 1;
cursor.resource.device = swapchain->device;
cursor.resource.pool = WINED3DPOOL_SCRATCH;
@@ -459,14 +458,14 @@ static HRESULT swapchain_gl_present(struct wined3d_swapchain *swapchain, const R
*/
if (swapchain->presentParms.Windowed)
MapWindowPoints(NULL, swapchain->win_handle, (LPPOINT)&destRect, 2);
- IWineD3DSurface_Blt((IWineD3DSurface *)swapchain->back_buffers[0], &destRect,
- (IWineD3DSurface *)&cursor, NULL, WINEDDBLT_KEYSRC, NULL, WINED3DTEXF_POINT);
+ wined3d_surface_blt(swapchain->back_buffers[0], &destRect,
+ &cursor, NULL, WINEDDBLT_KEYSRC, NULL, WINED3DTEXF_POINT);
}
if (swapchain->device->logo_surface)
{
/* Blit the logo into the upper left corner of the drawable. */
- IWineD3DSurface_BltFast((IWineD3DSurface *)swapchain->back_buffers[0], 0, 0,
+ wined3d_surface_bltfast(swapchain->back_buffers[0], 0, 0,
swapchain->device->logo_surface, NULL, WINEDDBLTFAST_SRCCOLORKEY);
}
@@ -624,7 +623,7 @@ static HRESULT swapchain_gl_present(struct wined3d_swapchain *swapchain, const R
swapchain->device->depth_stencil->resource.height);
if (swapchain->device->depth_stencil == swapchain->device->onscreen_depth_stencil)
{
- IWineD3DSurface_Release((IWineD3DSurface *)swapchain->device->onscreen_depth_stencil);
+ wined3d_surface_decref(swapchain->device->onscreen_depth_stencil);
swapchain->device->onscreen_depth_stencil = NULL;
}
}
@@ -1069,7 +1068,8 @@ err:
{
for (i = 0; i < swapchain->presentParms.BackBufferCount; ++i)
{
- if (swapchain->back_buffers[i]) IWineD3DSurface_Release((IWineD3DSurface *)swapchain->back_buffers[i]);
+ if (swapchain->back_buffers[i])
+ wined3d_surface_decref(swapchain->back_buffers[i]);
}
HeapFree(GetProcessHeap(), 0, swapchain->back_buffers);
}
@@ -1085,7 +1085,8 @@ err:
HeapFree(GetProcessHeap(), 0, swapchain->context);
}
- if (swapchain->front_buffer) IWineD3DSurface_Release((IWineD3DSurface *)swapchain->front_buffer);
+ if (swapchain->front_buffer)
+ wined3d_surface_decref(swapchain->front_buffer);
return hr;
}
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index cb2c41d..e93ae56 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -758,7 +758,7 @@ static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource
surface_set_texture_name(surface, 0, FALSE);
surface_set_texture_target(surface, 0);
surface_set_container(surface, WINED3D_CONTAINER_NONE, NULL);
- IWineD3DSurface_Release((IWineD3DSurface *)surface);
+ wined3d_surface_decref(surface);
}
/* Do not call while under the GL lock. */
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index dfc4098..da6e10d 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -76,6 +76,40 @@
@ cdecl wined3d_stateblock_decref(ptr)
@ cdecl wined3d_stateblock_incref(ptr)
+@ cdecl wined3d_surface_blt(ptr ptr ptr ptr long ptr long)
+@ cdecl wined3d_surface_bltfast(ptr long long ptr ptr long)
+@ cdecl wined3d_surface_decref(ptr)
+@ cdecl wined3d_surface_flip(ptr ptr long)
+@ cdecl wined3d_surface_free_private_data(ptr ptr)
+@ cdecl wined3d_surface_get_blt_status(ptr long)
+@ cdecl wined3d_surface_get_clipper(ptr)
+@ cdecl wined3d_surface_get_flip_status(ptr long)
+@ cdecl wined3d_surface_get_overlay_position(ptr ptr ptr)
+@ cdecl wined3d_surface_get_palette(ptr)
+@ cdecl wined3d_surface_get_parent(ptr)
+@ cdecl wined3d_surface_get_pitch(ptr)
+@ cdecl wined3d_surface_get_priority(ptr)
+@ cdecl wined3d_surface_get_private_data(ptr ptr ptr ptr)
+@ cdecl wined3d_surface_get_resource(ptr)
+@ cdecl wined3d_surface_getdc(ptr ptr)
+@ cdecl wined3d_surface_incref(ptr)
+@ cdecl wined3d_surface_is_lost(ptr)
+@ cdecl wined3d_surface_map(ptr ptr ptr long)
+@ cdecl wined3d_surface_preload(ptr)
+@ cdecl wined3d_surface_releasedc(ptr ptr)
+@ cdecl wined3d_surface_restore(ptr)
+@ cdecl wined3d_surface_set_clipper(ptr ptr)
+@ cdecl wined3d_surface_set_color_key(ptr long ptr)
+@ cdecl wined3d_surface_set_format(ptr long)
+@ cdecl wined3d_surface_set_mem(ptr ptr)
+@ cdecl wined3d_surface_set_overlay_position(ptr long long)
+@ cdecl wined3d_surface_set_palette(ptr ptr)
+@ cdecl wined3d_surface_set_priority(ptr long)
+@ cdecl wined3d_surface_set_private_data(ptr ptr ptr long long)
+@ cdecl wined3d_surface_unmap(ptr)
+@ cdecl wined3d_surface_update_overlay(ptr ptr ptr ptr long ptr)
+@ cdecl wined3d_surface_update_overlay_z_order(ptr long ptr)
+
@ cdecl wined3d_swapchain_decref(ptr)
@ cdecl wined3d_swapchain_get_back_buffer(ptr long long ptr)
@ cdecl wined3d_swapchain_get_device(ptr)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index e4127a3..3e12500 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -52,8 +52,9 @@
#define WINED3D_QUIRK_NV_CLIP_BROKEN 0x00000010
#define WINED3D_QUIRK_FBO_TEX_UPDATE 0x00000020
-typedef struct IWineD3DSurfaceImpl IWineD3DSurfaceImpl;
typedef struct IWineD3DDeviceImpl IWineD3DDeviceImpl;
+typedef struct wined3d_surface IWineD3DSurfaceImpl;
+typedef struct wined3d_surface IWineD3DSurface;
/* Texture format fixups */
@@ -2018,33 +2019,26 @@ struct wined3d_subresource_container
struct wined3d_surface_ops
{
- HRESULT (*surface_private_setup)(struct IWineD3DSurfaceImpl *surface);
- void (*surface_cleanup)(struct IWineD3DSurfaceImpl *surface);
- void (*surface_realize_palette)(struct IWineD3DSurfaceImpl *surface);
- HRESULT (*surface_draw_overlay)(struct IWineD3DSurfaceImpl *surface);
- void (*surface_preload)(struct IWineD3DSurfaceImpl *surface);
- void (*surface_map)(struct IWineD3DSurfaceImpl *surface, const RECT *rect, DWORD flags);
- void (*surface_unmap)(struct IWineD3DSurfaceImpl *surface);
- HRESULT (*surface_getdc)(struct IWineD3DSurfaceImpl *surface);
- HRESULT (*surface_flip)(struct IWineD3DSurfaceImpl *surface, struct IWineD3DSurfaceImpl *override);
- HRESULT (*surface_blt)(struct IWineD3DSurfaceImpl *dst_surface, const RECT *dst_rect,
- IWineD3DSurfaceImpl *src_surface, const RECT *src_rect, DWORD flags,
+ HRESULT (*surface_private_setup)(struct wined3d_surface *surface);
+ void (*surface_cleanup)(struct wined3d_surface *surface);
+ void (*surface_realize_palette)(struct wined3d_surface *surface);
+ HRESULT (*surface_draw_overlay)(struct wined3d_surface *surface);
+ void (*surface_preload)(struct wined3d_surface *surface);
+ void (*surface_map)(struct wined3d_surface *surface, const RECT *rect, DWORD flags);
+ void (*surface_unmap)(struct wined3d_surface *surface);
+ HRESULT (*surface_getdc)(struct wined3d_surface *surface);
+ HRESULT (*surface_flip)(struct wined3d_surface *surface, struct wined3d_surface *override);
+ HRESULT (*surface_blt)(struct wined3d_surface *dst_surface, const RECT *dst_rect,
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags,
const WINEDDBLTFX *fx, WINED3DTEXTUREFILTERTYPE filter);
- HRESULT (*surface_bltfast)(struct IWineD3DSurfaceImpl *dst_surface, DWORD dst_x, DWORD dst_y,
- IWineD3DSurfaceImpl *src_surface, const RECT *src_rect, DWORD trans);
- HRESULT (*surface_set_mem)(struct IWineD3DSurfaceImpl *surface, void *mem);
+ HRESULT (*surface_bltfast)(struct wined3d_surface *dst_surface, DWORD dst_x, DWORD dst_y,
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD trans);
+ HRESULT (*surface_set_mem)(struct wined3d_surface *surface, void *mem);
};
-/*****************************************************************************
- * IWineD3DSurface implementation structure
- */
-struct IWineD3DSurfaceImpl
+struct wined3d_surface
{
- /* IUnknown & IWineD3DResource Information */
- const IWineD3DSurfaceVtbl *lpVtbl;
struct wined3d_resource resource;
-
- /* IWineD3DSurface fields */
const struct wined3d_surface_ops *surface_ops;
struct wined3d_subresource_container container;
struct wined3d_palette *palette; /* D3D7 style palette handling */
@@ -2099,8 +2093,6 @@ struct IWineD3DSurfaceImpl
struct list overlay_entry;
};
-extern const IWineD3DSurfaceVtbl IWineD3DSurface_Vtbl DECLSPEC_HIDDEN;
-
static inline IWineD3DSurfaceImpl *surface_from_resource(struct wined3d_resource *resource)
{
return CONTAINING_RECORD(resource, IWineD3DSurfaceImpl, resource);
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
index 334777a..a449d3a 100644
--- a/include/wine/wined3d.idl
+++ b/include/wine/wined3d.idl
@@ -1996,13 +1996,13 @@ typedef struct _WINEDDBLTFX
union
{
DWORD dwZDestConst; /* Constant to use as Z buffer for dest */
- struct IWineD3DSurface *lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
+ struct wined3d_surface *lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
} DUMMYUNIONNAME1;
DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */
union
{
DWORD dwZSrcConst; /* Constant to use as Z buffer for src */
- struct IWineD3DSurface *lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
+ struct wined3d_surface *lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
} DUMMYUNIONNAME2;
DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */
@@ -2011,20 +2011,20 @@ typedef struct _WINEDDBLTFX
union
{
DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */
- struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as Alpha Channel */
+ struct wined3d_surface *lpDDSAlphaDest; /* Surface to use as Alpha Channel */
} DUMMYUNIONNAME3;
DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
union
{
DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */
- struct IWineD3DSurface *lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
+ struct wined3d_surface *lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
} DUMMYUNIONNAME4;
union
{
DWORD dwFillColor; /* color in RGB or Palettized */
DWORD dwFillDepth; /* depth value for z-buffer */
DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
- struct IWineD3DSurface *lpDDSPattern; /* Surface to use as pattern */
+ struct wined3d_surface *lpDDSPattern; /* Surface to use as pattern */
} DUMMYUNIONNAME5;
WINEDDCOLORKEY ddckDestColorkey; /* DestColorkey override */
WINEDDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */
@@ -2040,13 +2040,13 @@ typedef struct _WINEDDOVERLAYFX
union
{
DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */
- struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
+ struct wined3d_surface *lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
} DUMMYUNIONNAME1;
DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
union
{
DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */
- struct IWineD3DSurface *lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
+ struct wined3d_surface *lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
} DUMMYUNIONNAME2;
WINEDDCOLORKEY dckDestColorkey; /* DestColorkey override */
WINEDDCOLORKEY dckSrcColorkey; /* SrcColorkey override */
@@ -2085,7 +2085,6 @@ struct wined3d_parent_ops
void (__stdcall *wined3d_object_destroyed)(void *parent);
};
-interface IWineD3DSurface;
interface IWineD3DDevice;
struct wined3d;
struct wined3d_buffer;
@@ -2096,6 +2095,7 @@ struct wined3d_resource;
struct wined3d_rendertarget_view;
struct wined3d_shader;
struct wined3d_stateblock;
+struct wined3d_surface;
struct wined3d_swapchain;
struct wined3d_texture;
struct wined3d_vertex_declaration;
@@ -2121,7 +2121,7 @@ interface IWineD3DDeviceParent : IUnknown
[in] WINED3DPOOL pool,
[in] UINT level,
[in] WINED3DCUBEMAP_FACES face,
- [out] IWineD3DSurface **surface
+ [out] struct wined3d_surface **surface
);
HRESULT CreateRenderTarget(
@@ -2132,7 +2132,7 @@ interface IWineD3DDeviceParent : IUnknown
[in] WINED3DMULTISAMPLE_TYPE multisample_type,
[in] DWORD multisample_quality,
[in] BOOL lockable,
- [out] IWineD3DSurface **surface
+ [out] struct wined3d_surface **surface
);
HRESULT CreateDepthStencilSurface(
@@ -2142,7 +2142,7 @@ interface IWineD3DDeviceParent : IUnknown
[in] WINED3DMULTISAMPLE_TYPE multisample_type,
[in] DWORD multisample_quality,
[in] BOOL discard,
- [out] IWineD3DSurface **surface
+ [out] struct wined3d_surface **surface
);
HRESULT CreateVolume(
@@ -2166,125 +2166,6 @@ typedef HRESULT (__stdcall *D3DCB_ENUMRESOURCES)(struct wined3d_resource *resour
[
object,
local,
- uuid(37cd5526-6f30-11d9-c687-00046142c14f)
-]
-interface IWineD3DSurface : IUnknown
-{
- void *GetParent(
- );
- HRESULT SetPrivateData(
- [in] REFGUID guid,
- [in] const void *data,
- [in] DWORD data_size,
- [in] DWORD flags
- );
- HRESULT GetPrivateData(
- [in] REFGUID guid,
- [out] void *data,
- [in, out] DWORD *data_size
- );
- HRESULT FreePrivateData(
- [in] REFGUID guid
- );
- DWORD SetPriority(
- [in] DWORD new_priority
- );
- DWORD GetPriority(
- );
- void PreLoad(
- );
- struct wined3d_resource *GetResource(
- );
- HRESULT Map(
- [out] WINED3DLOCKED_RECT *locked_rect,
- [in] const RECT *rect,
- [in] DWORD flags
- );
- HRESULT Unmap(
- );
- HRESULT GetDC(
- [out] HDC *dc
- );
- HRESULT ReleaseDC(
- [in] HDC dc
- );
- HRESULT Flip(
- [in] IWineD3DSurface *override,
- [in] DWORD flags
- );
- HRESULT Blt(
- [in] const RECT *dst_rect,
- [in] IWineD3DSurface *src_surface,
- [in] const RECT *src_rect,
- [in] DWORD flags,
- [in] const WINEDDBLTFX *blt_fx,
- [in] WINED3DTEXTUREFILTERTYPE filter
- );
- HRESULT GetBltStatus(
- [in] DWORD flags
- );
- HRESULT GetFlipStatus(
- [in] DWORD flags
- );
- HRESULT IsLost(
- );
- HRESULT Restore(
- );
- HRESULT BltFast(
- [in] DWORD dst_x,
- [in] DWORD dst_y,
- [in] IWineD3DSurface *src_surface,
- [in] const RECT *src_rect,
- [in] DWORD trans
- );
- HRESULT GetPalette(
- [out] struct wined3d_palette **palette
- );
- HRESULT SetPalette(
- [in] struct wined3d_palette *palette
- );
- HRESULT SetColorKey(
- [in] DWORD flags,
- [in] const WINEDDCOLORKEY *color_key
- );
- DWORD GetPitch(
- );
- HRESULT SetMem(
- [in] void *mem
- );
- HRESULT SetOverlayPosition(
- [in] LONG x,
- [in] LONG y
- );
- HRESULT GetOverlayPosition(
- [out] LONG *x,
- [out] LONG *y
- );
- HRESULT UpdateOverlayZOrder(
- [in] DWORD flags,
- [in] IWineD3DSurface *ref
- );
- HRESULT UpdateOverlay(
- [in] const RECT *src_rect,
- [in] IWineD3DSurface *dst_surface,
- [in] const RECT *dst_rect,
- [in] DWORD flags,
- [in] const WINEDDOVERLAYFX *fx
- );
- HRESULT SetClipper(
- [in] struct wined3d_clipper *clipper
- );
- HRESULT GetClipper(
- [out] struct wined3d_clipper **clipper
- );
- HRESULT SetFormat(
- [in] enum wined3d_format_id format_id
- );
-}
-
-[
- object,
- local,
uuid(6d10a2ce-09d0-4a53-a427-11388f9f8ca5)
]
interface IWineD3DDevice : IUnknown
@@ -2330,7 +2211,7 @@ interface IWineD3DDevice : IUnknown
[in] WINED3DSURFTYPE surface_type,
[in] void *parent,
[in] const struct wined3d_parent_ops *parent_ops,
- [out] IWineD3DSurface **surface
+ [out] struct wined3d_surface **surface
);
HRESULT CreateRendertargetView(
[in] struct wined3d_resource *resource,
@@ -2452,7 +2333,7 @@ interface IWineD3DDevice : IUnknown
[in] UINT swapchain_idx,
[in] UINT backbuffer_idx,
[in] WINED3DBACKBUFFER_TYPE backbuffer_type,
- [out] IWineD3DSurface **backbuffer
+ [out] struct wined3d_surface **backbuffer
);
HRESULT GetCreationParameters(
[out] WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters
@@ -2490,7 +2371,7 @@ interface IWineD3DDevice : IUnknown
HRESULT SetCursorProperties(
[in] UINT x_hotspot,
[in] UINT y_hotspot,
- [in] IWineD3DSurface *cursor_surface
+ [in] struct wined3d_surface *cursor_surface
);
void SetCursorPosition(
[in] int x_screen_space,
@@ -2521,10 +2402,10 @@ interface IWineD3DDevice : IUnknown
[out] UINT *palette_number
);
HRESULT SetDepthStencilSurface(
- [in] IWineD3DSurface *depth_stencil
+ [in] struct wined3d_surface *depth_stencil
);
HRESULT GetDepthStencilSurface(
- [out] IWineD3DSurface **depth_stencil
+ [out] struct wined3d_surface **depth_stencil
);
void SetGammaRamp(
[in] UINT swapchain_idx,
@@ -2628,12 +2509,12 @@ interface IWineD3DDevice : IUnknown
);
HRESULT SetRenderTarget(
[in] DWORD render_target_idx,
- [in] IWineD3DSurface *render_target,
+ [in] struct wined3d_surface *render_target,
[in] BOOL set_viewport
);
HRESULT GetRenderTarget(
[in] DWORD render_target_idx,
- [out] IWineD3DSurface **render_target
+ [out] struct wined3d_surface **render_target
);
HRESULT SetSamplerState(
[in] DWORD sampler_idx,
@@ -2843,7 +2724,7 @@ interface IWineD3DDevice : IUnknown
[in] UINT handle
);
HRESULT ColorFill(
- [in] IWineD3DSurface *surface,
+ [in] struct wined3d_surface *surface,
[in] const RECT *rect,
[in] const WINED3DCOLORVALUE *color
);
@@ -2852,14 +2733,14 @@ interface IWineD3DDevice : IUnknown
[in] struct wined3d_texture *dst_texture
);
HRESULT UpdateSurface(
- [in] IWineD3DSurface *src_surface,
+ [in] struct wined3d_surface *src_surface,
[in] const RECT *src_rect,
- [in] IWineD3DSurface *dst_surface,
+ [in] struct wined3d_surface *dst_surface,
[in] const POINT *dst_point
);
HRESULT GetFrontBufferData(
[in] UINT swapchain_idx,
- [in] IWineD3DSurface *dst_surface
+ [in] struct wined3d_surface *dst_surface
);
HRESULT EnumResources(
[in] D3DCB_ENUMRESOURCES callback,
@@ -2867,7 +2748,7 @@ interface IWineD3DDevice : IUnknown
);
HRESULT GetSurfaceFromDC(
[in] HDC dc,
- [out] IWineD3DSurface **surface
+ [out] struct wined3d_surface **surface
);
HRESULT AcquireFocusWindow(
[in] HWND window
@@ -2988,14 +2869,57 @@ 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_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst_rect,
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags,
+ const WINEDDBLTFX *blt_fx, WINED3DTEXTUREFILTERTYPE filter);
+HRESULT __cdecl wined3d_surface_bltfast(struct wined3d_surface *dst_surface, DWORD dst_x, DWORD dst_y,
+ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD trans);
+ULONG __cdecl wined3d_surface_decref(struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_flip(struct wined3d_surface *surface, struct wined3d_surface *override, DWORD flags);
+HRESULT __cdecl wined3d_surface_free_private_data(struct wined3d_surface *surface, REFGUID guid);
+HRESULT __cdecl wined3d_surface_get_blt_status(const struct wined3d_surface *surface, DWORD flags);
+struct wined3d_clipper * __cdecl wined3d_surface_get_clipper(const struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_get_flip_status(const struct wined3d_surface *surface, DWORD flags);
+HRESULT __cdecl wined3d_surface_get_overlay_position(const struct wined3d_surface *surface, LONG *x, LONG *y);
+struct wined3d_palette * __cdecl wined3d_surface_get_palette(const struct wined3d_surface *surface);
+void * __cdecl wined3d_surface_get_parent(const struct wined3d_surface *surface);
+DWORD __cdecl wined3d_surface_get_pitch(const struct wined3d_surface *surface);
+DWORD __cdecl wined3d_surface_get_priority(const struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_get_private_data(const struct wined3d_surface *surface,
+ REFGUID guid, void *data, DWORD *data_size);
+struct wined3d_resource * __cdecl wined3d_surface_get_resource(struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc);
+ULONG __cdecl wined3d_surface_incref(struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_is_lost(const struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_map(struct wined3d_surface *surface,
+ WINED3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags);
+void __cdecl wined3d_surface_preload(struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc);
+HRESULT __cdecl wined3d_surface_restore(struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_set_clipper(struct wined3d_surface *surface, struct wined3d_clipper *clipper);
+HRESULT __cdecl wined3d_surface_set_color_key(struct wined3d_surface *surface,
+ DWORD flags, const WINEDDCOLORKEY *color_key);
+HRESULT __cdecl wined3d_surface_set_format(struct wined3d_surface *surface, enum wined3d_format_id format_id);
+HRESULT __cdecl wined3d_surface_set_mem(struct wined3d_surface *surface, void *mem);
+HRESULT __cdecl wined3d_surface_set_overlay_position(struct wined3d_surface *surface, LONG x, LONG y);
+HRESULT __cdecl wined3d_surface_set_palette(struct wined3d_surface *surface, struct wined3d_palette *palette);
+DWORD __cdecl wined3d_surface_set_priority(struct wined3d_surface *surface, DWORD new_priority);
+HRESULT __cdecl wined3d_surface_set_private_data(struct wined3d_surface *surface,
+ REFGUID guid, const void *data, DWORD data_size, DWORD flags);
+HRESULT __cdecl wined3d_surface_unmap(struct wined3d_surface *surface);
+HRESULT __cdecl wined3d_surface_update_overlay(struct wined3d_surface *surface, const RECT *src_rect,
+ struct wined3d_surface *dst_surface, const RECT *dst_rect, DWORD flags, const WINEDDOVERLAYFX *fx);
+HRESULT __cdecl wined3d_surface_update_overlay_z_order(struct wined3d_surface *surface,
+ DWORD flags, struct wined3d_surface *ref);
+
ULONG __cdecl wined3d_swapchain_decref(struct wined3d_swapchain *swapchain);
HRESULT __cdecl wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain,
- UINT backbuffer_idx, WINED3DBACKBUFFER_TYPE backbuffer_type, IWineD3DSurface **backbuffer);
+ UINT backbuffer_idx, WINED3DBACKBUFFER_TYPE backbuffer_type, struct wined3d_surface **backbuffer);
IWineD3DDevice * __cdecl wined3d_swapchain_get_device(const struct wined3d_swapchain *swapchain);
HRESULT __cdecl wined3d_swapchain_get_display_mode(const struct wined3d_swapchain *swapchain,
WINED3DDISPLAYMODE *mode);
HRESULT __cdecl wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapchain *swapchain,
- IWineD3DSurface *dst_surface);
+ struct wined3d_surface *dst_surface);
HRESULT __cdecl wined3d_swapchain_get_gamma_ramp(const struct wined3d_swapchain *swapchain,
WINED3DGAMMARAMP *ramp);
void * __cdecl wined3d_swapchain_get_parent(const struct wined3d_swapchain *swapchain);
--
1.7.3.4
More information about the wine-patches
mailing list