21 #include "wine/port.h" 95 if (vb ==
buffer->wined3d_buffer)
103 IDirectDraw7_Release(&
buffer->ddraw->IDirectDraw7_iface);
132 desc.structure_byte_stride = 0;
166 TRACE(
"iface %p, flags %#x, data %p, data_size %p.\n", iface,
flags,
data, data_size);
184 buffer->wined3d_buffer = new_buffer;
188 WARN(
"Failed to create a dynamic buffer\n");
200 *data_size = wined3d_desc.
size;
225 TRACE(
"iface %p.\n", iface);
265 BOOL oldClip, doClip;
268 TRACE(
"iface %p, vertex_op %#x, dst_idx %u, count %u, src_buffer %p, src_idx %u, device %p, flags %#x.\n",
292 if (doClip != oldClip)
302 if (doClip != oldClip)
329 TRACE(
"iface %p, desc %p.\n", iface,
desc);
409 FIXME(
"iface %p, vertex_op %#x, dst_idx %u, count %u, data %p, fvf %#x, device %p, flags %#x stub!\n",
438 TRACE(
"Vertex buffer description:\n");
442 TRACE(
" dwNumVertices %u\n",
desc->dwNumVertices);
461 WARN(
"Failed to create wined3d vertex buffer, hr %#x.\n",
hr);
469 ERR(
"Failed to find vertex declaration for fvf %#x.\n",
desc->dwFVF);
HRESULT CDECL wined3d_device_get_stream_source(const struct wined3d_device *device, UINT stream_idx, struct wined3d_buffer **buffer, UINT *offset, UINT *stride)
#define WINED3DERR_INVALIDCALL
void CDECL wined3d_device_set_render_state(struct wined3d_device *device, enum wined3d_render_state state, DWORD value)
IDirect3DVertexBuffer7 IDirect3DVertexBuffer7_iface
#define WINED3D_BIND_VERTEX_BUFFER
struct wined3d_buffer * wined3d_buffer
static HRESULT WINAPI d3d_vertex_buffer7_QueryInterface(IDirect3DVertexBuffer7 *iface, REFIID riid, void **obj)
GLuint GLuint GLsizei count
#define WINED3DUSAGE_DYNAMIC
HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
void CDECL wined3d_resource_get_desc(const struct wined3d_resource *resource, struct wined3d_resource_desc *desc)
#define D3DVBCAPS_SYSTEMMEMORY
struct d3d_device * unsafe_impl_from_IDirect3DDevice7(IDirect3DDevice7 *iface) DECLSPEC_HIDDEN
void CDECL wined3d_device_set_vertex_declaration(struct wined3d_device *device, struct wined3d_vertex_declaration *declaration)
void WINAPI wined3d_mutex_lock(void)
static HRESULT WINAPI d3d_vertex_buffer7_Lock(IDirect3DVertexBuffer7 *iface, DWORD flags, void **data, DWORD *data_size)
static struct d3d_vertex_buffer * impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface)
#define WINED3D_RESOURCE_ACCESS_MAP_W
#define DDERR_OUTOFMEMORY
unsigned int wined3dmapflags_from_ddrawmapflags(unsigned int flags) DECLSPEC_HIDDEN
struct wined3d_device * wined3d_device
HRESULT d3d_vertex_buffer_create(struct d3d_vertex_buffer **vertex_buf, struct ddraw *ddraw, D3DVERTEXBUFFERDESC *desc)
static HRESULT d3d_vertex_buffer_create_wined3d_buffer(struct d3d_vertex_buffer *buffer, BOOL dynamic, struct wined3d_buffer **wined3d_buffer)
#define WINED3D_RESOURCE_ACCESS_CPU
HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags)
static const WCHAR desc[]
struct wined3d_vertex_declaration * wined3d_declaration
static ULONG WINAPI d3d_vertex_buffer7_AddRef(IDirect3DVertexBuffer7 *iface)
#define WINED3DUSAGE_STATICDECL
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN
struct d3d_vertex_buffer * unsafe_impl_from_IDirect3DVertexBuffer7(IDirect3DVertexBuffer7 *iface)
static const struct IDirect3DVertexBuffer7Vtbl d3d_vertex_buffer7_vtbl
HRESULT CDECL wined3d_device_set_stream_source(struct wined3d_device *device, UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define D3DVBCAPS_WRITEONLY
ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration)
static HRESULT WINAPI d3d_vertex_buffer7_Unlock(IDirect3DVertexBuffer7 *iface)
static HRESULT WINAPI d3d_vertex_buffer7_GetVertexBufferDesc(IDirect3DVertexBuffer7 *iface, D3DVERTEXBUFFERDESC *desc)
#define WINED3DUSAGE_WRITEONLY
WINE_DEFAULT_DEBUG_CHANNEL(ddraw)
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)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
#define WINED3D_RESOURCE_ACCESS_MAP_R
struct d3d_device * unsafe_impl_from_IDirect3DDevice3(IDirect3DDevice3 *iface) DECLSPEC_HIDDEN
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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)
#define IDirect3DVertexBuffer7_AddRef(p)
#define InterlockedDecrement
#define WINED3D_RESOURCE_ACCESS_GPU
#define InterlockedIncrement
static HRESULT WINAPI d3d_vertex_buffer7_Optimize(IDirect3DVertexBuffer7 *iface, IDirect3DDevice7 *device, DWORD flags)
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT CDECL wined3d_buffer_create(struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
#define D3DVBCAPS_OPTIMIZED
const struct wined3d_parent_ops ddraw_null_wined3d_parent_ops
IDirectDraw7 IDirectDraw7_iface
HRESULT CDECL wined3d_device_process_vertices(struct wined3d_device *device, UINT src_start_idx, UINT dst_idx, UINT vertex_count, struct wined3d_buffer *dst_buffer, const struct wined3d_vertex_declaration *declaration, DWORD flags, DWORD dst_fvf)
#define DDLOCK_NOOVERWRITE
void WINAPI wined3d_mutex_unlock(void)
#define DDLOCK_DISCARDCONTENTS
ULONG CDECL wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration)
#define DDERR_INVALIDPARAMS
static ULONG WINAPI d3d_vertex_buffer7_Release(IDirect3DVertexBuffer7 *iface)
static BOOL heap_free(void *mem)
struct wined3d_vertex_declaration * ddraw_find_decl(struct ddraw *This, DWORD fvf)
DWORD CDECL wined3d_device_get_render_state(const struct wined3d_device *device, enum wined3d_render_state state)