[PATCH 3/5] ddraw: Get rid of IDirect3DVertexBufferImpl.
Henri Verbeet
hverbeet at codeweavers.com
Wed Apr 11 15:52:04 CDT 2012
---
dlls/ddraw/ddraw.c | 4 +-
dlls/ddraw/ddraw_private.h | 12 +--
dlls/ddraw/device.c | 8 +-
dlls/ddraw/vertexbuffer.c | 279 +++++++++++++++++++++-----------------------
4 files changed, 145 insertions(+), 158 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index daf614e..4da67ef 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -4527,7 +4527,7 @@ static HRESULT WINAPI d3d7_CreateVertexBuffer(IDirect3D7 *iface, D3DVERTEXBUFFER
IDirect3DVertexBuffer7 **vertex_buffer, DWORD flags)
{
struct ddraw *ddraw = impl_from_IDirect3D7(iface);
- IDirect3DVertexBufferImpl *object;
+ struct d3d_vertex_buffer *object;
HRESULT hr;
TRACE("iface %p, desc %p, vertex_buffer %p, flags %#x.\n",
@@ -4551,7 +4551,7 @@ static HRESULT WINAPI d3d3_CreateVertexBuffer(IDirect3D3 *iface, D3DVERTEXBUFFER
IDirect3DVertexBuffer **vertex_buffer, DWORD flags, IUnknown *outer_unknown)
{
struct ddraw *ddraw = impl_from_IDirect3D3(iface);
- IDirect3DVertexBufferImpl *object;
+ struct d3d_vertex_buffer *object;
HRESULT hr;
TRACE("iface %p, desc %p, vertex_buffer %p, flags %#x, outer_unknown %p.\n",
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 3882079..6a29b0f 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -38,10 +38,6 @@
#include "wine/wined3d.h"
extern const struct wined3d_parent_ops ddraw_null_wined3d_parent_ops DECLSPEC_HIDDEN;
-
-/* Typdef the interfaces */
-typedef struct IDirect3DVertexBufferImpl IDirect3DVertexBufferImpl;
-
extern DWORD force_refresh_rate DECLSPEC_HIDDEN;
/*****************************************************************************
@@ -520,7 +516,7 @@ HRESULT d3d_execute_buffer_execute(struct d3d_execute_buffer *execute_buffer,
/*****************************************************************************
* IDirect3DVertexBuffer
*****************************************************************************/
-struct IDirect3DVertexBufferImpl
+struct d3d_vertex_buffer
{
IDirect3DVertexBuffer7 IDirect3DVertexBuffer7_iface;
IDirect3DVertexBuffer IDirect3DVertexBuffer_iface;
@@ -536,10 +532,10 @@ struct IDirect3DVertexBufferImpl
DWORD fvf;
};
-HRESULT d3d_vertex_buffer_create(IDirect3DVertexBufferImpl **vertex_buf, struct ddraw *ddraw,
+HRESULT d3d_vertex_buffer_create(struct d3d_vertex_buffer **buffer, struct ddraw *ddraw,
D3DVERTEXBUFFERDESC *desc) DECLSPEC_HIDDEN;
-IDirect3DVertexBufferImpl *unsafe_impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface) DECLSPEC_HIDDEN;
-IDirect3DVertexBufferImpl *unsafe_impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface) DECLSPEC_HIDDEN;
+struct d3d_vertex_buffer *unsafe_impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface) DECLSPEC_HIDDEN;
+struct d3d_vertex_buffer *unsafe_impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface) DECLSPEC_HIDDEN;
/*****************************************************************************
* Helper functions from utils.c
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index a0c3411..266facc 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -3996,7 +3996,7 @@ static HRESULT d3d_device7_DrawPrimitiveVB(IDirect3DDevice7 *iface, D3DPRIMITIVE
IDirect3DVertexBuffer7 *D3DVertexBuf, DWORD StartVertex, DWORD NumVertices, DWORD Flags)
{
struct d3d_device *device = impl_from_IDirect3DDevice7(iface);
- IDirect3DVertexBufferImpl *vb = unsafe_impl_from_IDirect3DVertexBuffer7(D3DVertexBuf);
+ struct d3d_vertex_buffer *vb = unsafe_impl_from_IDirect3DVertexBuffer7(D3DVertexBuf);
HRESULT hr;
DWORD stride;
@@ -4060,7 +4060,7 @@ static HRESULT WINAPI d3d_device3_DrawPrimitiveVB(IDirect3DDevice3 *iface, D3DPR
IDirect3DVertexBuffer *D3DVertexBuf, DWORD StartVertex, DWORD NumVertices, DWORD Flags)
{
struct d3d_device *device = impl_from_IDirect3DDevice3(iface);
- IDirect3DVertexBufferImpl *vb = unsafe_impl_from_IDirect3DVertexBuffer(D3DVertexBuf);
+ struct d3d_vertex_buffer *vb = unsafe_impl_from_IDirect3DVertexBuffer(D3DVertexBuf);
TRACE("iface %p, primitive_type %#x, vb %p, start_vertex %u, vertex_count %u, flags %#x.\n",
iface, PrimitiveType, D3DVertexBuf, StartVertex, NumVertices, Flags);
@@ -4092,7 +4092,7 @@ static HRESULT d3d_device7_DrawIndexedPrimitiveVB(IDirect3DDevice7 *iface,
DWORD StartVertex, DWORD NumVertices, WORD *Indices, DWORD IndexCount, DWORD Flags)
{
struct d3d_device *This = impl_from_IDirect3DDevice7(iface);
- IDirect3DVertexBufferImpl *vb = unsafe_impl_from_IDirect3DVertexBuffer7(D3DVertexBuf);
+ struct d3d_vertex_buffer *vb = unsafe_impl_from_IDirect3DVertexBuffer7(D3DVertexBuf);
DWORD stride = get_flexible_vertex_size(vb->fvf);
struct wined3d_resource *wined3d_resource;
struct wined3d_resource_desc desc;
@@ -4208,7 +4208,7 @@ static HRESULT WINAPI d3d_device3_DrawIndexedPrimitiveVB(IDirect3DDevice3 *iface
DWORD IndexCount, DWORD Flags)
{
struct d3d_device *device = impl_from_IDirect3DDevice3(iface);
- IDirect3DVertexBufferImpl *vb = unsafe_impl_from_IDirect3DVertexBuffer(D3DVertexBuf);
+ struct d3d_vertex_buffer *vb = unsafe_impl_from_IDirect3DVertexBuffer(D3DVertexBuf);
TRACE("iface %p, primitive_type %#x, vb %p, indices %p, index_count %u, flags %#x.\n",
iface, PrimitiveType, D3DVertexBuf, Indices, IndexCount, Flags);
diff --git a/dlls/ddraw/vertexbuffer.c b/dlls/ddraw/vertexbuffer.c
index d17c91a..11a4aa9 100644
--- a/dlls/ddraw/vertexbuffer.c
+++ b/dlls/ddraw/vertexbuffer.c
@@ -26,14 +26,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
-static inline IDirect3DVertexBufferImpl *impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface)
+static inline struct d3d_vertex_buffer *impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface)
{
- return CONTAINING_RECORD(iface, IDirect3DVertexBufferImpl, IDirect3DVertexBuffer_iface);
+ return CONTAINING_RECORD(iface, struct d3d_vertex_buffer, IDirect3DVertexBuffer_iface);
}
-static inline IDirect3DVertexBufferImpl *impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface)
+static inline struct d3d_vertex_buffer *impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface)
{
- return CONTAINING_RECORD(iface, IDirect3DVertexBufferImpl, IDirect3DVertexBuffer7_iface);
+ return CONTAINING_RECORD(iface, struct d3d_vertex_buffer, IDirect3DVertexBuffer7_iface);
}
/*****************************************************************************
@@ -55,10 +55,9 @@ static inline IDirect3DVertexBufferImpl *impl_from_IDirect3DVertexBuffer7(IDirec
* E_NOINTERFACE if the interface wasn't found
*
*****************************************************************************/
-static HRESULT WINAPI IDirect3DVertexBufferImpl_QueryInterface(IDirect3DVertexBuffer7 *iface,
- REFIID riid, void **obj)
+static HRESULT WINAPI d3d_vertex_buffer7_QueryInterface(IDirect3DVertexBuffer7 *iface, REFIID riid, void **obj)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), obj);
@@ -75,7 +74,7 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_QueryInterface(IDirect3DVertexBu
if ( IsEqualGUID( &IID_IDirect3DVertexBuffer, riid ) )
{
IUnknown_AddRef(iface);
- *obj = &This->IDirect3DVertexBuffer_iface;
+ *obj = &buffer->IDirect3DVertexBuffer_iface;
TRACE(" Creating IDirect3DVertexBuffer interface %p\n", *obj);
return S_OK;
}
@@ -86,18 +85,19 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_QueryInterface(IDirect3DVertexBu
TRACE(" Creating IDirect3DVertexBuffer7 interface %p\n", *obj);
return S_OK;
}
- FIXME("(%p): interface for IID %s NOT found!\n", This, debugstr_guid(riid));
+
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
+
return E_NOINTERFACE;
}
-static HRESULT WINAPI IDirect3DVertexBufferImpl_1_QueryInterface(IDirect3DVertexBuffer *iface,
- REFIID riid, void **obj)
+static HRESULT WINAPI d3d_vertex_buffer1_QueryInterface(IDirect3DVertexBuffer *iface, REFIID riid, void **obj)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), obj);
- return IDirect3DVertexBuffer7_QueryInterface(&This->IDirect3DVertexBuffer7_iface, riid, obj);
+ return d3d_vertex_buffer7_QueryInterface(&buffer->IDirect3DVertexBuffer7_iface, riid, obj);
}
/*****************************************************************************
@@ -109,23 +109,23 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_1_QueryInterface(IDirect3DVertex
* The new refcount
*
*****************************************************************************/
-static ULONG WINAPI IDirect3DVertexBufferImpl_AddRef(IDirect3DVertexBuffer7 *iface)
+static ULONG WINAPI d3d_vertex_buffer7_AddRef(IDirect3DVertexBuffer7 *iface)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
- ULONG ref = InterlockedIncrement(&This->ref);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
+ ULONG ref = InterlockedIncrement(&buffer->ref);
- TRACE("%p increasing refcount to %u.\n", This, ref);
+ TRACE("%p increasing refcount to %u.\n", buffer, ref);
return ref;
}
-static ULONG WINAPI IDirect3DVertexBufferImpl_1_AddRef(IDirect3DVertexBuffer *iface)
+static ULONG WINAPI d3d_vertex_buffer1_AddRef(IDirect3DVertexBuffer *iface)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
TRACE("iface %p.\n", iface);
- return IDirect3DVertexBuffer7_AddRef(&This->IDirect3DVertexBuffer7_iface);
+ return d3d_vertex_buffer7_AddRef(&buffer->IDirect3DVertexBuffer7_iface);
}
@@ -138,12 +138,12 @@ static ULONG WINAPI IDirect3DVertexBufferImpl_1_AddRef(IDirect3DVertexBuffer *if
* The new refcount
*
*****************************************************************************/
-static ULONG WINAPI IDirect3DVertexBufferImpl_Release(IDirect3DVertexBuffer7 *iface)
+static ULONG WINAPI d3d_vertex_buffer7_Release(IDirect3DVertexBuffer7 *iface)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
- ULONG ref = InterlockedDecrement(&This->ref);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
+ ULONG ref = InterlockedDecrement(&buffer->ref);
- TRACE("%p decreasing refcount to %u.\n", This, ref);
+ TRACE("%p decreasing refcount to %u.\n", buffer, ref);
if (ref == 0)
{
@@ -155,31 +155,30 @@ static ULONG WINAPI IDirect3DVertexBufferImpl_Release(IDirect3DVertexBuffer7 *if
* stream source in wined3d, and they should get unset there before
* they are destroyed. */
wined3d_mutex_lock();
- wined3d_device_get_stream_source(This->ddraw->wined3d_device,
+ wined3d_device_get_stream_source(buffer->ddraw->wined3d_device,
0, &curVB, &offset, &stride);
- if (curVB == This->wineD3DVertexBuffer)
- wined3d_device_set_stream_source(This->ddraw->wined3d_device, 0, NULL, 0, 0);
+ if (curVB == buffer->wineD3DVertexBuffer)
+ wined3d_device_set_stream_source(buffer->ddraw->wined3d_device, 0, NULL, 0, 0);
if (curVB)
wined3d_buffer_decref(curVB); /* For the GetStreamSource */
- wined3d_vertex_declaration_decref(This->wineD3DVertexDeclaration);
- wined3d_buffer_decref(This->wineD3DVertexBuffer);
+ wined3d_vertex_declaration_decref(buffer->wineD3DVertexDeclaration);
+ wined3d_buffer_decref(buffer->wineD3DVertexBuffer);
wined3d_mutex_unlock();
- HeapFree(GetProcessHeap(), 0, This);
-
- return 0;
+ HeapFree(GetProcessHeap(), 0, buffer);
}
+
return ref;
}
-static ULONG WINAPI IDirect3DVertexBufferImpl_1_Release(IDirect3DVertexBuffer *iface)
+static ULONG WINAPI d3d_vertex_buffer1_Release(IDirect3DVertexBuffer *iface)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
TRACE("iface %p.\n", iface);
- return IDirect3DVertexBuffer7_Release(&This->IDirect3DVertexBuffer7_iface);
+ return d3d_vertex_buffer7_Release(&buffer->IDirect3DVertexBuffer7_iface);
}
/*****************************************************************************
@@ -205,48 +204,52 @@ static ULONG WINAPI IDirect3DVertexBufferImpl_1_Release(IDirect3DVertexBuffer *i
* D3DERR_VERTEXBUFFEROPTIMIZED if called on an optimized buffer(WineD3D)
*
*****************************************************************************/
-static HRESULT WINAPI IDirect3DVertexBufferImpl_Lock(IDirect3DVertexBuffer7 *iface, DWORD Flags,
- void **Data, DWORD *Size)
+static HRESULT WINAPI d3d_vertex_buffer7_Lock(IDirect3DVertexBuffer7 *iface,
+ DWORD flags, void **data, DWORD *data_size)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
struct wined3d_resource_desc wined3d_desc;
struct wined3d_resource *wined3d_resource;
HRESULT hr;
DWORD wined3d_flags = 0;
- TRACE("iface %p, flags %#x, data %p, data_size %p.\n", iface, Flags, Data, Size);
+ TRACE("iface %p, flags %#x, data %p, data_size %p.\n", iface, flags, data, data_size);
/* Writeonly: Pointless. Event: Unsupported by native according to the sdk
* nosyslock: Not applicable
*/
- if(!(Flags & DDLOCK_WAIT)) wined3d_flags |= WINED3DLOCK_DONOTWAIT;
- if(Flags & DDLOCK_READONLY) wined3d_flags |= WINED3DLOCK_READONLY;
- if(Flags & DDLOCK_NOOVERWRITE) wined3d_flags |= WINED3DLOCK_NOOVERWRITE;
- if(Flags & DDLOCK_DISCARDCONTENTS) wined3d_flags |= WINED3DLOCK_DISCARD;
+ if (!(flags & DDLOCK_WAIT))
+ wined3d_flags |= WINED3DLOCK_DONOTWAIT;
+ if (flags & DDLOCK_READONLY)
+ wined3d_flags |= WINED3DLOCK_READONLY;
+ if (flags & DDLOCK_NOOVERWRITE)
+ wined3d_flags |= WINED3DLOCK_NOOVERWRITE;
+ if (flags & DDLOCK_DISCARDCONTENTS)
+ wined3d_flags |= WINED3DLOCK_DISCARD;
wined3d_mutex_lock();
- if(Size)
+ if (data_size)
{
/* Get the size, for returning it, and for locking */
- wined3d_resource = wined3d_buffer_get_resource(This->wineD3DVertexBuffer);
+ wined3d_resource = wined3d_buffer_get_resource(buffer->wineD3DVertexBuffer);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
- *Size = wined3d_desc.size;
+ *data_size = wined3d_desc.size;
}
- hr = wined3d_buffer_map(This->wineD3DVertexBuffer, 0, 0, (BYTE **)Data, wined3d_flags);
+ hr = wined3d_buffer_map(buffer->wineD3DVertexBuffer, 0, 0, (BYTE **)data, wined3d_flags);
wined3d_mutex_unlock();
return hr;
}
-static HRESULT WINAPI IDirect3DVertexBufferImpl_1_Lock(IDirect3DVertexBuffer *iface, DWORD Flags,
- void **Data, DWORD *Size)
+static HRESULT WINAPI d3d_vertex_buffer1_Lock(IDirect3DVertexBuffer *iface,
+ DWORD flags, void **data, DWORD *data_size)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
- TRACE("iface %p, flags %#x, data %p, data_size %p.\n", iface, Flags, Data, Size);
+ TRACE("iface %p, flags %#x, data %p, data_size %p.\n", iface, flags, data, data_size);
- return IDirect3DVertexBuffer7_Lock(&This->IDirect3DVertexBuffer7_iface, Flags, Data, Size);
+ return d3d_vertex_buffer7_Lock(&buffer->IDirect3DVertexBuffer7_iface, flags, data, data_size);
}
/*****************************************************************************
@@ -258,26 +261,26 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_1_Lock(IDirect3DVertexBuffer *if
* D3D_OK on success
*
*****************************************************************************/
-static HRESULT WINAPI IDirect3DVertexBufferImpl_Unlock(IDirect3DVertexBuffer7 *iface)
+static HRESULT WINAPI d3d_vertex_buffer7_Unlock(IDirect3DVertexBuffer7 *iface)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
TRACE("iface %p.\n", iface);
wined3d_mutex_lock();
- wined3d_buffer_unmap(This->wineD3DVertexBuffer);
+ wined3d_buffer_unmap(buffer->wineD3DVertexBuffer);
wined3d_mutex_unlock();
return D3D_OK;
}
-static HRESULT WINAPI IDirect3DVertexBufferImpl_1_Unlock(IDirect3DVertexBuffer *iface)
+static HRESULT WINAPI d3d_vertex_buffer1_Unlock(IDirect3DVertexBuffer *iface)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
TRACE("iface %p.\n", iface);
- return IDirect3DVertexBuffer7_Unlock(&This->IDirect3DVertexBuffer7_iface);
+ return d3d_vertex_buffer7_Unlock(&buffer->IDirect3DVertexBuffer7_iface);
}
@@ -303,18 +306,18 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_1_Unlock(IDirect3DVertexBuffer *
* DDERR_INVALIDPARAMS If D3DVOP_TRANSFORM wasn't passed
*
*****************************************************************************/
-static HRESULT WINAPI IDirect3DVertexBufferImpl_ProcessVertices(IDirect3DVertexBuffer7 *iface,
- DWORD VertexOp, DWORD DestIndex, DWORD Count, IDirect3DVertexBuffer7 *SrcBuffer,
- DWORD SrcIndex, IDirect3DDevice7 *device, DWORD Flags)
+static HRESULT WINAPI d3d_vertex_buffer7_ProcessVertices(IDirect3DVertexBuffer7 *iface,
+ DWORD vertex_op, DWORD dst_idx, DWORD count, IDirect3DVertexBuffer7 *src_buffer,
+ DWORD src_idx, IDirect3DDevice7 *device, DWORD flags)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
- IDirect3DVertexBufferImpl *Src = unsafe_impl_from_IDirect3DVertexBuffer7(SrcBuffer);
+ struct d3d_vertex_buffer *dst_buffer_impl = impl_from_IDirect3DVertexBuffer7(iface);
+ struct d3d_vertex_buffer *src_buffer_impl = unsafe_impl_from_IDirect3DVertexBuffer7(src_buffer);
struct d3d_device *device_impl = unsafe_impl_from_IDirect3DDevice7(device);
BOOL oldClip, doClip;
HRESULT hr;
TRACE("iface %p, vertex_op %#x, dst_idx %u, count %u, src_buffer %p, src_idx %u, device %p, flags %#x.\n",
- iface, VertexOp, DestIndex, Count, SrcBuffer, SrcIndex, device, Flags);
+ iface, vertex_op, dst_idx, count, src_buffer, src_idx, device, flags);
/* Vertex operations:
* D3DVOP_CLIP: Clips vertices outside the viewing frustrum. Needs clipping information
@@ -326,7 +329,8 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_ProcessVertices(IDirect3DVertexB
* WineD3D only transforms and clips the vertices by now, so EXTENTS and LIGHT
* are not implemented. Clipping is disabled ATM, because of unsure conditions.
*/
- if( !(VertexOp & D3DVOP_TRANSFORM) ) return DDERR_INVALIDPARAMS;
+ if (!(vertex_op & D3DVOP_TRANSFORM))
+ return DDERR_INVALIDPARAMS;
wined3d_mutex_lock();
@@ -334,16 +338,16 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_ProcessVertices(IDirect3DVertexB
* render states instead. Set the render states according to
* the vertex ops
*/
- doClip = VertexOp & D3DVOP_CLIP ? TRUE : FALSE;
+ doClip = !!(vertex_op & D3DVOP_CLIP);
wined3d_device_get_render_state(device_impl->wined3d_device, WINED3D_RS_CLIPPING, (DWORD *)&oldClip);
if (doClip != oldClip)
wined3d_device_set_render_state(device_impl->wined3d_device, WINED3D_RS_CLIPPING, doClip);
wined3d_device_set_stream_source(device_impl->wined3d_device,
- 0, Src->wineD3DVertexBuffer, 0, get_flexible_vertex_size(Src->fvf));
- wined3d_device_set_vertex_declaration(device_impl->wined3d_device, Src->wineD3DVertexDeclaration);
- hr = wined3d_device_process_vertices(device_impl->wined3d_device, SrcIndex, DestIndex,
- Count, This->wineD3DVertexBuffer, NULL, Flags, This->fvf);
+ 0, src_buffer_impl->wineD3DVertexBuffer, 0, get_flexible_vertex_size(src_buffer_impl->fvf));
+ wined3d_device_set_vertex_declaration(device_impl->wined3d_device, src_buffer_impl->wineD3DVertexDeclaration);
+ hr = wined3d_device_process_vertices(device_impl->wined3d_device, src_idx, dst_idx,
+ count, dst_buffer_impl->wineD3DVertexBuffer, NULL, flags, dst_buffer_impl->fvf);
/* Restore the states if needed */
if (doClip != oldClip)
@@ -354,20 +358,20 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_ProcessVertices(IDirect3DVertexB
return hr;
}
-static HRESULT WINAPI IDirect3DVertexBufferImpl_1_ProcessVertices(IDirect3DVertexBuffer *iface,
- DWORD VertexOp, DWORD DestIndex, DWORD Count, IDirect3DVertexBuffer *SrcBuffer,
- DWORD SrcIndex, IDirect3DDevice3 *device, DWORD Flags)
+static HRESULT WINAPI d3d_vertex_buffer1_ProcessVertices(IDirect3DVertexBuffer *iface,
+ DWORD vertex_op, DWORD dst_idx, DWORD count, IDirect3DVertexBuffer *src_buffer,
+ DWORD src_idx, IDirect3DDevice3 *device, DWORD flags)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
- IDirect3DVertexBufferImpl *Src = unsafe_impl_from_IDirect3DVertexBuffer(SrcBuffer);
+ struct d3d_vertex_buffer *dst_buffer_impl = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *src_buffer_impl = unsafe_impl_from_IDirect3DVertexBuffer(src_buffer);
struct d3d_device *device_impl = unsafe_impl_from_IDirect3DDevice3(device);
TRACE("iface %p, vertex_op %#x, dst_idx %u, count %u, src_buffer %p, src_idx %u, device %p, flags %#x.\n",
- iface, VertexOp, DestIndex, Count, SrcBuffer, SrcIndex, device, Flags);
+ iface, vertex_op, dst_idx, count, src_buffer, src_idx, device, flags);
- return IDirect3DVertexBuffer7_ProcessVertices(&This->IDirect3DVertexBuffer7_iface, VertexOp,
- DestIndex, Count, &Src->IDirect3DVertexBuffer7_iface, SrcIndex,
- device_impl ? &device_impl->IDirect3DDevice7_iface : NULL, Flags);
+ return d3d_vertex_buffer7_ProcessVertices(&dst_buffer_impl->IDirect3DVertexBuffer7_iface, vertex_op,
+ dst_idx, count, &src_buffer_impl->IDirect3DVertexBuffer7_iface, src_idx,
+ device_impl ? &device_impl->IDirect3DDevice7_iface : NULL, flags);
}
/*****************************************************************************
@@ -383,38 +387,36 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_1_ProcessVertices(IDirect3DVerte
* D3D_OK on success
*
*****************************************************************************/
-static HRESULT WINAPI IDirect3DVertexBufferImpl_GetVertexBufferDesc(IDirect3DVertexBuffer7 *iface,
- D3DVERTEXBUFFERDESC *Desc)
+static HRESULT WINAPI d3d_vertex_buffer7_GetVertexBufferDesc(IDirect3DVertexBuffer7 *iface, D3DVERTEXBUFFERDESC *desc)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
struct wined3d_resource_desc wined3d_desc;
struct wined3d_resource *wined3d_resource;
- TRACE("iface %p, desc %p.\n", iface, Desc);
+ TRACE("iface %p, desc %p.\n", iface, desc);
- if(!Desc) return DDERR_INVALIDPARAMS;
+ if (!desc) return DDERR_INVALIDPARAMS;
wined3d_mutex_lock();
- wined3d_resource = wined3d_buffer_get_resource(This->wineD3DVertexBuffer);
+ wined3d_resource = wined3d_buffer_get_resource(buffer->wineD3DVertexBuffer);
wined3d_resource_get_desc(wined3d_resource, &wined3d_desc);
wined3d_mutex_unlock();
- /* Now fill the Desc structure */
- Desc->dwCaps = This->Caps;
- Desc->dwFVF = This->fvf;
- Desc->dwNumVertices = wined3d_desc.size / get_flexible_vertex_size(This->fvf);
+ /* Now fill the desc structure */
+ desc->dwCaps = buffer->Caps;
+ desc->dwFVF = buffer->fvf;
+ desc->dwNumVertices = wined3d_desc.size / get_flexible_vertex_size(buffer->fvf);
return D3D_OK;
}
-static HRESULT WINAPI IDirect3DVertexBufferImpl_1_GetVertexBufferDesc(IDirect3DVertexBuffer *iface,
- D3DVERTEXBUFFERDESC *Desc)
+static HRESULT WINAPI d3d_vertex_buffer1_GetVertexBufferDesc(IDirect3DVertexBuffer *iface, D3DVERTEXBUFFERDESC *desc)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
- TRACE("iface %p, desc %p.\n", iface, Desc);
+ TRACE("iface %p, desc %p.\n", iface, desc);
- return IDirect3DVertexBuffer7_GetVertexBufferDesc(&This->IDirect3DVertexBuffer7_iface, Desc);
+ return d3d_vertex_buffer7_GetVertexBufferDesc(&buffer->IDirect3DVertexBuffer7_iface, desc);
}
@@ -431,17 +433,17 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_1_GetVertexBufferDesc(IDirect3DV
* D3D_OK, because it's a stub
*
*****************************************************************************/
-static HRESULT WINAPI IDirect3DVertexBufferImpl_Optimize(IDirect3DVertexBuffer7 *iface,
- IDirect3DDevice7 *D3DDevice, DWORD Flags)
+static HRESULT WINAPI d3d_vertex_buffer7_Optimize(IDirect3DVertexBuffer7 *iface,
+ IDirect3DDevice7 *device, DWORD flags)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer7(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer7(iface);
static BOOL hide = FALSE;
- TRACE("iface %p, device %p, flags %#x.\n", iface, D3DDevice, Flags);
+ TRACE("iface %p, device %p, flags %#x.\n", iface, device, flags);
if (!hide)
{
- FIXME("iface %p, device %p, flags %#x stub!\n", iface, D3DDevice, Flags);
+ FIXME("iface %p, device %p, flags %#x stub!\n", iface, device, flags);
hide = TRUE;
}
@@ -449,22 +451,22 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_Optimize(IDirect3DVertexBuffer7
* of it once we use OpenGL vertex buffers
*/
wined3d_mutex_lock();
- This->Caps |= D3DVBCAPS_OPTIMIZED;
+ buffer->Caps |= D3DVBCAPS_OPTIMIZED;
wined3d_mutex_unlock();
return DD_OK;
}
-static HRESULT WINAPI IDirect3DVertexBufferImpl_1_Optimize(IDirect3DVertexBuffer *iface,
- IDirect3DDevice3 *device, DWORD Flags)
+static HRESULT WINAPI d3d_vertex_buffer1_Optimize(IDirect3DVertexBuffer *iface,
+ IDirect3DDevice3 *device, DWORD flags)
{
- IDirect3DVertexBufferImpl *This = impl_from_IDirect3DVertexBuffer(iface);
+ struct d3d_vertex_buffer *buffer = impl_from_IDirect3DVertexBuffer(iface);
struct d3d_device *device_impl = unsafe_impl_from_IDirect3DDevice3(device);
- TRACE("iface %p, device %p, flags %#x.\n", iface, device, Flags);
+ TRACE("iface %p, device %p, flags %#x.\n", iface, device, flags);
- return IDirect3DVertexBuffer7_Optimize(&This->IDirect3DVertexBuffer7_iface,
- device_impl ? &device_impl->IDirect3DDevice7_iface : NULL, Flags);
+ return d3d_vertex_buffer7_Optimize(&buffer->IDirect3DVertexBuffer7_iface,
+ device_impl ? &device_impl->IDirect3DDevice7_iface : NULL, flags);
}
/*****************************************************************************
@@ -489,18 +491,12 @@ static HRESULT WINAPI IDirect3DVertexBufferImpl_1_Optimize(IDirect3DVertexBuffer
* D3D_OK on success, or DDERR_*
*
*****************************************************************************/
-static HRESULT WINAPI
-IDirect3DVertexBufferImpl_ProcessVerticesStrided(IDirect3DVertexBuffer7 *iface,
- DWORD VertexOp,
- DWORD DestIndex,
- DWORD Count,
- D3DDRAWPRIMITIVESTRIDEDDATA *StrideData,
- DWORD VertexTypeDesc,
- IDirect3DDevice7 *D3DDevice,
- DWORD Flags)
+static HRESULT WINAPI d3d_vertex_buffer7_ProcessVerticesStrided(IDirect3DVertexBuffer7 *iface,
+ DWORD vertex_op, DWORD dst_idx, DWORD count, D3DDRAWPRIMITIVESTRIDEDDATA *data,
+ DWORD fvf, IDirect3DDevice7 *device, DWORD flags)
{
- FIXME("iface %p, vertex_op %#x, dst_idx %u, count %u, data %p, vertex_type %#x, device %p, flags %#x stub!\n",
- iface, VertexOp, DestIndex, Count, StrideData, VertexTypeDesc, D3DDevice, Flags);
+ FIXME("iface %p, vertex_op %#x, dst_idx %u, count %u, data %p, fvf %#x, device %p, flags %#x stub!\n",
+ iface, vertex_op, dst_idx, count, data, fvf, device, flags);
return DD_OK;
}
@@ -511,38 +507,33 @@ IDirect3DVertexBufferImpl_ProcessVerticesStrided(IDirect3DVertexBuffer7 *iface,
static const struct IDirect3DVertexBuffer7Vtbl d3d_vertex_buffer7_vtbl =
{
- /*** IUnknown Methods ***/
- IDirect3DVertexBufferImpl_QueryInterface,
- IDirect3DVertexBufferImpl_AddRef,
- IDirect3DVertexBufferImpl_Release,
- /*** IDirect3DVertexBuffer Methods ***/
- IDirect3DVertexBufferImpl_Lock,
- IDirect3DVertexBufferImpl_Unlock,
- IDirect3DVertexBufferImpl_ProcessVertices,
- IDirect3DVertexBufferImpl_GetVertexBufferDesc,
- IDirect3DVertexBufferImpl_Optimize,
- /*** IDirect3DVertexBuffer7 Methods ***/
- IDirect3DVertexBufferImpl_ProcessVerticesStrided
+ d3d_vertex_buffer7_QueryInterface,
+ d3d_vertex_buffer7_AddRef,
+ d3d_vertex_buffer7_Release,
+ d3d_vertex_buffer7_Lock,
+ d3d_vertex_buffer7_Unlock,
+ d3d_vertex_buffer7_ProcessVertices,
+ d3d_vertex_buffer7_GetVertexBufferDesc,
+ d3d_vertex_buffer7_Optimize,
+ d3d_vertex_buffer7_ProcessVerticesStrided,
};
static const struct IDirect3DVertexBufferVtbl d3d_vertex_buffer1_vtbl =
{
- /*** IUnknown Methods ***/
- IDirect3DVertexBufferImpl_1_QueryInterface,
- IDirect3DVertexBufferImpl_1_AddRef,
- IDirect3DVertexBufferImpl_1_Release,
- /*** IDirect3DVertexBuffer Methods ***/
- IDirect3DVertexBufferImpl_1_Lock,
- IDirect3DVertexBufferImpl_1_Unlock,
- IDirect3DVertexBufferImpl_1_ProcessVertices,
- IDirect3DVertexBufferImpl_1_GetVertexBufferDesc,
- IDirect3DVertexBufferImpl_1_Optimize
+ d3d_vertex_buffer1_QueryInterface,
+ d3d_vertex_buffer1_AddRef,
+ d3d_vertex_buffer1_Release,
+ d3d_vertex_buffer1_Lock,
+ d3d_vertex_buffer1_Unlock,
+ d3d_vertex_buffer1_ProcessVertices,
+ d3d_vertex_buffer1_GetVertexBufferDesc,
+ d3d_vertex_buffer1_Optimize,
};
-HRESULT d3d_vertex_buffer_create(IDirect3DVertexBufferImpl **vertex_buf, struct ddraw *ddraw,
- D3DVERTEXBUFFERDESC *desc)
+HRESULT d3d_vertex_buffer_create(struct d3d_vertex_buffer **vertex_buf,
+ struct ddraw *ddraw, D3DVERTEXBUFFERDESC *desc)
{
- IDirect3DVertexBufferImpl *buffer;
+ struct d3d_vertex_buffer *buffer;
DWORD usage;
HRESULT hr = D3D_OK;
@@ -601,7 +592,7 @@ end:
return hr;
}
-IDirect3DVertexBufferImpl *unsafe_impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface)
+struct d3d_vertex_buffer *unsafe_impl_from_IDirect3DVertexBuffer(IDirect3DVertexBuffer *iface)
{
if (!iface)
return NULL;
@@ -610,7 +601,7 @@ IDirect3DVertexBufferImpl *unsafe_impl_from_IDirect3DVertexBuffer(IDirect3DVerte
return impl_from_IDirect3DVertexBuffer(iface);
}
-IDirect3DVertexBufferImpl *unsafe_impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface)
+struct d3d_vertex_buffer *unsafe_impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface)
{
if (!iface)
return NULL;
--
1.7.3.4
More information about the wine-patches
mailing list