From 2d09fb800b9617380d91a8bccbf8fa45e5110390 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Thu, 24 May 2012 08:49:53 +0200 Subject: [PATCH] d3drm: Add some tests for mesh default material and texture. --- dlls/d3drm/tests/d3drm.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c index c0869be6b0a..5bbd363f7a2 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); }