From 5fc53941efc82cee0d6ec2beddb1fd31e7eb5f1e Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 7 Dec 2010 18:47:06 +0100 Subject: [PATCH] wined3d: Pass a wined3d_buffer structure to buffer_get_memory(). --- dlls/wined3d/buffer.c | 23 +++++++++++------------ dlls/wined3d/device.c | 2 +- dlls/wined3d/wined3d_private.h | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 09c07fe9274..30488346d33 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -4,7 +4,7 @@ * Copyright 2004 Christian Costa * Copyright 2005 Oliver Stieber * Copyright 2007-2010 Stefan Dösinger for CodeWeavers - * Copyright 2009 Henri Verbeet for CodeWeavers + * Copyright 2009-2010 Henri Verbeet for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -611,24 +611,23 @@ static inline void fixup_transformed_pos(float *p) } /* Context activation is done by the caller. */ -const BYTE *buffer_get_memory(IWineD3DBuffer *iface, const struct wined3d_gl_info *gl_info, GLuint *buffer_object) +const BYTE *buffer_get_memory(struct wined3d_buffer *buffer, + const struct wined3d_gl_info *gl_info, GLuint *buffer_object) { - struct wined3d_buffer *This = (struct wined3d_buffer *)iface; - - *buffer_object = This->buffer_object; - if (!This->buffer_object) + *buffer_object = buffer->buffer_object; + if (!buffer->buffer_object) { - if (This->flags & WINED3D_BUFFER_CREATEBO) + if (buffer->flags & WINED3D_BUFFER_CREATEBO) { - buffer_create_buffer_object(This, gl_info); - This->flags &= ~WINED3D_BUFFER_CREATEBO; - if (This->buffer_object) + buffer_create_buffer_object(buffer, gl_info); + buffer->flags &= ~WINED3D_BUFFER_CREATEBO; + if (buffer->buffer_object) { - *buffer_object = This->buffer_object; + *buffer_object = buffer->buffer_object; return NULL; } } - return This->resource.allocatedMemory; + return buffer->resource.allocatedMemory; } else { diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index c9920e8410b..ec50693876f 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -213,7 +213,7 @@ void device_stream_info_from_declaration(IWineD3DDeviceImpl *This, else { TRACE("Stream %u isn't UP, %p\n", element->input_slot, buffer); - data = buffer_get_memory((IWineD3DBuffer *)buffer, &This->adapter->gl_info, &buffer_object); + data = buffer_get_memory(buffer, &This->adapter->gl_info, &buffer_object); /* Can't use vbo's if the base vertex index is negative. OpenGL doesn't accept negative offsets * (or rather offsets bigger than the vbo, because the pointer is unsigned), so use system memory diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 8165f186d4d..310fa870d96 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2545,7 +2545,7 @@ struct wined3d_buffer UINT *conversion_shift; /* NULL if no shifted conversion */ }; -const BYTE *buffer_get_memory(IWineD3DBuffer *iface, const struct wined3d_gl_info *gl_info, +const BYTE *buffer_get_memory(struct wined3d_buffer *buffer, const struct wined3d_gl_info *gl_info, GLuint *buffer_object) DECLSPEC_HIDDEN; BYTE *buffer_get_sysmem(struct wined3d_buffer *This, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; HRESULT buffer_init(struct wined3d_buffer *buffer, IWineD3DDeviceImpl *device, -- 2.11.4.GIT