Stefan Dösinger : d3d9: Do not rely on CreateVertexShader failing.

Alexandre Julliard julliard at winehq.org
Tue Oct 9 13:37:34 CDT 2007


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Sat Oct  6 16:57:20 2007 +0200

d3d9: Do not rely on CreateVertexShader failing.

---

 dlls/d3d9/tests/visual.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index af64fbe..b376e9d 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -1356,6 +1356,7 @@ static void z_range_test(IDirect3DDevice9 *device)
     DWORD color;
     IDirect3DVertexShader9 *shader;
     IDirect3DVertexDeclaration9 *decl;
+    D3DCAPS9 caps;
     const DWORD shader_code[] = {
         0xfffe0101,                                     /* vs_1_1           */
         0x0000001f, 0x80000000, 0x900f0000,             /* dcl_position v0  */
@@ -1453,12 +1454,15 @@ static void z_range_test(IDirect3DDevice9 *device)
     ok(color == 0x00ffffff, "Z range failed: Got color 0x%08x, expected 0x00ffffff.\n", color);
 
     /* Test the shader path */
-    hr = IDirect3DDevice9_CreateVertexShader(device, shader_code, &shader);
-    if(FAILED(hr)) {
-        skip("Can't create test vertex shader, most likely shaders not supported\n");
+    IDirect3DDevice9_GetDeviceCaps(device, &caps);
+    if (caps.VertexShaderVersion < D3DVS_VERSION(1, 1)) {
+        skip("Vertex shaders not supported\n");
         goto out;
     }
+    hr = IDirect3DDevice9_CreateVertexShader(device, shader_code, &shader);
+    ok(hr == D3D_OK, "IDirect3DDevice9_CreateVertexShader returned %s\n", DXGetErrorString9(hr));
     hr = IDirect3DDevice9_CreateVertexDeclaration(device, decl_elements, &decl);
+    ok(hr == D3D_OK, "IDirect3DDevice9_CreateVertexDeclaration returned %s\n", DXGetErrorString9(hr));
 
     hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xffffffff, 0.4, 0);
 




More information about the wine-cvs mailing list