Christian Costa : d3drm: Add some tests for mesh default material and texture.

Alexandre Julliard julliard at winehq.org
Thu May 24 14:58:13 CDT 2012


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

Author: Christian Costa <titan.costa at gmail.com>
Date:   Thu May 24 08:49:53 2012 +0200

d3drm: Add some tests for mesh default material and texture.

---

 dlls/d3drm/tests/d3drm.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c
index c0869be..5bbd363 100644
--- a/dlls/d3drm/tests/d3drm.c
+++ b/dlls/d3drm/tests/d3drm.c
@@ -353,6 +353,9 @@ static void test_MeshBuilder(void)
         DWORD nb_groups;
         unsigned nb_vertices, nb_faces, nb_face_vertices;
         DWORD data_size;
+        LPDIRECT3DRMMATERIAL material;
+        LPDIRECT3DRMTEXTURE texture;
+        D3DVALUE values[3];
 
         nb_groups = IDirect3DRMMesh_GetGroupCount(mesh);
         ok(nb_groups == 1, "GetCroupCount returned %u\n", nb_groups);
@@ -364,6 +367,27 @@ static void test_MeshBuilder(void)
         ok(nb_faces == 1, "Wrong number of faces %u (must be 1)\n", nb_faces);
         todo_wine ok(nb_face_vertices == 3, "Wrong number of vertices per face %u (must be 3)\n", nb_face_vertices);
         todo_wine ok(data_size == 3, "Wrong number of face data bytes %u (must be 3)\n", data_size);
+        hr = IDirect3DRMMesh_GetGroupTexture(mesh, 0, &texture);
+        todo_wine ok(hr == D3DRM_OK, "GetCroupTexture failed returning hr = %x\n", hr);
+        todo_wine ok(texture == NULL, "No texture should be present\n");
+        hr = IDirect3DRMMesh_GetGroupMaterial(mesh, 0, &material);
+        todo_wine ok(hr == D3DRM_OK, "GetCroupMaterial failed returning hr = %x\n", hr);
+        todo_wine ok(material != NULL, "No material should be present\n");
+        if ((hr == D3DRM_OK) && material)
+        {
+            hr = IDirect3DRMMaterial_GetEmissive(material, &values[0], &values[1], &values[2]);
+            ok(hr == D3DRM_OK, "GetMaterialEmissive failed returning hr = %x\n", hr);
+            ok(values[0] == 0.5f, "Emissive red component should be %f instead of %f\n", 0.5f, values[0]);
+            ok(values[1] == 0.5f, "Emissive green component should be %f instead of %f\n", 0.5f, values[1]);
+            ok(values[2] == 0.5f, "Emissive blue component should be %f instead of %f\n", 0.5f, values[2]);
+            hr = IDirect3DRMMaterial_GetSpecular(material, &values[0], &values[1], &values[2]);
+            ok(hr == D3DRM_OK, "GetMaterialEmissive failed returning hr = %x\n", hr);
+            ok(values[0] == 1.0f, "Specular red component should be %f instead of %f\n", 1.0f, values[0]);
+            ok(values[1] == 0.0f, "Specular green component should be %f instead of %f\n", 0.0f, values[1]);
+            ok(values[2] == 0.0f, "Specular blue component should be %f instead of %f\n", 0.0f, values[2]);
+            values[0] = IDirect3DRMMaterial_GetPower(material);
+            ok(values[0] == 30.0f, "Power value should be %f instead of %f\n", 30.0f, values[0]);
+        }
 
         IDirect3DRMMesh_Release(mesh);
     }




More information about the wine-cvs mailing list