All pastes #953912 Raw Edit

Anonymous

public text v1 · immutable
#953912 ·published 2008-03-23 14:29 UTC
rendered paste body
static 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);
}