Alexander Dorofeyev : ddraw/tests: Test executebuffer triangle instruction with zero count.

Alexandre Julliard julliard at winehq.org
Mon Mar 24 15:21:45 CDT 2008


Module: wine
Branch: master
Commit: eddbdbef47529136c965f9912ff251e96ce514f0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=eddbdbef47529136c965f9912ff251e96ce514f0

Author: Alexander Dorofeyev <alexd4 at 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;




More information about the wine-cvs mailing list