void d3d_vertex_buffer_free(void *vertex_data, void *vertex_declaration) { if (vertex_data) { LPDIRECT3DVERTEXBUFFER buf = (LPDIRECT3DVERTEXBUFFER)vertex_data; buf->Release(); buf = NULL; } #ifdef HAVE_D3D9 if (vertex_declaration) { LPDIRECT3DVERTEXDECLARATION vertex_decl = (LPDIRECT3DVERTEXDECLARATION)vertex_declaration; vertex_decl->Release(); vertex_decl = NULL; } #endif }
void d3d_vertex_buffer_unlock(void *vertbuf_ptr) { LPDIRECT3DVERTEXBUFFER vertbuf = (LPDIRECT3DVERTEXBUFFER)vertbuf_ptr; /* This is a stub on Xbox 1, see docs. */ #ifndef _XBOX1 #ifdef _XBOX360 D3DVertexBuffer_Unlock(vertbuf); #if defined(HAVE_D3D9) && !defined(__cplusplus) IDirect3DVertexBuffer9_Unlock(vertbuf); #else vertbuf->Unlock(); #endif #endif #endif }
void *d3d_vertex_buffer_lock(void *vertbuf_ptr) { void *buf; LPDIRECT3DVERTEXBUFFER vertbuf = (LPDIRECT3DVERTEXBUFFER)vertbuf_ptr; #if defined(_XBOX1) buf = (void*)D3DVertexBuffer_Lock2(vertbuf, 0); #elif defined(_XBOX360) buf = D3DVertexBuffer_Lock(vertbuf, 0, 0, 0); #else vertbuf->Lock(0, sizeof(buf), &buf, 0); #endif if (!buf) return NULL; return buf; }
void d3d_vertex_buffer_unlock(LPDIRECT3DVERTEXBUFFER vertbuf) { /* This is a stub on Xbox 1, see docs. */ #ifndef _XBOX1 #ifdef _XBOX360 D3DVertexBuffer_Unlock(vertbuf); #else vertbuf->Unlock(); #endif #endif }