示例#1
0
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
}
示例#2
0
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
}
示例#3
0
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;
}
示例#4
0
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
}