[PATCH 4/4] wined3d: Get rid of the IWineD3DBuffer typedef.
Henri Verbeet
hverbeet at codeweavers.com
Thu Mar 3 14:49:10 CST 2011
---
dlls/wined3d/buffer.c | 2 -
dlls/wined3d/device.c | 148 ++++++++++++++++++++--------------------
dlls/wined3d/stateblock.c | 5 +-
dlls/wined3d/wined3d_private.h | 3 -
4 files changed, 76 insertions(+), 82 deletions(-)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 34448dc..a3b7121 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1167,8 +1167,6 @@ WINED3DRESOURCETYPE CDECL wined3d_buffer_get_type(const struct wined3d_buffer *b
return resource_get_type(&buffer->resource);
}
-/* IWineD3DBuffer methods */
-
static DWORD buffer_sanitize_flags(struct wined3d_buffer *buffer, DWORD flags)
{
/* Not all flags make sense together, but Windows never returns an error. Catch the
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 6bd8af3..d5d1900 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -891,7 +891,7 @@ static ULONG WINAPI IWineD3DDeviceImpl_Release(IWineD3DDevice *iface) {
}
static HRESULT WINAPI IWineD3DDeviceImpl_CreateBuffer(IWineD3DDevice *iface, struct wined3d_buffer_desc *desc,
- const void *data, void *parent, const struct wined3d_parent_ops *parent_ops, IWineD3DBuffer **buffer)
+ const void *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_buffer *object;
@@ -920,21 +920,20 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateBuffer(IWineD3DDevice *iface, str
TRACE("Created buffer %p.\n", object);
- *buffer = (IWineD3DBuffer *)object;
+ *buffer = object;
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexBuffer(IWineD3DDevice *iface,
- UINT Size, DWORD Usage, WINED3DPOOL Pool, void *parent,
- const struct wined3d_parent_ops *parent_ops, IWineD3DBuffer **ppVertexBuffer)
+static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexBuffer(IWineD3DDevice *iface, UINT Size, DWORD Usage,
+ WINED3DPOOL Pool, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_buffer *object;
HRESULT hr;
- TRACE("iface %p, size %u, usage %#x, pool %#x, buffer %p, parent %p, parent_ops %p.\n",
- iface, Size, Usage, Pool, ppVertexBuffer, parent, parent_ops);
+ TRACE("iface %p, size %u, usage %#x, pool %#x, parent %p, parent_ops %p, buffer %p.\n",
+ iface, Size, Usage, Pool, parent, parent_ops, buffer);
if (Pool == WINED3DPOOL_SCRATCH)
{
@@ -942,7 +941,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexBuffer(IWineD3DDevice *ifac
* anyway, SCRATCH vertex buffers aren't usable anywhere
*/
WARN("Vertex buffer in D3DPOOL_SCRATCH requested, returning WINED3DERR_INVALIDCALL\n");
- *ppVertexBuffer = NULL;
+ *buffer = NULL;
return WINED3DERR_INVALIDCALL;
}
@@ -950,7 +949,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexBuffer(IWineD3DDevice *ifac
if (!object)
{
ERR("Out of memory\n");
- *ppVertexBuffer = NULL;
+ *buffer = NULL;
return WINED3DERR_OUTOFVIDEOMEMORY;
}
@@ -964,27 +963,27 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexBuffer(IWineD3DDevice *ifac
}
TRACE("Created buffer %p.\n", object);
- *ppVertexBuffer = (IWineD3DBuffer *)object;
+ *buffer = object;
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DDeviceImpl_CreateIndexBuffer(IWineD3DDevice *iface,
- UINT Length, DWORD Usage, WINED3DPOOL Pool, void *parent,
- const struct wined3d_parent_ops *parent_ops, IWineD3DBuffer **ppIndexBuffer)
+static HRESULT WINAPI IWineD3DDeviceImpl_CreateIndexBuffer(IWineD3DDevice *iface, UINT Length, DWORD Usage,
+ WINED3DPOOL Pool, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_buffer *object;
HRESULT hr;
- TRACE("(%p) Creating index buffer\n", This);
+ TRACE("iface %p, size %u, usage %#x, pool %#x, parent %p, parent_ops %p, buffer %p.\n",
+ iface, Length, Usage, Pool, parent, parent_ops, buffer);
/* Allocate the storage for the device */
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
if (!object)
{
ERR("Out of memory\n");
- *ppIndexBuffer = NULL;
+ *buffer = NULL;
return WINED3DERR_OUTOFVIDEOMEMORY;
}
@@ -1000,7 +999,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateIndexBuffer(IWineD3DDevice *iface
TRACE("Created buffer %p.\n", object);
- *ppIndexBuffer = (IWineD3DBuffer *) object;
+ *buffer = object;
return WINED3D_OK;
}
@@ -2385,18 +2384,15 @@ static UINT WINAPI IWineD3DDeviceImpl_GetAvailableTextureMem(IWineD3DDevice *ifa
return (This->adapter->TextureRam - This->adapter->UsedTextureRam);
}
-/*****
- * Get / Set Stream Source
- *****/
static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSource(IWineD3DDevice *iface, UINT StreamNumber,
- IWineD3DBuffer *pStreamData, UINT OffsetInBytes, UINT Stride)
+ struct wined3d_buffer *buffer, UINT OffsetInBytes, UINT Stride)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_stream_state *stream;
- IWineD3DBuffer *oldSrc;
+ struct wined3d_buffer *prev_buffer;
TRACE("iface %p, stream_idx %u, buffer %p, offset %u, stride %u.\n",
- iface, StreamNumber, pStreamData, OffsetInBytes, Stride);
+ iface, StreamNumber, buffer, OffsetInBytes, Stride);
if (StreamNumber >= MAX_STREAMS) {
WARN("Stream out of range %d\n", StreamNumber);
@@ -2407,11 +2403,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSource(IWineD3DDevice *iface,
}
stream = &This->updateStateBlock->state.streams[StreamNumber];
- oldSrc = (IWineD3DBuffer *)stream->buffer;
+ prev_buffer = stream->buffer;
This->updateStateBlock->changed.streamSource |= 1 << StreamNumber;
- if (oldSrc == pStreamData
+ if (prev_buffer == buffer
&& stream->stride == Stride
&& stream->offset == OffsetInBytes)
{
@@ -2419,8 +2415,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSource(IWineD3DDevice *iface,
return WINED3D_OK;
}
- stream->buffer = (struct wined3d_buffer *)pStreamData;
- if (pStreamData)
+ stream->buffer = buffer;
+ if (buffer)
{
stream->stride = Stride;
stream->offset = OffsetInBytes;
@@ -2429,22 +2425,22 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSource(IWineD3DDevice *iface,
/* Handle recording of state blocks */
if (This->isRecordingState) {
TRACE("Recording... not performing anything\n");
- if (pStreamData)
- wined3d_buffer_incref(pStreamData);
- if (oldSrc)
- wined3d_buffer_decref(oldSrc);
+ if (buffer)
+ wined3d_buffer_incref(buffer);
+ if (prev_buffer)
+ wined3d_buffer_decref(prev_buffer);
return WINED3D_OK;
}
- if (pStreamData)
+ if (buffer)
{
- InterlockedIncrement(&((struct wined3d_buffer *)pStreamData)->bind_count);
- wined3d_buffer_incref(pStreamData);
+ InterlockedIncrement(&buffer->bind_count);
+ wined3d_buffer_incref(buffer);
}
- if (oldSrc)
+ if (prev_buffer)
{
- InterlockedDecrement(&((struct wined3d_buffer *)oldSrc)->bind_count);
- wined3d_buffer_decref(oldSrc);
+ InterlockedDecrement(&prev_buffer->bind_count);
+ wined3d_buffer_decref(prev_buffer);
}
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_STREAMSRC);
@@ -2453,13 +2449,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetStreamSource(IWineD3DDevice *iface,
}
static HRESULT WINAPI IWineD3DDeviceImpl_GetStreamSource(IWineD3DDevice *iface,
- UINT StreamNumber, IWineD3DBuffer **pStream, UINT *pOffset, UINT *pStride)
+ UINT StreamNumber, struct wined3d_buffer **buffer, UINT *pOffset, UINT *pStride)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_stream_state *stream;
TRACE("iface %p, stream_idx %u, buffer %p, offset %p, stride %p.\n",
- iface, StreamNumber, pStream, pOffset, pStride);
+ iface, StreamNumber, buffer, pOffset, pStride);
if (StreamNumber >= MAX_STREAMS)
{
@@ -2468,12 +2464,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetStreamSource(IWineD3DDevice *iface,
}
stream = &This->stateBlock->state.streams[StreamNumber];
- *pStream = (IWineD3DBuffer *)stream->buffer;
+ *buffer = stream->buffer;
*pStride = stream->stride;
if (pOffset) *pOffset = stream->offset;
- if (*pStream)
- wined3d_buffer_incref(*pStream);
+ if (*buffer)
+ wined3d_buffer_incref(*buffer);
return WINED3D_OK;
}
@@ -3048,55 +3044,60 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetMaterial(IWineD3DDevice *iface, WINE
* Get / Set Indices
*****/
static HRESULT WINAPI IWineD3DDeviceImpl_SetIndexBuffer(IWineD3DDevice *iface,
- IWineD3DBuffer *pIndexData, enum wined3d_format_id fmt)
+ struct wined3d_buffer *buffer, enum wined3d_format_id fmt)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
- IWineD3DBuffer *oldIdxs;
+ struct wined3d_buffer *prev_buffer;
+
+ TRACE("iface %p, buffer %p, format %s.\n",
+ iface, buffer, debug_d3dformat(fmt));
- TRACE("(%p) : Setting to %p\n", This, pIndexData);
- oldIdxs = (IWineD3DBuffer *)This->updateStateBlock->state.index_buffer;
+ prev_buffer = This->updateStateBlock->state.index_buffer;
This->updateStateBlock->changed.indices = TRUE;
- This->updateStateBlock->state.index_buffer = (struct wined3d_buffer *)pIndexData;
+ This->updateStateBlock->state.index_buffer = buffer;
This->updateStateBlock->state.index_format = fmt;
/* Handle recording of state blocks */
if (This->isRecordingState) {
TRACE("Recording... not performing anything\n");
- if (pIndexData)
- wined3d_buffer_incref(pIndexData);
- if (oldIdxs)
- wined3d_buffer_decref(oldIdxs);
+ if (buffer)
+ wined3d_buffer_incref(buffer);
+ if (prev_buffer)
+ wined3d_buffer_decref(prev_buffer);
return WINED3D_OK;
}
- if(oldIdxs != pIndexData) {
+ if (prev_buffer != buffer)
+ {
IWineD3DDeviceImpl_MarkStateDirty(This, STATE_INDEXBUFFER);
- if (pIndexData)
+ if (buffer)
{
- InterlockedIncrement(&((struct wined3d_buffer *)pIndexData)->bind_count);
- wined3d_buffer_incref(pIndexData);
+ InterlockedIncrement(&buffer->bind_count);
+ wined3d_buffer_incref(buffer);
}
- if (oldIdxs)
+ if (prev_buffer)
{
- InterlockedDecrement(&((struct wined3d_buffer *)oldIdxs)->bind_count);
- wined3d_buffer_decref(oldIdxs);
+ InterlockedDecrement(&prev_buffer->bind_count);
+ wined3d_buffer_decref(prev_buffer);
}
}
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DDeviceImpl_GetIndexBuffer(IWineD3DDevice *iface, IWineD3DBuffer **ppIndexData)
+static HRESULT WINAPI IWineD3DDeviceImpl_GetIndexBuffer(IWineD3DDevice *iface, struct wined3d_buffer **buffer)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
- *ppIndexData = (IWineD3DBuffer *)This->stateBlock->state.index_buffer;
+ TRACE("iface %p, buffer %p.\n", iface, buffer);
+
+ *buffer = This->stateBlock->state.index_buffer;
- if (*ppIndexData)
- wined3d_buffer_incref(*ppIndexData);
+ if (*buffer)
+ wined3d_buffer_incref(*buffer);
- TRACE("Returning %p.\n", *ppIndexData);
+ TRACE("Returning %p.\n", *buffer);
return WINED3D_OK;
}
@@ -4274,9 +4275,9 @@ static HRESULT process_vertices_strided(IWineD3DDeviceImpl *This, DWORD dwDestIn
#undef copy_and_next
/* Do not call while under the GL lock. */
-static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface, UINT SrcStartIndex, UINT DestIndex,
- UINT VertexCount, IWineD3DBuffer *pDestBuffer, struct wined3d_vertex_declaration *pVertexDecl, DWORD flags,
- DWORD DestFVF)
+static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface,
+ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, struct wined3d_buffer *dst_buffer,
+ struct wined3d_vertex_declaration *pVertexDecl, DWORD flags, DWORD DestFVF)
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_stream_info stream_info;
@@ -4285,7 +4286,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface,
BOOL vbo = FALSE, streamWasUP = This->stateBlock->state.user_stream;
HRESULT hr;
- TRACE("(%p)->(%d,%d,%d,%p,%p,%d\n", This, SrcStartIndex, DestIndex, VertexCount, pDestBuffer, pVertexDecl, flags);
+ TRACE("(%p)->(%d,%d,%d,%p,%p,%d\n", This, SrcStartIndex, DestIndex, VertexCount, dst_buffer, pVertexDecl, flags);
if(pVertexDecl) {
ERR("Output vertex declaration not implemented yet\n");
@@ -4330,8 +4331,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ProcessVertices(IWineD3DDevice *iface,
}
}
- hr = process_vertices_strided(This, DestIndex, VertexCount, &stream_info,
- (struct wined3d_buffer *)pDestBuffer, flags, DestFVF);
+ hr = process_vertices_strided(This, DestIndex, VertexCount,
+ &stream_info, dst_buffer, flags, DestFVF);
context_release(context);
@@ -4903,7 +4904,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawPrimitiveUP(IWineD3DDevice *iface,
{
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_stream_state *stream;
- IWineD3DBuffer *vb;
+ struct wined3d_buffer *vb;
TRACE("(%p) : vertex count %u, pVtxData %p, stride %u\n",
This, vertex_count, pVertexStreamZeroData, VertexStreamZeroStride);
@@ -4916,7 +4917,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawPrimitiveUP(IWineD3DDevice *iface,
/* Note in the following, it's not this type, but that's the purpose of streamIsUP */
stream = &This->stateBlock->state.streams[0];
- vb = (IWineD3DBuffer *)stream->buffer;
+ vb = stream->buffer;
stream->buffer = (struct wined3d_buffer *)pVertexStreamZeroData;
if (vb)
wined3d_buffer_decref(vb);
@@ -4947,8 +4948,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawIndexedPrimitiveUP(IWineD3DDevice *
int idxStride;
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
struct wined3d_stream_state *stream;
- IWineD3DBuffer *vb;
- IWineD3DBuffer *ib;
+ struct wined3d_buffer *vb, *ib;
TRACE("(%p) : index count %u, pidxdata %p, IdxFmt %u, pVtxdata %p, stride=%u.\n",
This, index_count, pIndexData, IndexDataFormat, pVertexStreamZeroData, VertexStreamZeroStride);
@@ -4966,7 +4966,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawIndexedPrimitiveUP(IWineD3DDevice *
}
stream = &This->stateBlock->state.streams[0];
- vb = (IWineD3DBuffer *)stream->buffer;
+ vb = stream->buffer;
stream->buffer = (struct wined3d_buffer *)pVertexStreamZeroData;
if (vb)
wined3d_buffer_decref(vb);
@@ -4986,7 +4986,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DrawIndexedPrimitiveUP(IWineD3DDevice *
/* MSDN specifies stream zero settings and index buffer must be set to NULL */
stream->buffer = NULL;
stream->stride = 0;
- ib = (IWineD3DBuffer *)This->stateBlock->state.index_buffer;
+ ib = This->stateBlock->state.index_buffer;
if (ib)
{
wined3d_buffer_decref(ib);
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index de84359..3c1da53 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -984,8 +984,7 @@ HRESULT CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblo
if (stateblock->changed.indices)
{
- IWineD3DDevice_SetIndexBuffer(device, (IWineD3DBuffer *)stateblock->state.index_buffer,
- stateblock->state.index_format);
+ IWineD3DDevice_SetIndexBuffer(device, stateblock->state.index_buffer, stateblock->state.index_format);
IWineD3DDevice_SetBaseVertexIndex(device, stateblock->state.base_vertex_index);
}
@@ -1014,7 +1013,7 @@ HRESULT CDECL wined3d_stateblock_apply(const struct wined3d_stateblock *stateblo
{
if (map & 1)
IWineD3DDevice_SetStreamSource(device, i,
- (IWineD3DBuffer *)stateblock->state.streams[i].buffer,
+ stateblock->state.streams[i].buffer,
0, stateblock->state.streams[i].stride);
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index e82084f..b11bd7b 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -55,7 +55,6 @@
typedef struct IWineD3DSurfaceImpl IWineD3DSurfaceImpl;
typedef struct IWineD3DDeviceImpl IWineD3DDeviceImpl;
typedef struct IWineD3DSwapChainImpl IWineD3DSwapChainImpl;
-typedef struct wined3d_buffer IWineD3DBuffer;
struct IWineD3DBaseShaderImpl;
struct IWineD3DBaseTextureImpl;
@@ -2514,8 +2513,6 @@ struct wined3d_query
HRESULT query_init(struct wined3d_query *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type) DECLSPEC_HIDDEN;
-/* IWineD3DBuffer */
-
/* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other
* fixed function semantics as D3DCOLOR or FLOAT16 */
enum wined3d_buffer_conversion_type
--
1.7.3.4
More information about the wine-patches
mailing list