rendered paste bodystatic void VertexBufferDescTest(void)
{
HRESULT rc;
D3DVERTEXBUFFERDESC desc;
D3DVERTEXBUFFERDESC *desc2;
char *buffer;
int i;
memset(&desc, 0, sizeof(desc));
desc.dwSize = sizeof(desc);
desc.dwCaps = 0;
desc.dwFVF = D3DFVF_XYZ;
desc.dwNumVertices = 1;
rc = IDirect3D7_CreateVertexBuffer(lpD3D, &desc, &lpVBufSrc, 0);
ok(rc==D3D_OK || rc==E_OUTOFMEMORY, "CreateVertexBuffer returned: %x\n", rc);
if (!lpVBufSrc)
{
trace("IDirect3D7::CreateVertexBuffer() failed with an error %x\n", rc);
goto out;
}
buffer = malloc(sizeof(D3DVERTEXBUFFERDESC)*2); //make shure it's bigger than D3DVERTEXBUFFERDESC
if(buffer == NULL)
{
trace("Malloc failed, out of memory?\n");
goto out;
}
memset(buffer, 0x12, sizeof(D3DVERTEXBUFFERDESC)*2);
desc2 = (D3DVERTEXBUFFERDESC *) buffer;
desc2->dwSize = 0;
rc = IDirect3DVertexBuffer7_GetVertexBufferDesc(lpVBufSrc, desc2);
if(rc != D3D_OK)
{
free(desc2);
skip("GetVertexBuffer Failed!\n");
}
for(i = 0; i != 30; ++i)
trace("%i \n", buffer[i]);
trace("----------------------------------------------------------\n");
memset(buffer, 0x12, sizeof(D3DVERTEXBUFFERDESC)*2);
desc2->dwSize = sizeof(D3DVERTEXBUFFERDESC);
rc = IDirect3DVertexBuffer7_GetVertexBufferDesc(lpVBufSrc, desc2);
if(rc != D3D_OK)
{
free(desc2);
skip("GetVertexBuffer Failed!\n");
}
for(i = 0; i != 30; ++i)
trace("%i \n", buffer[i]);
trace("----------------------------------------------------------\n");
memset(buffer, 0x12, sizeof(D3DVERTEXBUFFERDESC)*2);
desc2->dwSize = sizeof(D3DVERTEXBUFFERDESC)*2;
rc = IDirect3DVertexBuffer7_GetVertexBufferDesc(lpVBufSrc, desc2);
if(rc != D3D_OK)
{
free(desc2);
skip("GetVertexBuffer Failed!\n");
}
for(i = 0; i != 30; ++i)
trace("%i \n", buffer[i]);
// memset(buffer, 0x12, sizeof(D3DVERTEXBUFFERDESC));
// buffer2->dwSize = 0;
/* buffer2->dwCaps = 0;
buffer2->dwFVF = 0;
buffer2->dwNumVertices = 0;
*/
// IDirect3DVertexBuffer7_GetVertexBufferDesc(lpVBufSrc, buffer2);
return;
out:
IDirect3DVertexBuffer7_Release(lpVBufSrc);
}