Module: wine Branch: master Commit: eddbdbef47529136c965f9912ff251e96ce514f0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=eddbdbef47529136c965f9912f...
Author: Alexander Dorofeyev alexd4@inbox.lv Date: Sun Mar 23 01:59:54 2008 +0200
ddraw/tests: Test executebuffer triangle instruction with zero count.
---
dlls/ddraw/tests/d3d.c | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c index d5177a5..4e827a5 100644 --- a/dlls/ddraw/tests/d3d.c +++ b/dlls/ddraw/tests/d3d.c @@ -1088,6 +1088,30 @@ static void Direct3D1Test(void) hr = IDirect3DDevice_Execute(Direct3DDevice1, ExecuteBuffer, Viewport, D3DEXECUTE_CLIPPED); ok(hr == D3D_OK, "IDirect3DDevice_Execute returned %08x\n", hr);
+ /* Test rendering 0 triangles */ + memset(&desc, 0, sizeof(desc)); + desc.dwSize = sizeof(desc); + + hr = IDirect3DExecuteBuffer_Lock(ExecuteBuffer, &desc); + ok(hr == D3D_OK, "IDirect3DExecuteBuffer_Lock failed: %08x\n", hr); + + memset(desc.lpData, 0, 128); + instr = desc.lpData; + idx = 0; + + instr->bOpcode = D3DOP_TRIANGLE; + instr->bSize = sizeof(D3DOP_TRIANGLE); + instr->wCount = 0; + instr = ((D3DINSTRUCTION*)(instr))+1; + instr->bOpcode = D3DOP_EXIT; + instr->bSize = 0; + instr->wCount = 0; + hr = IDirect3DExecuteBuffer_Unlock(ExecuteBuffer); + ok(hr == D3D_OK, "IDirect3DExecuteBuffer_Unlock failed: %08x\n", hr); + + hr = IDirect3DDevice_Execute(Direct3DDevice1, ExecuteBuffer, Viewport, D3DEXECUTE_CLIPPED); + ok(hr == D3D_OK, "IDirect3DDevice_Execute returned %08x\n", hr); + memset(&transformdata, 0, sizeof(transformdata)); transformdata.dwSize = sizeof(transformdata); transformdata.lpIn = (void *) testverts;