25#define _USE_MATH_DEFINES
34#define CHECK_REFCOUNT(obj,rc) \
37 int count = get_refcount( (IUnknown *)obj ); \
38 ok(count == rc_new, "Invalid refcount. Expected %d got %d\n", rc_new, count); \
43 IUnknown_AddRef(
object );
44 return IUnknown_Release(
object );
63#define expect_matrix(m, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44, u) \
64 expect_matrix_(__LINE__, m, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44, u)
80 "Got unexpected matrix {%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, "
81 "%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e}, "
82 "expected {%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, "
83 "%.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e, %.8e}.\n",
84 m[0][0],
m[0][1],
m[0][2],
m[0][3],
m[1][0],
m[1][1],
m[1][2],
m[1][3],
85 m[2][0],
m[2][1],
m[2][2],
m[2][3],
m[3][0],
m[3][1],
m[3][2],
m[3][3],
86 m11,
m12,
m13,
m14,
m21,
m22,
m23,
m24,
m31,
m32,
m33,
m34,
m41,
m42,
m43,
m44);
89#define expect_vector(v, x, y, z, u) expect_vector_(__LINE__, v, x, y, z, u)
96 ok_(__FILE__,
line)(
equal,
"Got unexpected vector {%.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e}.\n",
100#define vector_eq(a, b) vector_eq_(__LINE__, a, b)
107 { 1.0f, 0.0f, 0.0f, 0.0f },
108 { 0.0f, 1.0f, 0.0f, 0.0f },
109 { 0.0f, 0.0f, 1.0f, 0.0f },
110 { 0.0f, 0.0f, 0.0f, 1.0f }
139 for (
i = 0;
i < 4; ++
i)
141 for (
j = 0;
j < 4; ++
j)
143 if (
m[
i][
j] > -1e-7f &&
m[
i][
j] < 1e-7f)
151 RECT r = {0, 0, 640, 480};
159#define test_class_name(a, b) test_class_name_(__LINE__, a, b)
162 char cname[64] = {0};
181 size =
sizeof(cname);
185 ok_(__FILE__,
line)(!
strcmp(cname,
name),
"Expected cname to be \"%s\", but got \"%s\".\n",
name, cname);
191 ok_(__FILE__,
line)(!
strcmp(cname,
name),
"Expected cname to be \"%s\", but got \"%s\".\n",
name, cname);
198 ok_(__FILE__,
line)(!
strcmp(cname,
"XXX"),
"Expected unchanged buffer, but got \"%s\".\n", cname);
201#define test_object_name(a) test_object_name_(__LINE__, a)
214 ok_(__FILE__,
line)(
name[0] == 0x1f,
"Unexpected buffer contents, %#x.\n",
name[0]);
234 ok_(__FILE__,
line)(
name[0] == 0x1f,
"Unexpected name \"%s\".\n",
name);
258 ok_(__FILE__,
line)(
name[0] == 0x1f,
"Got unexpected name \"%s\".\n",
name);
273 ok_(__FILE__,
line)(
name[0] == 0,
"Got unexpected name \"%s\".\n",
name);
311"Header { 1; 0; 1; }\n"
319" MeshMaterialList {\n"
322" 0.0; 1.0; 0.0; 1.0;;\n"
326" TextureFileName {\n"
339" MeshTextureCoords {\n"
374" 0.1, 0.2, 0.3, 0.4;;\n"
382"Header { 1; 0; 1; }\n"
398" MeshMaterialList {\n"
399" 3; 6; 0, 1, 1, 2, 2, 2;\n"
401" 1.0; 0.0; 0.0; 0.1;;\n"
403" 0.11; 0.12; 0.13;;\n"
404" 0.14; 0.15; 0.16;;\n"
407" 0.0; 1.0; 0.0; 0.2;;\n"
409" 0.21; 0.22; 0.23;;\n"
410" 0.24; 0.25; 0.26;;\n"
413" 0.0; 0.0; 1.0; 0.3;;\n"
415" 0.31; 0.32; 0.33;;\n"
416" 0.34; 0.35; 0.36;;\n"
426 IDirect3DRMMeshBuilder *pMeshBuilder;
427 IDirect3DRMMeshBuilder3 *meshbuilder3;
428 IDirect3DRMMesh *
mesh;
431 DWORD val1, val2, val3;
442 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
445 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMeshBuilder interface (hr = %x)\n",
hr);
449 ok(unk == (
IUnknown *)pMeshBuilder,
"Unexpected interface pointer.\n");
450 IUnknown_Release(unk);
454 ok(unk == (
IUnknown *)pMeshBuilder,
"Unexpected interface pointer.\n");
455 IUnknown_Release(unk);
458 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRMMeshBuilder3, %#x.\n",
hr);
462 ok(unk == (
IUnknown *)pMeshBuilder,
"Unexpected interface pointer.\n");
463 IUnknown_Release(unk);
467 ok(unk == (
IUnknown *)pMeshBuilder,
"Unexpected interface pointer.\n");
468 IUnknown_Release(unk);
492 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_GetName returned hr = %x\n",
hr);
493 ok(!
strcmp(
name,
"Object"),
"Retrieved name '%s' instead of 'Object'\n",
name);
498 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_SetName returned hr = %x\n",
hr);
501 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_GetName returned hr = %x\n",
hr);
502 ok(
size == 0,
"Size should be 0 instead of %u\n",
size);
504 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_SetName returned hr = %x\n",
hr);
507 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_GetName returned hr = %x\n",
hr);
511 ok(
val == 4,
"Wrong number of vertices %d (must be 4)\n",
val);
514 ok(
val == 3,
"Wrong number of faces %d (must be 3)\n",
val);
517 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
518 ok(val1 == 4,
"Wrong number of vertices %d (must be 4)\n", val1);
519 ok(val2 == 4,
"Wrong number of normals %d (must be 4)\n", val2);
520 ok(val3 == 22,
"Wrong number of face data bytes %d (must be 22)\n", val3);
524 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
534 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
535 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
536 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
540 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
541 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
542 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
546 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
547 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
548 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
552 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
553 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
554 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
561 ok(
hr ==
D3DRM_OK,
"Cannot set texture coordinates (hr = %x)\n",
hr);
568 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
569 ok(valu == 1.23f,
"Wrong coordinate %f (must be 1.23)\n", valu);
570 ok(valv == 3.21f,
"Wrong coordinate %f (must be 3.21)\n", valv);
575 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMeshBuilder interface (hr = %x)\n",
hr);
585 ok(nb_groups == 0,
"GetCroupCount returned %u\n", nb_groups);
596 ok(
val == 3,
"Wrong number of vertices %d (must be 3)\n",
val);
599 ok(
val == 1,
"Wrong number of faces %d (must be 1)\n",
val);
602 val1 = 1; val2 = 3; val3 = 8;
607 val1 = 3; val2 = 1; val3 = 8;
612 val1 = 3; val2 = 3; val3 = 1;
618 val1 = 3; val2 = 3; val3 = 8;
620 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
621 ok(val1 == 3,
"Wrong number of vertices %d (must be 3)\n", val1);
622 ok(val2 == 3,
"Wrong number of normals %d (must be 3)\n", val2);
623 ok(val3 == 8,
"Wrong number of face data bytes %d (must be 8)\n", val3);
630 ok(
f[0] == 3 ,
"Wrong component f[0] = %d (expected 3)\n",
f[0]);
631 ok(
f[1] == 0 ,
"Wrong component f[1] = %d (expected 0)\n",
f[1]);
632 ok(
f[2] == 0 ,
"Wrong component f[2] = %d (expected 0)\n",
f[2]);
633 ok(
f[3] == 1 ,
"Wrong component f[3] = %d (expected 1)\n",
f[3]);
634 ok(
f[4] == 1 ,
"Wrong component f[4] = %d (expected 1)\n",
f[4]);
635 ok(
f[5] == 2 ,
"Wrong component f[5] = %d (expected 2)\n",
f[5]);
636 ok(
f[6] == 2 ,
"Wrong component f[6] = %d (expected 2)\n",
f[6]);
637 ok(
f[7] == 0 ,
"Wrong component f[7] = %d (expected 0)\n",
f[7]);
644 unsigned nb_vertices, nb_faces, nb_face_vertices;
646 IDirect3DRMMaterial *material = (IDirect3DRMMaterial *)0xdeadbeef;
647 IDirect3DRMTexture *
texture = (IDirect3DRMTexture *)0xdeadbeef;
651 ok(nb_groups == 1,
"GetCroupCount returned %u\n", nb_groups);
656 ok(nb_vertices == 3,
"Wrong number of vertices %u (must be 3)\n", nb_vertices);
657 ok(nb_faces == 1,
"Wrong number of faces %u (must be 1)\n", nb_faces);
658 ok(nb_face_vertices == 3,
"Wrong number of vertices per face %u (must be 3)\n", nb_face_vertices);
659 ok(data_size == 3,
"Wrong number of face data bytes %u (must be 3)\n", data_size);
661 ok(
color == 0xff00ff00,
"Wrong color returned %#x instead of %#x\n",
color, 0xff00ff00);
663 ok(
hr ==
D3DRM_OK,
"GetCroupTexture failed returning hr = %x\n",
hr);
666 ok(
hr ==
D3DRM_OK,
"GetCroupMaterial failed returning hr = %x\n",
hr);
667 ok(material !=
NULL,
"No material present\n");
669 ok(
hr ==
D3DRM_OK,
"Failed to get emissive color, hr %#x.\n",
hr);
670 ok(
values[0] == 0.5f,
"Got unexpected red component %.8e.\n",
values[0]);
671 ok(
values[1] == 0.5f,
"Got unexpected green component %.8e.\n",
values[1]);
672 ok(
values[2] == 0.5f,
"Got unexpected blue component %.8e.\n",
values[2]);
674 ok(
hr ==
D3DRM_OK,
"Failed to get specular color, hr %#x.\n",
hr);
675 ok(
values[0] == 1.0f,
"Got unexpected red component %.8e.\n",
values[0]);
676 ok(
values[1] == 0.0f,
"Got unexpected green component %.8e.\n",
values[1]);
677 ok(
values[2] == 0.0f,
"Got unexpected blue component %.8e.\n",
values[2]);
679 ok(
values[0] == 30.0f,
"Got unexpected power value %.8e.\n",
values[0]);
689 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
690 ok(val2 == 3,
"Wrong number of normals %d (must be 3)\n", val2);
691 ok(val1 == 3,
"Wrong number of vertices %d (must be 3)\n", val1);
710 IDirect3DRM3 *d3drm3;
711 IDirect3DRMMeshBuilder3 *pMeshBuilder3;
718 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
722 win_skip(
"Cannot get IDirect3DRM3 interface (hr = %x), skipping tests\n",
hr);
728 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMeshBuilder3 interface (hr = %x)\n",
hr);
749 ok(
val == 4,
"Wrong number of vertices %d (must be 4)\n",
val);
752 ok(
val == 3,
"Wrong number of faces %d (must be 3)\n",
val);
755 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
756 ok(val1 == 4,
"Wrong number of vertices %d (must be 4)\n", val1);
762 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
763 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
764 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
768 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
769 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
770 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
774 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
775 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
776 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
780 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
781 ok(valu == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valu);
782 ok(valv == 0.0f,
"Wrong coordinate %f (must be 0.0)\n", valv);
789 ok(
hr ==
D3DRM_OK,
"Cannot set texture coordinates (hr = %x)\n",
hr);
796 ok(
hr ==
D3DRM_OK,
"Cannot get texture coordinates (hr = %x)\n",
hr);
797 ok(valu == 1.23f,
"Wrong coordinate %f (must be 1.23)\n", valu);
798 ok(valv == 3.21f,
"Wrong coordinate %f (must be 3.21)\n", valv);
809 IDirect3DRMMesh *
mesh;
813 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
816 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMesh interface (hr = %x)\n",
hr);
823 IUnknown_Release(unk);
827 IUnknown_Release(unk);
838 IDirect3DRM2 *d3drm2;
839 IDirect3DRM3 *d3drm3;
840 IDirect3DRMMeshBuilder2 *MeshBuilder2;
841 IDirect3DRMMeshBuilder3 *MeshBuilder3;
842 IDirect3DRMFace *face1;
843 IDirect3DRMObject *
obj;
844 IDirect3DRMFace2 *face2;
845 IDirect3DRMFaceArray *array1;
853 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
856 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFace interface (hr = %x)\n",
hr);
859 skip(
"Cannot get IDirect3DRMFace interface (hr = %x), skipping tests\n",
hr);
866 ok(
obj == (IDirect3DRMObject *)face1,
"Unexpected interface pointer.\n");
873 ok(!icount,
"wrong VertexCount: %i\n", icount);
879 win_skip(
"Cannot get IDirect3DRM2 interface (hr = %x), skipping tests\n",
hr);
885 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMeshBuilder2 interface (hr = %x)\n",
hr);
888 ok(!icount,
"wrong FaceCount: %i\n", icount);
896 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFace interface (hr = %x)\n",
hr);
900 ok(icount == 1,
"wrong FaceCount: %i\n", icount);
907 ok(array1 !=
NULL,
"pArray = %p\n", array1);
910 IDirect3DRMFace *
face;
920 ok(!icount,
"wrong VertexCount: %i\n", icount);
927 win_skip(
"Cannot get IDirect3DRM3 interface (hr = %x), skipping tests\n",
hr);
933 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMeshBuilder3 interface (hr = %x)\n",
hr);
936 ok(!icount,
"wrong FaceCount: %i\n", icount);
939 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFace2 interface (hr = %x)\n",
hr);
946 ok(
obj == (IDirect3DRMObject *)face1,
"Unexpected interface pointer.\n");
956 ok(icount == 1,
"wrong FaceCount: %i\n", icount);
963 ok(array1 !=
NULL,
"pArray = %p\n", array1);
966 IDirect3DRMFace *
face;
976 ok(!icount,
"wrong VertexCount: %i\n", icount);
984 ok(icount == 4,
"Wrong number of vertices %d (must be 4)\n", icount);
987 ok(icount == 4,
"Wrong number of normals %d (must be 4)\n", icount);
991 ok(icount == 4,
"Wrong number of faces %d (must be 4)\n", icount);
995 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
996 ok(
count == 4,
"Wrong number of vertices %d (must be 4)\n",
count);
999 ok(
hr ==
D3DRM_OK,
"Cannot get normals information (hr = %x)\n",
hr);
1000 ok(
count == 4,
"Wrong number of normals %d (must be 4)\n",
count);
1007 ok(array1 !=
NULL,
"pArray = %p\n", array1);
1010 IDirect3DRMFace *
face;
1016 ok(
hr ==
D3DRM_OK,
"Cannot get vertices information (hr = %x)\n",
hr);
1017 ok(
count == 3,
"Wrong number of vertices %d (must be 3)\n",
count);
1035 ok(
color == 0x1f180587,
"Unexpected color %8x.\n",
color);
1040 ok(
color == 0xff7f7f7f,
"Unexpected color %8x.\n",
color);
1053 IDirect3DRMFrame *pFrameC;
1054 IDirect3DRMFrame *pFrameP1;
1055 IDirect3DRMFrame *pFrameP2;
1056 IDirect3DRMFrame *pFrameTmp;
1057 IDirect3DRMFrame *scene_frame;
1058 IDirect3DRMFrameArray *frame_array;
1060 IDirect3DRMVisual *visual1;
1061 IDirect3DRMVisual *visual_tmp;
1062 IDirect3DRMVisualArray *visual_array;
1063 IDirect3DRMLight *light1;
1064 IDirect3DRMLight *light_tmp;
1065 IDirect3DRMLightArray *light_array;
1066 IDirect3DRMFrame3 *frame3;
1072 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
1076 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFrame interface (hr = %x)\n",
hr);
1079 ok(ref2 >
ref,
"Expected d3drm object to be referenced.\n");
1086 pFrameTmp = (
void*)0xdeadbeef;
1089 ok(pFrameTmp ==
NULL,
"pFrameTmp = %p\n", pFrameTmp);
1095 ok(!!frame_array,
"frame_array = %p\n", frame_array);
1102 ok(pFrameTmp ==
NULL,
"pFrameTmp = %p\n", pFrameTmp);
1107 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFrame interface (hr = %x)\n",
hr);
1124 pFrameTmp = (
void*)0xdeadbeef;
1127 ok(pFrameTmp ==
NULL,
"pFrameTmp = %p\n", pFrameTmp);
1138 ok(scene_frame == pFrameP1,
"Expected scene frame == %p, got %p.\n", pFrameP1, scene_frame);
1143 ok(scene_frame == pFrameP1,
"Expected scene frame == %p, got %p.\n", pFrameP1, scene_frame);
1159 ok(pFrameTmp == pFrameC,
"pFrameTmp = %p\n", pFrameTmp);
1169 pFrameTmp = (
void*)0xdeadbeef;
1172 ok(pFrameTmp == pFrameP1,
"pFrameTmp = %p\n", pFrameTmp);
1179 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFrame interface (hr = %x)\n",
hr);
1194 ok(pFrameTmp == pFrameC,
"pFrameTmp = %p\n", pFrameTmp);
1206 pFrameTmp = (
void*)0xdeadbeef;
1209 ok(pFrameTmp ==
NULL,
"pFrameTmp = %p\n", pFrameTmp);
1214 ok(scene_frame == pFrameP2,
"Expected scene frame == %p, got %p.\n", pFrameP2, scene_frame);
1219 ok(scene_frame == pFrameP2,
"Expected scene frame == %p, got %p.\n", pFrameP2, scene_frame);
1223 pFrameTmp = (
void*)0xdeadbeef;
1226 ok(pFrameTmp == pFrameP2,
"pFrameTmp = %p\n", pFrameTmp);
1246 ok(pFrameTmp == pFrameC,
"pFrameTmp = %p\n", pFrameTmp);
1263 pFrameTmp = (
void*)0xdeadbeef;
1266 ok(pFrameTmp ==
NULL,
"pFrameTmp = %p\n", pFrameTmp);
1270 pFrameTmp = (
void*)0xdeadbeef;
1273 ok(pFrameTmp ==
NULL,
"pFrameTmp = %p\n", pFrameTmp);
1293 ok(pFrameTmp == pFrameC,
"pFrameTmp = %p\n", pFrameTmp);
1297 ok(pFrameTmp == pFrameP1,
"pFrameTmp = %p\n", pFrameTmp);
1313 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMeshBuilder interface (hr = %x)\n",
hr);
1322 visual_array =
NULL;
1331 ok(visual_tmp == visual1,
"visual_tmp = %p\n", visual_tmp);
1353 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMLight interface (hr = %x)\n",
hr);
1370 ok(light_tmp == light1,
"light_tmp = %p\n", light_tmp);
1397 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRMFrame3 interface, hr %#x.\n",
hr);
1459 ok(
obj == ctxt->
obj,
"called with %p, expected %p\n",
obj, ctxt->
obj);
1468 ok(
obj == ctxt->
obj,
"called with %p, expected %p\n",
obj, ctxt->
obj);
1476 IDirect3DRMObject *
obj;
1487 hr = IUnknown_QueryInterface(
unknown, &IID_IDirect3DRMObject, (
void**)&
obj);
1531 "Expected callback = %p, context = %p. Got callback = %p, context = %p.\n",
d3drm_corder[
i].
callback,
1538 hr = IUnknown_QueryInterface(
unknown, &IID_IDirect3DRMObject, (
void**)&
obj);
1568 "Expected callback = %p, context = %p. Got callback = %p, context = %p.\n",
d3drm_corder[
i].
callback,
1581 BOOL takes_d3drm_ref;
1585 { &CLSID_CDirect3DRMDevice, &IID_IDirect3DRMDevice },
1586 { &CLSID_CDirect3DRMDevice, &IID_IDirect3DRMDevice2 },
1587 { &CLSID_CDirect3DRMDevice, &IID_IDirect3DRMDevice3 },
1588 { &CLSID_CDirect3DRMDevice, &IID_IDirect3DRMWinDevice },
1589 { &CLSID_CDirect3DRMTexture, &IID_IDirect3DRMTexture },
1590 { &CLSID_CDirect3DRMTexture, &IID_IDirect3DRMTexture2 },
1591 { &CLSID_CDirect3DRMTexture, &IID_IDirect3DRMTexture3 },
1592 { &CLSID_CDirect3DRMViewport, &IID_IDirect3DRMViewport },
1593 { &CLSID_CDirect3DRMViewport, &IID_IDirect3DRMViewport2 },
1594 { &CLSID_CDirect3DRMFace, &IID_IDirect3DRMFace },
1595 { &CLSID_CDirect3DRMFace, &IID_IDirect3DRMFace2 },
1596 { &CLSID_CDirect3DRMMeshBuilder, &IID_IDirect3DRMMeshBuilder,
TRUE },
1597 { &CLSID_CDirect3DRMMeshBuilder, &IID_IDirect3DRMMeshBuilder2,
TRUE },
1598 { &CLSID_CDirect3DRMMeshBuilder, &IID_IDirect3DRMMeshBuilder3,
TRUE },
1599 { &CLSID_CDirect3DRMFrame, &IID_IDirect3DRMFrame,
TRUE },
1600 { &CLSID_CDirect3DRMFrame, &IID_IDirect3DRMFrame2,
TRUE },
1601 { &CLSID_CDirect3DRMFrame, &IID_IDirect3DRMFrame3,
TRUE },
1602 { &CLSID_CDirect3DRMLight, &IID_IDirect3DRMLight,
TRUE },
1603 { &CLSID_CDirect3DRMMaterial, &IID_IDirect3DRMMaterial,
TRUE },
1604 { &CLSID_CDirect3DRMMaterial, &IID_IDirect3DRMMaterial2,
TRUE },
1605 { &CLSID_CDirect3DRMMesh, &IID_IDirect3DRMMesh,
TRUE },
1606 { &CLSID_CDirect3DRMAnimation, &IID_IDirect3DRMAnimation,
TRUE },
1607 { &CLSID_CDirect3DRMAnimation, &IID_IDirect3DRMAnimation2,
TRUE },
1608 { &CLSID_CDirect3DRMWrap, &IID_IDirect3DRMWrap },
1610 IDirect3DRM *d3drm1;
1611 IDirect3DRM2 *d3drm2;
1612 IDirect3DRM3 *d3drm3;
1615 ULONG ref1, ref2, ref3, ref4;
1619 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %#x).\n",
hr);
1622 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %#x).\n",
hr);
1624 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %#x).\n",
hr);
1648 if (
tests[
i].takes_d3drm_ref)
1649 ok(ref2 > ref1,
"Test %u: expected ref2 > ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1651 ok(ref2 == ref1,
"Test %u: expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1654 ok(ref3 == ref1,
"Test %u: expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n",
i, ref1, ref3);
1656 ok(ref4 == ref1,
"Test %u: expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n",
i, ref1, ref4);
1659 ok(ref2 == ref1,
"Test %u: expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1661 ok(ref3 == ref1,
"Test %u: expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n",
i, ref1, ref3);
1663 ok(ref4 == ref1,
"Test %u: expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n",
i, ref1, ref4);
1671 if (
tests[
i].takes_d3drm_ref)
1672 ok(ref2 > ref1,
"Test %u: expected ref2 > ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1674 ok(ref2 == ref1,
"Test %u: expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1676 ok(ref3 == ref1,
"Test %u: expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n",
i, ref1, ref3);
1678 ok(ref4 == ref1,
"Test %u: expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n",
i, ref1, ref4);
1681 ok(ref2 == ref1,
"Test %u: expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1683 ok(ref3 == ref1,
"Test %u: expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n",
i, ref1, ref3);
1685 ok(ref4 == ref1,
"Test %u: expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n",
i, ref1, ref4);
1690 if (
tests[
i].takes_d3drm_ref)
1691 ok(ref2 > ref1,
"Test %u: expected ref2 > ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1693 ok(ref2 == ref1,
"Test %u: expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1695 ok(ref3 == ref1,
"Test %u: expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n",
i, ref1, ref3);
1697 ok(ref4 == ref1,
"Test %u: expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n",
i, ref1, ref4);
1700 ok(ref2 == ref1,
"Test %u: expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
1702 ok(ref3 == ref1,
"Test %u: expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n",
i, ref1, ref3);
1704 ok(ref4 == ref1,
"Test %u: expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n",
i, ref1, ref4);
1715 IDirect3DRMFrame3 *frame3, *d3drm_frame3, *tmp_frame3;
1716 IDirect3DRMFrame *frame, *
d3drm_frame, *tmp_frame1;
1718 IDirectDrawClipper *clipper;
1720 IDirect3DRM *d3drm1;
1721 IDirect3DRM2 *d3drm2;
1722 IDirect3DRM3 *d3drm3;
1723 IDirect3DRMDevice *device1, *d3drm_device1;
1724 IDirect3DRMDevice3 *device3, *d3drm_device3;
1725 IDirect3DRMViewport *viewport;
1726 IDirect3DRMViewport2 *viewport2;
1730 IDirect3DRMObject *
obj, *obj2;
1735 DWORD initial_ref1, initial_ref2, initial_ref3, device_ref, frame_ref, frame_ref2, viewport_ref;
1741 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
1743 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %#x).\n",
hr);
1745 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %#x).\n",
hr);
1751 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawClipper interface (hr = %x)\n",
hr);
1753 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
1754 ok(
hr ==
DD_OK,
"Cannot set HWnd to Clipper (hr = %x)\n",
hr);
1758 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMDevice interface (hr = %x)\n",
hr);
1760 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice interface (hr = %#x).\n",
hr);
1763 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMFrame interface (hr = %x)\n",
hr);
1767 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame3 interface (hr = %x).\n",
hr);
1778 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport interface (hr = %#x)\n",
hr);
1780 ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
1782 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
1784 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
1786 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
1788 ok(ref4 > frame_ref,
"Expected ref4 > frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
1791 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice interface (hr = %x)\n",
hr);
1792 ok(device1 == d3drm_device1,
"Expected device returned = %p, got %p.\n", device1, d3drm_device1);
1811 ok(ref4 == ref1,
"Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
1813 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
1815 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
1817 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
1819 ok(ref4 == frame_ref,
"Expected ref4 == frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
1822 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport interface (hr = %#x)\n",
hr);
1824 ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
1826 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
1828 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
1830 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
1832 ok(ref4 > frame_ref,
"Expected ref4 > frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
1835 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice interface (hr = %x)\n",
hr);
1836 ok(device1 == d3drm_device1,
"Expected device returned = %p, got %p.\n", device1, d3drm_device1);
1855 ok(ref4 == ref1,
"Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
1857 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
1859 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
1861 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
1863 ok(ref4 == frame_ref,
"Expected ref4 == frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
1869 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport2 interface (hr = %#x)\n",
hr);
1871 ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
1873 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
1875 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
1877 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
1879 ok(ref4 > frame_ref2,
"Expected ref4 > frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
1882 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %x)\n",
hr);
1883 ok(device3 == d3drm_device3,
"Expected device returned = %p, got %p.\n", device3, d3drm_device3);
1890 ok(frame3 == d3drm_frame3,
"Expected frame returned = %p, got %p.\n", frame3, d3drm_frame3);
1897 ok(d3drm_frame3 == tmp_frame3,
"Got unexpected frame %p, expected %p.\n", d3drm_frame3, tmp_frame3);
1902 ok(ref4 == ref1,
"Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
1904 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
1906 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
1908 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
1910 ok(ref4 == frame_ref2,
"Expected ref4 == frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
1913 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1916 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1917 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1920 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1921 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1924 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1925 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1928 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1929 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1932 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1936 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1939 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1940 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1943 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1944 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1947 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1948 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1951 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1952 viewport = (IDirect3DRMViewport *)0xdeadbeef;
1955 ok(!viewport,
"Expected viewport returned == NULL, got %p.\n", viewport);
1959 viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
1962 ok(!viewport2,
"Expected viewport returned == NULL, got %p.\n", viewport2);
1963 viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
1966 ok(!viewport2,
"Expected viewport returned == NULL, got %p.\n", viewport2);
1967 viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
1970 ok(!viewport2,
"Expected viewport returned == NULL, got %p.\n", viewport2);
1971 viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
1974 ok(!viewport2,
"Expected viewport returned == NULL, got %p.\n", viewport2);
1975 viewport2 = (IDirect3DRMViewport2 *)0xdeadbeef;
1978 ok(!viewport2,
"Expected viewport returned == NULL, got %p.\n", viewport2);
1983 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMViewport interface (hr = %#x)\n",
hr);
1985 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
1988 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
1990 ok(ref4 > viewport_ref,
"Expected ref4 > viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
1993 ok(ref4 == viewport_ref,
"Expected ref4 == viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
1997 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2003 ok(vp.
dwX == rc.
left,
"Expected viewport X position = %u, got %u.\n", rc.
left, vp.
dwX);
2004 ok(vp.
dwY == rc.
top,
"Expected viewport Y position = %u, got %u.\n", rc.
top, vp.
dwY);
2006 ok(vp.
dvScaleX == expected_val,
"Expected dvScaleX = %f, got %f.\n", expected_val, vp.
dvScaleX);
2007 ok(vp.
dvScaleY == expected_val,
"Expected dvScaleY = %f, got %f.\n", expected_val, vp.
dvScaleY);
2009 ok(vp.
dvMaxX == expected_val,
"Expected dvMaxX = %f, got %f.\n", expected_val, vp.
dvMaxX);
2011 ok(vp.
dvMaxY == expected_val,
"Expected dvMaxY = %f, got %f.\n", expected_val, vp.
dvMaxY);
2016 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMViewport2 interface (hr = %#x)\n",
hr);
2018 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2021 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2023 ok(ref4 > viewport_ref,
"Expected ref4 > viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2026 ok(ref4 == viewport_ref,
"Expected ref4 == viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2030 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2036 ok(vp.
dwX == rc.
left,
"Expected viewport X position = %u, got %u.\n", rc.
left, vp.
dwX);
2037 ok(vp.
dwY == rc.
top,
"Expected viewport Y position = %u, got %u.\n", rc.
top, vp.
dwY);
2039 ok(vp.
dvScaleX == expected_val,
"Expected dvScaleX = %f, got %f.\n", expected_val, vp.
dvScaleX);
2040 ok(vp.
dvScaleY == expected_val,
"Expected dvScaleY = %f, got %f.\n", expected_val, vp.
dvScaleY);
2042 ok(vp.
dvMaxX == expected_val,
"Expected dvMaxX = %f, got %f.\n", expected_val, vp.
dvMaxX);
2044 ok(vp.
dvMaxY == expected_val,
"Expected dvMaxY = %f, got %f.\n", expected_val, vp.
dvMaxY);
2049 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMViewport interface (hr = %x)\n",
hr);
2051 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2054 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2056 ok(ref4 > viewport_ref,
"Expected ref4 > viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2059 ok(ref4 == viewport_ref,
"Expected ref4 == viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2063 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2069 ok(vp.
dwX == rc.
left,
"Expected viewport X position = %u, got %u.\n", rc.
left, vp.
dwX);
2070 ok(vp.
dwY == rc.
top,
"Expected viewport Y position = %u, got %u.\n", rc.
top, vp.
dwY);
2072 ok(vp.
dvScaleX == expected_val,
"Expected dvScaleX = %f, got %f.\n", expected_val, vp.
dvScaleX);
2073 ok(vp.
dvScaleY == expected_val,
"Expected dvScaleY = %f, got %f.\n", expected_val, vp.
dvScaleY);
2075 ok(vp.
dvMaxX == expected_val,
"Expected dvMaxX = %f, got %f.\n", expected_val, vp.
dvMaxX);
2077 ok(vp.
dvMaxY == expected_val,
"Expected dvMaxY = %f, got %f.\n", expected_val, vp.
dvMaxY);
2082 ok((IDirect3DRMObject*)viewport ==
obj,
"got object pointer %p, expected %p\n",
obj, viewport);
2089 ok(
obj == obj2,
"got object pointer %p, expected %p\n", obj2,
obj);
2090 ok((
IUnknown*)viewport != (
IUnknown*)viewport2,
"got viewport1 %p, viewport2 %p\n", viewport, viewport2);
2125 (
void **)&viewport);
2126 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport interface (hr = %#x).\n",
hr);
2128 ok(ref4 == ref1,
"Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2130 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
2132 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
2141 ok(
field == -1.0f,
"Got unexpected field %.8e.\n",
field);
2145 ok(
left == 10.0f,
"Got unexpected left %.8e.\n",
left);
2146 ok(
right == 10.0f,
"Got unexpected right %.8e.\n",
right);
2148 ok(
top == 10.0f,
"Got unexpected top %.8e.\n",
top);
2150 ok(
front == -1.0f,
"Got unexpected front %.8e\n",
front);
2152 ok(back == -1.0f,
"Got unexpected back %.8e\n", back);
2180 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMViewport interface (hr = %#x).\n",
hr);
2182 ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2184 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
2186 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
2188 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
2190 ok(ref4 > frame_ref,
"Expected ref4 > frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
2193 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %x)\n",
hr);
2194 ok(device1 == d3drm_device1,
"Expected device returned = %p, got %p.\n", device3, d3drm_device3);
2198 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2201 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2203 ok(ref4 > viewport_ref,
"Expected ref4 > viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2206 ok(ref4 == viewport_ref,
"Expected ref4 == viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2210 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2216 ok(vp.
dwX == rc.
left,
"Expected viewport X position = %u, got %u.\n", rc.
left, vp.
dwX);
2217 ok(vp.
dwY == rc.
top,
"Expected viewport Y position = %u, got %u.\n", rc.
top, vp.
dwY);
2219 ok(vp.
dvScaleX == expected_val,
"Expected dvScaleX = %f, got %f.\n", expected_val, vp.
dvScaleX);
2220 ok(vp.
dvScaleY == expected_val,
"Expected dvScaleY = %f, got %f.\n", expected_val, vp.
dvScaleY);
2222 ok(vp.
dvMaxX == expected_val,
"Expected dvMaxX = %f, got %f.\n", expected_val, vp.
dvMaxX);
2224 ok(vp.
dvMaxY == expected_val,
"Expected dvMaxY = %f, got %f.\n", expected_val, vp.
dvMaxY);
2228 ok(
field == 0.5f,
"Got unexpected field %.8e.\n",
field);
2231 ok(
left == -0.5f,
"Got unexpected left %.8e.\n",
left);
2232 ok(
right == 0.5f,
"Got unexpected right %.8e.\n",
right);
2234 ok(
top == 0.5f,
"Got unexpected top %.8e.\n",
top);
2236 ok(
front == 1.0f,
"Got unexpected front %.8e.\n",
front);
2238 ok(back == 100.0f,
"Got unexpected back %.8e.\n", back);
2243 ok(
field == 1.0f,
"Got unexpected field %.8e.\n",
field);
2246 ok(
left == -1.0f,
"Got unexpected left %.8e.\n",
left);
2247 ok(
right == 1.0f,
"Got unexpected right %.8e.\n",
right);
2249 ok(
top == 1.0f,
"Got unexpected top %.8e.\n",
top);
2254 ok(
field == -1.0f,
"Got unexpected field %.8e.\n",
field);
2257 ok(
left == 5.0f,
"Got unexpected left %.8e.\n",
left);
2258 ok(
right == 3.0f,
"Got unexpected right %.8e.\n",
right);
2260 ok(
top == 0.0f,
"Got unexpected top %.8e.\n",
top);
2264 ok(
front == 2.0f,
"Got unexpected front %.8e.\n",
front);
2268 ok(back == 200.0f,
"Got unexpected back %.8e.\n", back);
2294 todo_wine ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2296 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
2298 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
2300 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
2302 todo_wine ok(ref4 > frame_ref,
"Expected ref4 > frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
2308 (
void **)&viewport2);
2309 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport2 interface (hr = %#x).\n",
hr);
2311 ok(ref4 == ref1,
"Expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2313 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
2315 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
2324 ok(
field == -1.0f,
"Got unexpected field %.8e.\n",
field);
2328 ok(
left == 10.0f,
"Got unexpected left %.8e.\n",
left);
2329 ok(
right == 10.0f,
"Got unexpected right %.8e.\n",
right);
2331 ok(
top == 10.0f,
"Got unexpected top %.8e.\n",
top);
2333 ok(
front == -1.0f,
"Got unexpected front %.8e\n",
front);
2335 ok(back == -1.0f,
"Got unexpected back %.8e\n", back);
2362 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMViewport2 interface (hr = %#x).\n",
hr);
2364 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
2366 ok(ref4 > frame_ref2,
"Expected ref4 > frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
2369 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %x)\n",
hr);
2370 ok(device3 == d3drm_device3,
"Expected device returned = %p, got %p.\n", device3, d3drm_device3);
2374 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2377 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2379 ok(ref4 > viewport_ref,
"Expected ref4 > viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2382 ok(ref4 == viewport_ref,
"Expected ref4 == viewport_ref, got ref4 = %u, viewport_ref = %u.\n", ref4, viewport_ref);
2386 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
2392 ok(vp.
dwX == rc.
left,
"Expected viewport X position = %u, got %u.\n", rc.
left, vp.
dwX);
2393 ok(vp.
dwY == rc.
top,
"Expected viewport Y position = %u, got %u.\n", rc.
top, vp.
dwY);
2395 ok(vp.
dvScaleX == expected_val,
"Expected dvScaleX = %f, got %f.\n", expected_val, vp.
dvScaleX);
2396 ok(vp.
dvScaleY == expected_val,
"Expected dvScaleY = %f, got %f.\n", expected_val, vp.
dvScaleY);
2398 ok(vp.
dvMaxX == expected_val,
"Expected dvMaxX = %f, got %f.\n", expected_val, vp.
dvMaxX);
2400 ok(vp.
dvMaxY == expected_val,
"Expected dvMaxY = %f, got %f.\n", expected_val, vp.
dvMaxY);
2404 ok(
field == 0.5f,
"Got unexpected field %.8e.\n",
field);
2407 ok(
left == -0.5f,
"Got unexpected left %.8e.\n",
left);
2408 ok(
right == 0.5f,
"Got unexpected right %.8e.\n",
right);
2410 ok(
top == 0.5f,
"Got unexpected top %.8e.\n",
top);
2412 ok(
front == 1.0f,
"Got unexpected front %.8e.\n",
front);
2414 ok(back == 100.0f,
"Got unexpected back %.8e.\n", back);
2419 ok(
field == 1.0f,
"Got unexpected field %.8e.\n",
field);
2422 ok(
left == -1.0f,
"Got unexpected left %.8e.\n",
left);
2423 ok(
right == 1.0f,
"Got unexpected right %.8e.\n",
right);
2425 ok(
top == 1.0f,
"Got unexpected top %.8e.\n",
top);
2430 ok(
field == -1.0f,
"Got unexpected field %.8e.\n",
field);
2433 ok(
left == 5.0f,
"Got unexpected left %.8e.\n",
left);
2434 ok(
right == 3.0f,
"Got unexpected right %.8e.\n",
right);
2436 ok(
top == 0.0f,
"Got unexpected top %.8e.\n",
top);
2440 ok(
front == 2.0f,
"Got unexpected front %.8e.\n",
front);
2444 ok(back == 200.0f,
"Got unexpected back %.8e.\n", back);
2470 todo_wine ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2472 ok(ref4 == ref2,
"Expected ref4 == ref2, got ref2 = %u, ref4 = %u.\n", ref2, ref4);
2474 ok(ref4 == ref3,
"Expected ref4 == ref3, got ref3 = %u, ref4 = %u.\n", ref3, ref4);
2476 ok(ref4 == device_ref,
"Expected ref4 == device_ref, got device_ref = %u, ref4 = %u.\n", device_ref, ref4);
2478 todo_wine ok(ref4 > frame_ref2,
"Expected ref4 > frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
2483 ok(ref4 > initial_ref1,
"Expected ref4 > initial_ref1, got initial_ref1 = %u, ref4 = %u.\n", initial_ref1, ref4);
2485 ok(ref4 == initial_ref2,
"Expected ref4 == initial_ref2, got initial_ref2 = %u, ref4 = %u.\n", initial_ref2, ref4);
2487 ok(ref4 == initial_ref3,
"Expected ref4 == initial_ref3, got initial_ref3 = %u, ref4 = %u.\n", initial_ref3, ref4);
2489 ok(ref4 == frame_ref,
"Expected ref4 == frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
2491 ok(ref4 == frame_ref2,
"Expected ref4 == frame_ref2, got frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
2496 ok(ref4 > initial_ref1,
"Expected ref4 > initial_ref1, got initial_ref1 = %u, ref4 = %u.\n", initial_ref1, ref4);
2498 ok(ref4 == initial_ref2,
"Expected ref4 == initial_ref2, got initial_ref2 = %u, ref4 = %u.\n", initial_ref2, ref4);
2500 ok(ref4 == initial_ref3,
"Expected ref4 == initial_ref3, got initial_ref3 = %u, ref4 = %u.\n", initial_ref3, ref4);
2505 ok(ref4 == initial_ref1,
"Expected ref4 == initial_ref1, got initial_ref1 = %u, ref4 = %u.\n", initial_ref1, ref4);
2507 ok(ref4 == initial_ref2,
"Expected ref4 == initial_ref2, got initial_ref2 = %u, ref4 = %u.\n", initial_ref2, ref4);
2509 ok(ref4 == initial_ref3,
"Expected ref4 == initial_ref3, got initial_ref3 = %u, ref4 = %u.\n", initial_ref3, ref4);
2510 IDirectDrawClipper_Release(clipper);
2520 IDirect3DRMObject *
object;
2523 IDirect3DRMLight *
light;
2528 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
2531 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMLight interface (hr = %x)\n",
hr);
2570 IDirect3DRM3 *d3drm3;
2571 IDirect3DRMMaterial2 *material2;
2575 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
2579 win_skip(
"Cannot get IDirect3DRM3 interface (hr = %x), skipping tests\n",
hr);
2585 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMMaterial2 interface (hr = %x)\n",
hr);
2591 ok(
r == 18.5f,
"wrong power (%f)\n",
r);
2595 ok(
r == 0.0f &&
g == 0.0f &&
b == 0.0f,
"wrong emissive r=%f g=%f b=%f, expected r=0.0 g=0.0 b=0.0\n",
r,
g,
b);
2599 ok(
r == 1.0f &&
g == 1.0f &&
b == 1.0f,
"wrong specular r=%f g=%f b=%f, expected r=1.0 g=1.0 b=1.0\n",
r,
g,
b);
2603 ok(
r == 0.0f &&
g == 0.0f &&
b == 0.0f,
"wrong ambient r=%f g=%f b=%f, expected r=0.0 g=0.0 b=0.0\n",
r,
g,
b);
2608 ok(
r == 5.87f,
"wrong power (%f)\n",
r);
2614 ok(
r == 0.5f &&
g == 0.5f &&
b == 0.5f,
"wrong emissive r=%f g=%f b=%f, expected r=0.5 g=0.5 b=0.5\n",
r,
g,
b);
2620 ok(
r == 0.6f &&
g == 0.6f &&
b == 0.6f,
"wrong specular r=%f g=%f b=%f, expected r=0.6 g=0.6 b=0.6\n",
r,
g,
b);
2626 ok(
r == 0.7f &&
g == 0.7f &&
b == 0.7f,
"wrong ambient r=%f g=%f b=%f, expected r=0.7 g=0.7 b=0.7\n",
r,
g,
b);
2637 IDirect3DRM *d3drm1;
2638 IDirect3DRM2 *d3drm2;
2639 IDirect3DRM3 *d3drm3;
2640 IDirect3DRMTexture *texture1;
2641 IDirect3DRMTexture2 *texture2;
2642 IDirect3DRMTexture3 *texture3;
2643 IDirectDrawSurface *surface;
2649 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000, 0,
NULL
2655 0x000000ff, 0x0000ff00, 0x00ff0000, 0, 0,
NULL
2659 DWORD pixel[4] = { 20000, 30000, 10000, 0 };
2660 ULONG ref1, ref2, ref3, ref4;
2663 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
2667 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
2670 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
2673 texture1 = (IDirect3DRMTexture *)0xdeadbeef;
2676 ok(!texture1,
"Expected texture returned == NULL, got %p.\n", texture1);
2680 texture2 = (IDirect3DRMTexture2 *)0xdeadbeef;
2683 ok(!texture2,
"Expected texture returned == NULL, got %p.\n", texture2);
2687 texture3 = (IDirect3DRMTexture3 *)0xdeadbeef;
2690 ok(!texture3,
"Expected texture returned == NULL, got %p.\n", texture3);
2696 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture interface (hr = %#x)\n",
hr);
2698 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture2 interface (hr = %#x)\n",
hr);
2700 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
2706 testimg.palette = (
void *)0xdeadbeef;
2707 testimg.palette_size = 0x39;
2709 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture interface (hr = %#x)\n",
hr);
2711 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture2 interface (hr = %#x)\n",
hr);
2713 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
2719 texture1 = (IDirect3DRMTexture *)0xdeadbeef;
2722 ok(!texture1,
"Expected texture == NULL, got %p.\n", texture1);
2723 texture2 = (IDirect3DRMTexture2 *)0xdeadbeef;
2726 ok(!texture2,
"Expected texture == NULL, got %p.\n", texture2);
2727 texture3 = (IDirect3DRMTexture3 *)0xdeadbeef;
2730 ok(!texture3,
"Expected texture == NULL, got %p.\n", texture3);
2766 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture interface (hr = %#x)\n",
hr);
2768 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
2770 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
2772 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
2774 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture2 interface (hr = %#x)\n",
hr);
2776 ok(ref2 > ref1 + 1,
"expected ref2 > (ref1 + 1), got ref1 = %u , ref2 = %u.\n", ref1, ref2);
2778 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
2780 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
2782 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
2784 ok(ref2 > ref1 + 2,
"expected ref2 > (ref1 + 2), got ref1 = %u , ref2 = %u.\n", ref1, ref2);
2786 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
2788 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
2806 ok(!!d3drm_img,
"Failed to get image.\n");
2807 ok(d3drm_img == &initimg,
"Expected image returned == %p, got %p.\n", &initimg, d3drm_img);
2811 ok(ref2 - 2 == ref1,
"expected (ref2 - 2) == ref1, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
2813 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
2815 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2819 ok(!!d3drm_img,
"Failed to get image.\n");
2820 ok(d3drm_img == &initimg,
"Expected image returned == %p, got %p.\n", &initimg, d3drm_img);
2824 ok(ref2 - 1 == ref1,
"expected (ref2 - 1) == ref1, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
2826 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
2828 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2832 ok(!!d3drm_img,
"Failed to get image.\n");
2833 ok(d3drm_img == &initimg,
"Expected image returned == %p, got %p.\n", &initimg, d3drm_img);
2837 ok(ref2 == ref1,
"expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
2839 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
2841 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2846 testimg.palette =
NULL;
2847 testimg.palette_size = 0;
2849 (
void **)&texture2);
2850 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture2 interface (hr = %#x).\n",
hr);
2852 (
void **)&texture3);
2853 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x).\n",
hr);
2855 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMTexture2 interface (hr = %#x)\n",
hr);
2857 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
2862 testimg.palette = (
void *)0xdeadbeef;
2863 testimg.palette_size = 0x39;
2865 (
void **)&texture2);
2866 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture2 interface (hr = %#x).\n",
hr);
2868 (
void **)&texture3);
2869 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x).\n",
hr);
2871 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMTexture2 interface (hr = %#x)\n",
hr);
2873 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
2878 (
void **)&texture2);
2879 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture2 interface (hr = %#x).\n",
hr);
2884 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
2887 (
void **)&texture3);
2888 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x).\n",
hr);
2893 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
2928 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMTexture2 from image (hr = %#x).\n",
hr);
2930 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
2932 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
2934 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
2942 ok(!!d3drm_img,
"Failed to get image.\n");
2943 ok(d3drm_img == &initimg,
"Expected image returned == %p, got %p.\n", &initimg, d3drm_img);
2946 ok(ref2 == ref1,
"expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
2948 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
2950 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2954 ok(
SUCCEEDED(
hr),
"Cannot initialize IDirect3DRMTexture3 from image (hr = %#x).\n",
hr);
2956 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
2958 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
2960 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
2967 ok(!!d3drm_img,
"Failed to get image.\n");
2968 ok(d3drm_img == &initimg,
"Expected image returned == %p, got %p.\n", &initimg, d3drm_img);
2971 ok(ref2 == ref1,
"expected ref2 == ref1, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
2973 ok(ref3 == ref1,
"expected ref3 == ref1, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
2975 ok(ref4 == ref1,
"expected ref4 == ref1, got ref1 = %u, ref4 = %u.\n", ref1, ref4);
2984 IDirectDrawClipper *pClipper;
2987 IDirect3DRMDevice *
device;
2988 IDirect3DRMWinDevice *win_device;
2997 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
3000 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawClipper interface (hr = %x)\n",
hr);
3002 hr = IDirectDrawClipper_SetHWnd(pClipper, 0,
window);
3003 ok(
hr ==
DD_OK,
"Cannot set HWnd to Clipper (hr = %x)\n",
hr);
3007 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMDevice interface (hr = %x)\n",
hr);
3015 win_skip(
"Cannot get IDirect3DRMWinDevice interface (hr = %x), skipping tests\n",
hr);
3025 IDirectDrawClipper_Release(pClipper);
3033 IDirect3DRMFrame *frame, *subframe;
3048 1.0f, 0.0f, 0.0f, 0.0f,
3049 0.0f, 1.0f, 0.0f, 0.0f,
3050 0.0f, 0.0f, 1.0f, 0.0f,
3051 0.0f, 0.0f, 0.0f, 1.0f, 0);
3054 add_matrix[3][0] = 3.0f;
3055 add_matrix[3][1] = 3.0f;
3056 add_matrix[3][2] = 3.0f;
3059 2.0f, 0.0f, 0.0f, 0.0f,
3060 0.0f, 2.0f, 0.0f, 0.0f,
3061 0.0f, 0.0f, 2.0f, 0.0f,
3062 0.0f, 0.0f, 0.0f, 1.0f);
3068 1.0f, 0.0f, 0.0f, 0.0f,
3069 0.0f, 1.0f, 0.0f, 0.0f,
3070 0.0f, 0.0f, 1.0f, 0.0f,
3071 3.0f, 3.0f, 3.0f, 1.0f, 1);
3074 2.0f, 0.0f, 0.0f, 0.0f,
3075 0.0f, 2.0f, 0.0f, 0.0f,
3076 0.0f, 0.0f, 2.0f, 0.0f,
3077 0.0f, 0.0f, 0.0f, 1.0f);
3083 2.0f, 0.0f, 0.0f, 0.0f,
3084 0.0f, 2.0f, 0.0f, 0.0f,
3085 0.0f, 0.0f, 2.0f, 0.0f,
3086 6.0f, 6.0f, 6.0f, 1.0f, 1);
3089 2.0f, 0.0f, 0.0f, 0.0f,
3090 0.0f, 2.0f, 0.0f, 0.0f,
3091 0.0f, 0.0f, 2.0f, 0.0f,
3092 0.0f, 0.0f, 0.0f, 1.0f);
3098 2.0f, 0.0f, 0.0f, 0.0f,
3099 0.0f, 2.0f, 0.0f, 0.0f,
3100 0.0f, 0.0f, 2.0f, 0.0f,
3101 3.0f, 3.0f, 3.0f, 1.0f, 1);
3103 add_matrix[3][3] = 2.0f;
3108 2.0f, 0.0f, 0.0f, 0.0f,
3109 0.0f, 2.0f, 0.0f, 0.0f,
3110 0.0f, 0.0f, 2.0f, 0.0f,
3111 0.0f, 0.0f, 0.0f, 1.0f);
3117 1.0f, 0.0f, 0.0f, 0.0f,
3118 0.0f, 1.0f, 0.0f, 0.0f,
3119 0.0f, 0.0f, 1.0f, 0.0f,
3120 3.0f, 3.0f, 3.0f, 1.0f, 1);
3123 2.0f, 0.0f, 0.0f, 0.0f,
3124 0.0f, 2.0f, 0.0f, 0.0f,
3125 0.0f, 0.0f, 2.0f, 0.0f,
3126 0.0f, 0.0f, 0.0f, 1.0f);
3132 2.0f, 0.0f, 0.0f, 0.0f,
3133 0.0f, 2.0f, 0.0f, 0.0f,
3134 0.0f, 0.0f, 2.0f, 0.0f,
3135 6.0f, 6.0f, 6.0f, 1.0f, 1);
3138 2.0f, 0.0f, 0.0f, 0.0f,
3139 0.0f, 2.0f, 0.0f, 0.0f,
3140 0.0f, 0.0f, 2.0f, 0.0f,
3141 0.0f, 0.0f, 0.0f, 1.0f);
3147 2.0f, 0.0f, 0.0f, 0.0f,
3148 0.0f, 2.0f, 0.0f, 0.0f,
3149 0.0f, 0.0f, 2.0f, 0.0f,
3150 3.0f, 3.0f, 3.0f, 1.0f, 1);
3153 1.0f, 0.0f, 0.0f, 0.0f,
3154 0.0f, 1.0f, 0.0f, 0.0f,
3155 0.0f, 0.0f, 1.0f, 0.0f,
3156 3.0f, 3.0f, 3.0f, 1.0f);
3162 2.0f, 0.0f, 0.0f, 0.0f,
3163 0.0f, 2.0f, 0.0f, 0.0f,
3164 0.0f, 0.0f, 2.0f, 0.0f,
3165 0.0f, 0.0f, 0.0f, 1.0f, 1);
3168 1.0f, 0.0f, 0.0f, 0.0f,
3169 0.0f, 1.0f, 0.0f, 0.0f,
3170 0.0f, 0.0f, 1.0f, 0.0f,
3171 3.0f, 3.0f, 3.0f, 1.0f);
3177 2.0f, 0.0f, 0.0f, 0.0f,
3178 0.0f, 2.0f, 0.0f, 0.0f,
3179 0.0f, 0.0f, 2.0f, 0.0f,
3180 3.0f, 3.0f, 3.0f, 1.0f, 1);
3183 1.0f, 0.0f, 0.0f, 0.0f,
3184 0.0f, 1.0f, 0.0f, 0.0f,
3185 0.0f, 0.0f, 1.0f, 0.0f,
3186 3.0f, 3.0f, 3.0f, 1.0f);
3192 2.0f, 0.0f, 0.0f, 0.0f,
3193 0.0f, 2.0f, 0.0f, 0.0f,
3194 0.0f, 0.0f, 2.0f, 0.0f,
3195 6.0f, 6.0f, 6.0f, 1.0f, 1);
3198 1.0f, 0.0f, 0.0f, 0.0f,
3199 0.0f, 1.0f, 0.0f, 0.0f,
3200 0.0f, 0.0f, 1.0f, 0.0f,
3201 3.0f, 3.0f, 3.0f, 1.0f);
3207 1.0f, 0.0f, 0.0f, 0.0f,
3208 0.0f, 0.0f, 1.0f, 0.0f,
3209 0.0f, -1.0f, 0.0f, 0.0f,
3210 0.0f, 0.0f, 0.0f, 1.0f, 1);
3213 1.0f, 0.0f, 0.0f, 0.0f,
3214 0.0f, 1.0f, 0.0f, 0.0f,
3215 0.0f, 0.0f, 1.0f, 0.0f,
3216 3.0f, 3.0f, 3.0f, 1.0f);
3223 1.0f, 0.0f, 0.0f, 0.0f,
3224 0.0f, 0.0f, 1.0f, 0.0f,
3225 0.0f, -1.0f, 0.0f, 0.0f,
3226 3.0f, 3.0f, 3.0f, 1.0f, 1);
3229 1.0f, 0.0f, 0.0f, 0.0f,
3230 0.0f, 1.0f, 0.0f, 0.0f,
3231 0.0f, 0.0f, 1.0f, 0.0f,
3232 3.0f, 3.0f, 3.0f, 1.0f);
3239 1.0f, 0.0f, 0.0f, 0.0f,
3240 0.0f, 0.0f, 1.0f, 0.0f,
3241 0.0f, -1.0f, 0.0f, 0.0f,
3242 3.0f, -3.0f, 3.0f, 1.0f, 1);
3250 0.0f, 1.0f, 0.0f, 0.0f,
3251 -1.0f, 0.0f, 0.0f, 0.0f,
3252 0.0f, 0.0f, 1.0f, 0.0f,
3253 0.0f, 0.0f, 0.0f, 1.0f, 1);
3261 1.0f, 0.0f, 0.0f, 0.0f,
3262 0.0f, 0.0f, 1.0f, 0.0f,
3263 0.0f, -1.0f, 0.0f, 0.0f,
3264 0.0f, 0.0f, 0.0f, 1.0f, 1);
3267 2.0f, 0.0f, 0.0f, 0.0f,
3268 0.0f, 4.0f, 0.0f, 0.0f,
3269 0.0f, 0.0f, 8.0f, 0.0f,
3270 64.0f, 64.0f, 64.0f, 1.0f);
3274 1.0f, 0.0f, 0.0f, 0.0f,
3275 0.0f, 1.0f, 0.0f, 0.0f,
3276 0.0f, 0.0f, 1.0f, 0.0f,
3277 11.0f, 11.0f, 11.0f, 1.0f);
3296 &IID_IDirect3DRMMeshBuilder,
3297 &IID_IDirect3DRMMeshBuilder,
3298 &IID_IDirect3DRMFrame,
3299 &IID_IDirect3DRMMaterial
3304 ok(
object !=
NULL,
"Arg 1 should not be null\n");
3306 ok(
arg == (
void *)0xdeadbeef,
"Arg 3 should be 0xdeadbeef (got %p)\n",
arg);
3315 const GUID* req_refiids[] = { &IID_IDirect3DRMMeshBuilder, &IID_IDirect3DRMFrame, &IID_IDirect3DRMMaterial };
3318 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
3335 IDirect3DRMFrame *frame;
3336 IDirect3DRMVisualArray *
array;
3337 IDirect3DRMVisual *visual;
3342 ok(
hr ==
D3DRM_OK,
"IDirect3DRMObject_QueryInterface returned %x\n",
hr);
3345 ok(
hr ==
D3DRM_OK,
"IDirect3DRMFrame_GetVisuals returned %x\n",
hr);
3348 ok(
size == 1,
"Wrong size %u returned, expected 1\n",
size);
3351 ok(
hr ==
D3DRM_OK,
"IDirect3DRMVisualArray_GetElement returned %x\n",
hr);
3354 ok(
hr ==
D3DRM_OK,
"IDirect3DRMVisualArray_GetSize returned %x\n",
hr);
3358 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_GetName returned %x\n",
hr);
3376 { 4, 3, 3, 9, 0x4c0000ff, 30.0f, { 0.31f, 0.32f, 0.33f }, { 0.34f, 0.35f, 0.36f } },
3377 { 4, 2, 3, 6, 0x3300ff00, 20.0f, { 0.21f, 0.22f, 0.23f }, { 0.24f, 0.25f, 0.26f } },
3378 { 3, 1, 3, 3, 0x19ff0000, 10.0f, { 0.11f, 0.12f, 0.13f }, { 0.14f, 0.15f, 0.16f } }
3386 const GUID *req_refiids[] = { &IID_IDirect3DRMFrame };
3387 IDirect3DRMMesh *
mesh;
3389 IDirect3DRMMaterial *material;
3398 hr =
IDirect3DRM_Load(
d3drm, &
info,
NULL, (
GUID**)req_refiids, 1,
D3DRMLOAD_FROMMEMORY,
object_load_callback_frame, (
void*)0xdeadbeef,
NULL,
NULL,
NULL);
3402 ok(
hr ==
D3DRM_OK,
"IDirect3DRMMeshBuilder_CreateMesh returned %x\n",
hr);
3405 ok(
size == 3,
"Wrong size %u returned, expected 3\n",
size);
3415 ok(
hr ==
D3DRM_OK,
"Group %d: IDirect3DRMMesh_GetGroup returned %x\n",
i,
hr);
3425 ok(
hr ==
D3DRM_OK,
"Group %d: IDirect3DRMMesh_GetGroupMaterial returned %x\n",
i,
hr);
3426 ok(material !=
NULL,
"Group %d: No material\n",
i);
3430 ok(
hr ==
D3DRM_OK,
"Group %d: IDirect3DRMMaterial_GetSpecular returned %x\n",
i,
hr);
3435 ok(
hr ==
D3DRM_OK,
"Group %d: IDirect3DRMMaterial_GetEmissive returned %x\n",
i,
hr);
3441 ok(
hr ==
D3DRM_OK,
"Group %d: IDirect3DRMMesh_GetGroupTexture returned %x\n",
i,
hr);
3442 ok(!
texture,
"Group %d: Unexpected texture\n",
i);
3466 ULONG refcount, expected_refcount;
3471 for (
i = 0;
i < entry_count; ++
i)
3473 hr = IUnknown_QueryInterface(base_iface,
tests[
i].iid, (
void **)&iface1);
3477 for (
j = 0;
j < entry_count; ++
j)
3479 hr = IUnknown_QueryInterface(iface1,
tests[
j].iid, (
void **)&iface2);
3483 expected_refcount = 0;
3485 ++expected_refcount;
3487 ++expected_refcount;
3488 refcount = IUnknown_Release(iface2);
3489 ok(refcount == expected_refcount,
"Got refcount %u for test \"%s\" %u, %u, expected %u.\n",
3492 ok(iface1 == iface2,
3493 "Expected iface1 == iface2 for test \"%s\" %u, %u. Got iface1 = %p, iface 2 = %p.\n",
3496 ok(iface1 != iface2,
3497 "Expected iface1 != iface2 for test \"%s\" %u, %u. Got iface1 == iface2 == %p.\n",
3502 expected_refcount = 0;
3504 ++expected_refcount;
3505 refcount = IUnknown_Release(iface1);
3506 ok(refcount == expected_refcount,
"Got refcount %u for test \"%s\" %u, expected %u.\n",
3516 { &IID_IDirect3DRM3, &IID_IDirect3DRM3, &IID_IDirect3DRM3,
S_OK },
3517 { &IID_IDirect3DRM2, &IID_IDirect3DRM2, &IID_IDirect3DRM2,
S_OK },
3518 { &IID_IDirect3DRM, &IID_IDirect3DRM, &IID_IDirect3DRM,
S_OK },
3589 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
3669 IDirect3DRM *d3drm1;
3670 IDirect3DRM2 *d3drm2;
3671 IDirect3DRM3 *d3drm3;
3672 IDirect3DRMFrame *frame1;
3673 IDirect3DRMFrame2 *frame2;
3674 IDirect3DRMFrame3 *frame3;
3678 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
3683 ok(
hr ==
D3DRM_OK,
"Failed to create IUnknown from frame1 (hr = %x)\n",
hr);
3689 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
3693 ok(
hr ==
D3DRM_OK,
"Failed to create IUnknown from frame2 (hr = %x)\n",
hr);
3699 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
3703 ok(
hr ==
D3DRM_OK,
"Failed to create IUnknown from frame3 (hr = %x)\n",
hr);
3721 { &IID_IDirect3DRMDevice2, &
IID_IUnknown, &IID_IDirect3DRMDevice2,
S_OK, },
3722 { &IID_IDirect3DRMDevice3, &
IID_IUnknown, &IID_IDirect3DRMDevice3,
S_OK, },
3723 { &IID_IDirect3DRMWinDevice, &
IID_IUnknown, &IID_IDirect3DRMWinDevice,
S_OK, },
3787 IDirect3DRM *d3drm1;
3788 IDirect3DRM2 *d3drm2;
3789 IDirect3DRM3 *d3drm3;
3790 IDirectDrawClipper *clipper;
3791 IDirect3DRMDevice *device1;
3792 IDirect3DRMDevice2 *device2;
3793 IDirect3DRMDevice3 *device3;
3802 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawClipper interface (hr = %x)\n",
hr);
3803 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
3804 ok(
hr ==
DD_OK,
"Cannot set HWnd to Clipper (hr = %x)\n",
hr);
3807 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %x)\n",
hr);
3810 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice interface (hr = %x)\n",
hr);
3812 ok(
SUCCEEDED(
hr),
"Cannot get IUnknown interface from IDirect3DRMDevice (hr = %x)\n",
hr);
3818 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
3820 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice2 interface (hr = %x)\n",
hr);
3822 ok(
SUCCEEDED(
hr),
"Cannot get IUnknown interface from IDirect3DRMDevice2 (hr = %x)\n",
hr);
3828 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
3830 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %x)\n",
hr);
3832 ok(
SUCCEEDED(
hr),
"Cannot get IUnknown interface from IDirect3DRMDevice3 (hr = %x)\n",
hr);
3837 IDirectDrawClipper_Release(clipper);
3847 IDirectDrawSurface **primary =
context;
3854 IDirectDrawSurface_Release(surface);
3862 IDirect3DRM *d3drm1 =
NULL;
3865 IDirect3DRMDevice *device1 = (IDirect3DRMDevice *)0xdeadbeef;
3866 IDirect3DDevice *d3ddevice1 =
NULL;
3867 IDirectDrawClipper *clipper =
NULL, *d3drm_clipper =
NULL;
3868 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_primary =
NULL;
3871 DWORD expected_flags, ret_val;
3875 ULONG ref1, ref2, cref1, cref2;
3881 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawClipper interface (hr = %x).\n",
hr);
3882 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
3883 ok(
hr ==
DD_OK,
"Cannot set HWnd to Clipper (hr = %x).\n",
hr);
3886 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
3892 ok(device1 ==
NULL,
"Expected device returned == NULL, got %p.\n", device1);
3902 ok(
hr ==
D3DRM_OK,
"Cannot create IDirect3DRMDevice interface (hr = %x).\n",
hr);
3904 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
3906 ok(cref2 > cref1,
"expected cref2 > cref1, got cref1 = %u , cref2 = %u.\n", cref1, cref2);
3908 ok(ret_val == 300,
"Expected device width = 300, got %u.\n", ret_val);
3910 ok(ret_val == 200,
"Expected device height == 200, got %u.\n", ret_val);
3914 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice interface (hr = %x).\n",
hr);
3917 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
3919 hr = IDirectDrawSurface_GetClipper(surface, &d3drm_clipper);
3923 hr = IDirectDrawSurface_QueryInterface(surface, &IID_IDirectDrawSurface7, (
void **)&surface7);
3924 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawSurface7 interface (hr = %x).\n",
hr);
3925 IDirectDrawSurface7_GetDDInterface(surface7, (
void **)&
unknown);
3926 hr = IUnknown_QueryInterface(
unknown, &IID_IDirectDraw, (
void **)&
ddraw);
3927 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
3931 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
3932 ok(d3drm_primary !=
NULL,
"No primary surface was enumerated.\n");
3933 hr = IDirectDrawSurface_GetClipper(d3drm_primary, &d3drm_clipper);
3934 ok(
hr ==
DD_OK,
"Cannot get attached clipper from primary surface (hr = %x).\n",
hr);
3935 ok(d3drm_clipper == clipper,
"Expected clipper returned == %p, got %p.\n", clipper , d3drm_clipper);
3937 IDirectDrawClipper_Release(d3drm_clipper);
3938 IDirectDrawSurface_Release(d3drm_primary);
3939 IDirectDrawSurface7_Release(surface7);
3940 IDirectDraw_Release(
ddraw);
3943 surface_desc.dwSize =
sizeof(surface_desc);
3944 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc);
3945 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
3947 ok((surface_desc.dwWidth == 300) && (surface_desc.dwHeight == 200),
"Expected surface dimensions = 300, 200, got %u, %u.\n",
3948 surface_desc.dwWidth, surface_desc.dwHeight);
3952 ok(surface_desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags, surface_desc.dwFlags);
3955 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
3958 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
3959 ok(
desc.ddpfPixelFormat.dwRGBBitCount == surface_desc.ddpfPixelFormat.dwRGBBitCount,
"Expected %u bpp, got %u bpp.\n",
3960 surface_desc.ddpfPixelFormat.dwRGBBitCount,
desc.ddpfPixelFormat.dwRGBBitCount);
3962 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
3963 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
3966 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
3967 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
3969 ok((
desc.dwWidth == 300) && (
desc.dwHeight == 200),
"Expected surface dimensions = 300, 200, got %u, %u.\n",
3973 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
3974 ok(
desc.dwZBufferBitDepth == 16,
"Expected 16 for Z buffer bit depth, got %u.\n",
desc.dwZBufferBitDepth);
3975 ok(
desc.ddpfPixelFormat.dwStencilBitMask == 0,
"Expected 0 stencil bits, got %x.\n",
desc.ddpfPixelFormat.dwStencilBitMask);
3978 IDirectDrawSurface_Release(
ds);
3980 IDirectDrawSurface_Release(surface);
3986 ok(ref1 == ref2,
"expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
3988 ok(cref1 == cref2,
"expected cref1 == cref2, got cref1 = %u, cref2 = %u.\n", cref1, cref2);
3992 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
3993 hr = IDirectDraw_SetDisplayMode(
ddraw,
desc.dwWidth,
desc.dwHeight, 16);
3994 ok(
hr ==
DD_OK,
"Cannot set display mode to 16bpp (hr = %x).\n",
hr);
3997 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
3998 ok(
desc.ddpfPixelFormat.dwRGBBitCount == 16,
"Expected 16 bpp, got %u.\n",
desc.ddpfPixelFormat.dwRGBBitCount);
4001 ok(
hr ==
D3DRM_OK,
"Cannot create IDirect3DRMDevice interface (hr = %x).\n",
hr);
4004 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice interface (hr = %x).\n",
hr);
4007 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4009 surface_desc.dwSize =
sizeof(surface_desc);
4010 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc);
4011 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
4012 todo_wine ok(surface_desc.ddpfPixelFormat.dwRGBBitCount == 16,
"Expected 16bpp, got %ubpp.\n",
4013 surface_desc.ddpfPixelFormat.dwRGBBitCount);
4015 hr = IDirectDraw2_RestoreDisplayMode(
ddraw);
4019 IDirectDrawSurface_Release(
ds);
4020 IDirectDrawSurface_Release(surface);
4024 IDirectDrawClipper_Release(clipper);
4025 IDirectDraw_Release(
ddraw);
4032 IDirect3DRM *d3drm1 =
NULL;
4033 IDirect3DRM2 *d3drm2 =
NULL;
4036 IDirect3DRMDevice2 *device2 = (IDirect3DRMDevice2 *)0xdeadbeef;
4037 IDirect3DDevice2 *d3ddevice2 =
NULL;
4038 IDirectDrawClipper *clipper =
NULL, *d3drm_clipper =
NULL;
4039 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_primary =
NULL;
4042 DWORD expected_flags, ret_val;
4046 ULONG ref1, ref2, ref3, cref1, cref2;
4052 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawClipper interface (hr = %x).\n",
hr);
4053 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
4054 ok(
hr ==
DD_OK,
"Cannot set HWnd to Clipper (hr = %x).\n",
hr);
4057 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
4062 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
4067 ok(device2 ==
NULL,
"Expected device returned == NULL, got %p.\n", device2);
4077 ok(
hr ==
D3DRM_OK,
"Cannot create IDirect3DRMDevice2 interface (hr = %x).\n",
hr);
4079 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
4081 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4083 ok(cref2 > cref1,
"expected cref2 > cref1, got cref1 = %u , cref2 = %u.\n", cref1, cref2);
4085 ok(ret_val == 300,
"Expected device width = 300, got %u.\n", ret_val);
4087 ok(ret_val == 200,
"Expected device height == 200, got %u.\n", ret_val);
4091 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4094 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4096 hr = IDirectDrawSurface_GetClipper(surface, &d3drm_clipper);
4100 hr = IDirectDrawSurface_QueryInterface(surface, &IID_IDirectDrawSurface7, (
void **)&surface7);
4101 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawSurface7 interface (hr = %x).\n",
hr);
4102 IDirectDrawSurface7_GetDDInterface(surface7, (
void **)&
unknown);
4103 hr = IUnknown_QueryInterface(
unknown, &IID_IDirectDraw, (
void **)&
ddraw);
4104 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4108 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
4109 ok(d3drm_primary !=
NULL,
"No primary surface was enumerated.\n");
4110 hr = IDirectDrawSurface_GetClipper(d3drm_primary, &d3drm_clipper);
4111 ok(
hr ==
DD_OK,
"Cannot get attached clipper from primary surface (hr = %x).\n",
hr);
4112 ok(d3drm_clipper == clipper,
"Expected clipper returned == %p, got %p.\n", clipper , d3drm_clipper);
4114 IDirectDrawClipper_Release(d3drm_clipper);
4115 IDirectDrawSurface_Release(d3drm_primary);
4116 IDirectDrawSurface7_Release(surface7);
4117 IDirectDraw_Release(
ddraw);
4120 surface_desc.dwSize =
sizeof(surface_desc);
4121 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc);
4122 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
4124 ok((surface_desc.dwWidth == 300) && (surface_desc.dwHeight == 200),
"Expected surface dimensions = 300, 200, got %u, %u.\n",
4125 surface_desc.dwWidth, surface_desc.dwHeight);
4129 ok(surface_desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags, surface_desc.dwFlags);
4132 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4135 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
4136 ok(
desc.ddpfPixelFormat.dwRGBBitCount == surface_desc.ddpfPixelFormat.dwRGBBitCount,
"Expected %u bpp, got %u bpp.\n",
4137 surface_desc.ddpfPixelFormat.dwRGBBitCount,
desc.ddpfPixelFormat.dwRGBBitCount);
4139 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4140 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4143 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
4144 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
4146 ok((
desc.dwWidth == 300) && (
desc.dwHeight == 200),
"Expected surface dimensions = 300, 200, got %u, %u.\n",
4150 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
4151 ok(
desc.dwZBufferBitDepth == 16,
"Expected 16 for Z buffer bit depth, got %u.\n",
desc.dwZBufferBitDepth);
4152 ok(
desc.ddpfPixelFormat.dwStencilBitMask == 0,
"Expected 0 stencil bits, got %x.\n",
desc.ddpfPixelFormat.dwStencilBitMask);
4155 IDirectDrawSurface_Release(
ds);
4157 IDirectDrawSurface_Release(surface);
4163 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
4165 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4167 ok(cref1 == cref2,
"expected cref1 == cref2, got cref1 = %u, cref2 = %u.\n", cref1, cref2);
4171 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
4172 hr = IDirectDraw_SetDisplayMode(
ddraw,
desc.dwWidth,
desc.dwHeight, 16);
4173 ok(
hr ==
DD_OK,
"Cannot set display mode to 16bpp (hr = %x).\n",
hr);
4176 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
4177 ok(
desc.ddpfPixelFormat.dwRGBBitCount == 16,
"Expected 16 bpp, got %u.\n",
desc.ddpfPixelFormat.dwRGBBitCount);
4180 ok(
hr ==
D3DRM_OK,
"Cannot create IDirect3DRMDevice2 interface (hr = %x).\n",
hr);
4183 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4186 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4188 surface_desc.dwSize =
sizeof(surface_desc);
4189 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc);
4190 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
4191 todo_wine ok(surface_desc.ddpfPixelFormat.dwRGBBitCount == 16,
"Expected 16bpp, got %ubpp.\n",
4192 surface_desc.ddpfPixelFormat.dwRGBBitCount);
4194 hr = IDirectDraw2_RestoreDisplayMode(
ddraw);
4197 IDirectDrawSurface_Release(surface);
4202 IDirectDrawClipper_Release(clipper);
4203 IDirectDraw_Release(
ddraw);
4210 IDirect3DRM *d3drm1 =
NULL;
4211 IDirect3DRM3 *d3drm3 =
NULL;
4214 IDirect3DRMDevice3 *device3 = (IDirect3DRMDevice3 *)0xdeadbeef;
4215 IDirect3DDevice2 *d3ddevice2 =
NULL;
4216 IDirectDrawClipper *clipper =
NULL, *d3drm_clipper =
NULL;
4217 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_primary =
NULL;
4220 DWORD expected_flags, ret_val;
4224 ULONG ref1, ref2, ref3, cref1, cref2;
4230 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawClipper interface (hr = %x).\n",
hr);
4231 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
4232 ok(
hr ==
DD_OK,
"Cannot set HWnd to Clipper (hr = %x).\n",
hr);
4235 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
4240 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
4245 ok(device3 ==
NULL,
"Expected device returned == NULL, got %p.\n", device3);
4255 ok(
hr ==
D3DRM_OK,
"Cannot create IDirect3DRMDevice3 interface (hr = %x).\n",
hr);
4257 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
4259 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4261 ok(cref2 > cref1,
"expected cref2 > cref1, got cref1 = %u , cref2 = %u.\n", cref1, cref2);
4263 ok(ret_val == 300,
"Expected device width = 300, got %u.\n", ret_val);
4265 ok(ret_val == 200,
"Expected device height == 200, got %u.\n", ret_val);
4269 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4272 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4274 hr = IDirectDrawSurface_GetClipper(surface, &d3drm_clipper);
4278 hr = IDirectDrawSurface_QueryInterface(surface, &IID_IDirectDrawSurface7, (
void **)&surface7);
4279 ok(
hr ==
DD_OK,
"Cannot get IDirectDrawSurface7 interface (hr = %x).\n",
hr);
4280 IDirectDrawSurface7_GetDDInterface(surface7, (
void **)&
unknown);
4281 hr = IUnknown_QueryInterface(
unknown, &IID_IDirectDraw, (
void **)&
ddraw);
4282 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4286 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
4287 ok(d3drm_primary !=
NULL,
"No primary surface was enumerated.\n");
4288 hr = IDirectDrawSurface_GetClipper(d3drm_primary, &d3drm_clipper);
4289 ok(
hr ==
DD_OK,
"Cannot get attached clipper from primary surface (hr = %x).\n",
hr);
4290 ok(d3drm_clipper == clipper,
"Expected clipper returned == %p, got %p.\n", clipper , d3drm_clipper);
4292 IDirectDrawClipper_Release(d3drm_clipper);
4293 IDirectDrawSurface_Release(d3drm_primary);
4294 IDirectDrawSurface7_Release(surface7);
4295 IDirectDraw_Release(
ddraw);
4298 surface_desc.dwSize =
sizeof(surface_desc);
4299 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc);
4300 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
4302 ok((surface_desc.dwWidth == 300) && (surface_desc.dwHeight == 200),
"Expected surface dimensions = 300, 200, got %u, %u.\n",
4303 surface_desc.dwWidth, surface_desc.dwHeight);
4307 ok(surface_desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags, surface_desc.dwFlags);
4310 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4313 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
4314 ok(
desc.ddpfPixelFormat.dwRGBBitCount == surface_desc.ddpfPixelFormat.dwRGBBitCount,
"Expected %u bpp, got %u bpp.\n",
4315 surface_desc.ddpfPixelFormat.dwRGBBitCount,
desc.ddpfPixelFormat.dwRGBBitCount);
4317 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4318 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4321 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
4322 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
4324 ok((
desc.dwWidth == 300) && (
desc.dwHeight == 200),
"Expected surface dimensions = 300, 200, got %u, %u.\n",
4328 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
4329 ok(
desc.dwZBufferBitDepth == 16,
"Expected 16 for Z buffer bit depth, got %u.\n",
desc.dwZBufferBitDepth);
4330 ok(
desc.ddpfPixelFormat.dwStencilBitMask == 0,
"Expected 0 stencil bits, got %x.\n",
desc.ddpfPixelFormat.dwStencilBitMask);
4333 IDirectDrawSurface_Release(
ds);
4335 IDirectDrawSurface_Release(surface);
4341 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
4343 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4345 ok(cref1 == cref2,
"expected cref1 == cref2, got cref1 = %u, cref2 = %u.\n", cref1, cref2);
4349 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
4350 hr = IDirectDraw_SetDisplayMode(
ddraw,
desc.dwWidth,
desc.dwHeight, 16);
4351 ok(
hr ==
DD_OK,
"Cannot set display mode to 16bpp (hr = %x).\n",
hr);
4354 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw display mode (hr = %x)\n",
hr);
4355 ok(
desc.ddpfPixelFormat.dwRGBBitCount == 16,
"Expected 16 bpp, got %u.\n",
desc.ddpfPixelFormat.dwRGBBitCount);
4358 ok(
hr ==
D3DRM_OK,
"Cannot create IDirect3DRMDevice3 interface (hr = %x).\n",
hr);
4361 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4364 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4366 surface_desc.dwSize =
sizeof(surface_desc);
4367 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc);
4368 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
4369 todo_wine ok(surface_desc.ddpfPixelFormat.dwRGBBitCount == 16,
"Expected 16bpp, got %ubpp.\n",
4370 surface_desc.ddpfPixelFormat.dwRGBBitCount);
4372 hr = IDirectDraw2_RestoreDisplayMode(
ddraw);
4375 IDirectDrawSurface_Release(surface);
4380 IDirectDrawClipper_Release(clipper);
4381 IDirectDraw_Release(
ddraw);
4390 IDirect3DRM *d3drm1 =
NULL;
4391 IDirect3DRMDevice *device1 = (IDirect3DRMDevice *)0xdeadbeef;
4392 IDirect3DDevice *d3ddevice1 =
NULL;
4393 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_surface =
NULL, *d3drm_ds =
NULL;
4394 DWORD expected_flags, ret_val;
4397 ULONG ref1, ref2, surface_ref1, surface_ref2;
4403 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4412 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
4428 ok(device1 ==
NULL,
"Expected device returned == NULL, got %p.\n", device1);
4429 IDirectDrawSurface_Release(surface);
4444 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice interface (hr = %x).\n",
hr);
4446 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
4448 ok(surface_ref2 > surface_ref1,
"Expected surface_ref2 > surface_ref1, got surface_ref1 = %u, surface_ref2 = %u.\n", surface_ref1, surface_ref2);
4450 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
4452 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
4457 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
4458 ok(d3drm_surface ==
NULL,
"No primary surface should have enumerated (%p).\n", d3drm_surface);
4461 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice interface (hr = %x).\n",
hr);
4464 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4465 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4468 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &
ds);
4469 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4473 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
4474 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
4477 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
4481 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
4483 IDirectDrawSurface_Release(
ds);
4485 IDirectDrawSurface_Release(d3drm_surface);
4489 ok(ref1 == ref2,
"expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
4491 ok(surface_ref2 == surface_ref1,
"Expected surface_ref2 == surface_ref1, got surface_ref1 = %u, surface_ref2 = %u.\n",
4492 surface_ref1, surface_ref2);
4493 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4494 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4496 ref1 = IDirectDrawSurface_Release(
ds);
4497 ok(ref1 == 1,
"Expected ref1 == 1, got %u.\n", ref1);
4498 ref1 = IDirectDrawSurface_Release(surface);
4499 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4515 desc.dwZBufferBitDepth = 16;
4519 ok(
hr ==
DD_OK,
"Cannot create depth surface (hr = %x).\n",
hr);
4520 hr = IDirectDrawSurface_AddAttachedSurface(surface,
ds);
4524 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice interface (hr = %x).\n",
hr);
4527 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice interface (hr = %x).\n",
hr);
4530 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4531 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4534 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &d3drm_ds);
4535 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4536 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
4538 IDirectDrawSurface_Release(d3drm_ds);
4539 IDirectDrawSurface_Release(d3drm_surface);
4540 IDirectDrawSurface_Release(
ds);
4544 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4545 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4547 ref1 = IDirectDrawSurface_Release(
ds);
4548 ok(ref1 == 1,
"Expected ref1 == 1, got %u.\n", ref1);
4549 ref1 = IDirectDrawSurface_Release(surface);
4550 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4552 IDirectDraw_Release(
ddraw);
4561 IDirect3DRM *d3drm1 =
NULL;
4562 IDirect3DRM2 *d3drm2 =
NULL;
4563 IDirect3DRMDevice2 *device2 = (IDirect3DRMDevice2 *)0xdeadbeef;
4564 IDirect3DDevice2 *d3ddevice2 =
NULL;
4565 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_surface =
NULL, *d3drm_ds =
NULL;
4566 DWORD expected_flags, ret_val;
4569 ULONG ref1, ref2, ref3, surface_ref1, surface_ref2;
4575 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4584 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
4588 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
4604 ok(device2 ==
NULL,
"Expected device returned == NULL, got %p.\n", device2);
4605 IDirectDrawSurface_Release(surface);
4620 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice2 interface (hr = %x).\n",
hr);
4622 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
4624 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4626 ok(surface_ref2 > surface_ref1,
"Expected surface_ref2 > surface_ref1, got surface_ref1 = %u, surface_ref2 = %u.\n", surface_ref1, surface_ref2);
4628 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
4630 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
4635 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
4636 ok(d3drm_surface ==
NULL,
"No primary surface should have enumerated (%p).\n", d3drm_surface);
4639 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4642 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4643 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4646 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &
ds);
4647 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4651 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
4652 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
4655 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
4659 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
4661 IDirectDrawSurface_Release(
ds);
4663 IDirectDrawSurface_Release(d3drm_surface);
4667 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
4669 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4671 ok(surface_ref2 == surface_ref1,
"Expected surface_ref2 == surface_ref1, got surface_ref1 = %u, surface_ref2 = %u.\n",
4672 surface_ref1, surface_ref2);
4673 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4674 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4676 ref1 = IDirectDrawSurface_Release(
ds);
4677 ok(ref1 == 1,
"Expected ref1 == 1, got %u.\n", ref1);
4679 ref1 = IDirectDrawSurface_Release(surface);
4680 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4696 desc.dwZBufferBitDepth = 16;
4700 ok(
hr ==
DD_OK,
"Cannot create depth surface (hr = %x).\n",
hr);
4701 hr = IDirectDrawSurface_AddAttachedSurface(surface,
ds);
4705 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice2 interface (hr = %x).\n",
hr);
4708 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4711 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4712 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4715 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &d3drm_ds);
4716 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4717 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
4719 IDirectDrawSurface_Release(d3drm_ds);
4720 IDirectDrawSurface_Release(d3drm_surface);
4721 IDirectDrawSurface_Release(
ds);
4725 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4726 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4728 ref1 = IDirectDrawSurface_Release(
ds);
4729 ok(ref1 == 1,
"Expected ref1 == 1, got %u.\n", ref1);
4730 ref1 = IDirectDrawSurface_Release(surface);
4731 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4734 IDirectDraw_Release(
ddraw);
4743 IDirect3DRM *d3drm1 =
NULL;
4744 IDirect3DRM3 *d3drm3 =
NULL;
4745 IDirect3DRMDevice3 *device3 = (IDirect3DRMDevice3 *)0xdeadbeef;
4746 IDirect3DDevice2 *d3ddevice2 =
NULL;
4747 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_surface =
NULL, *d3drm_ds =
NULL;
4748 DWORD expected_flags, ret_val;
4751 ULONG ref1, ref2, ref3, surface_ref1, surface_ref2;
4757 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
4766 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
4770 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
4786 ok(device3 ==
NULL,
"Expected device returned == NULL, got %p.\n", device3);
4787 IDirectDrawSurface_Release(surface);
4802 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice3 interface (hr = %x).\n",
hr);
4804 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
4806 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4808 ok(surface_ref2 > surface_ref1,
"Expected surface_ref2 > surface_ref1, got surface_ref1 = %u, surface_ref2 = %u.\n", surface_ref1, surface_ref2);
4810 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
4812 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
4817 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
4818 ok(d3drm_surface ==
NULL,
"No primary surface should have enumerated (%p).\n", d3drm_surface);
4821 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4824 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4825 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4828 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &
ds);
4829 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4833 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
4834 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
4837 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
4841 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
4843 IDirectDrawSurface_Release(
ds);
4845 IDirectDrawSurface_Release(d3drm_surface);
4849 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
4851 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
4853 ok(surface_ref2 == surface_ref1,
"Expected surface_ref2 == surface_ref1, got surface_ref1 = %u, surface_ref2 = %u.\n",
4854 surface_ref1, surface_ref2);
4856 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4859 IDirectDrawSurface_Release(
ds);
4860 ref1 = IDirectDrawSurface_Release(surface);
4861 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4877 desc.dwZBufferBitDepth = 16;
4881 ok(
hr ==
DD_OK,
"Cannot create depth surface (hr = %x).\n",
hr);
4882 hr = IDirectDrawSurface_AddAttachedSurface(surface,
ds);
4886 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice3 interface (hr = %x).\n",
hr);
4889 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4892 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4893 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4896 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &d3drm_ds);
4897 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4898 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
4900 IDirectDrawSurface_Release(d3drm_ds);
4901 IDirectDrawSurface_Release(d3drm_surface);
4902 IDirectDrawSurface_Release(
ds);
4905 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4906 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4908 ref1 = IDirectDrawSurface_Release(
ds);
4909 ok(ref1 == 1,
"Expected ref1 == 1, got %u.\n", ref1);
4913 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice3 interface (hr = %x).\n",
hr);
4916 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4919 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4920 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4923 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &d3drm_ds);
4924 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4925 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
4927 IDirectDrawSurface_Release(d3drm_ds);
4928 IDirectDrawSurface_Release(d3drm_surface);
4931 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
4932 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
4934 ref1 = IDirectDrawSurface_Release(
ds);
4935 ok(ref1 == 1,
"Expected ref1 == 1, got %u.\n", ref1);
4936 ref1 = IDirectDrawSurface_Release(surface);
4937 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4951 ok(
SUCCEEDED(
hr),
"Cannot create IDirect3DRMDevice3 interface (hr = %x).\n",
hr);
4954 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
4957 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
4958 ok(surface == d3drm_surface,
"Expected surface returned == %p, got %p.\n", surface, d3drm_surface);
4961 hr = IDirectDrawSurface_GetAttachedSurface(d3drm_surface, &caps, &d3drm_ds);
4963 IDirectDrawSurface_Release(d3drm_surface);
4967 ref1 = IDirectDrawSurface_Release(surface);
4968 ok(ref1 == 0,
"Expected Render target refcount == 0, got %u.\n", ref1);
4971 IDirectDraw_Release(
ddraw);
4977 static const DWORD z_depths[] = { 32, 24, 16 };
4978 IDirectDrawSurface *surface;
4989 memset(&surface_desc, 0,
sizeof(surface_desc));
4990 surface_desc.dwSize =
sizeof(surface_desc);
4993 surface_desc.dwWidth = rc.
right;
4994 surface_desc.dwHeight = rc.
bottom;
4996 hr = IDirectDraw_CreateSurface(
ddraw, &surface_desc, &surface,
NULL);
5004 memset(&surface_desc, 0,
sizeof(surface_desc));
5005 surface_desc.dwSize =
sizeof(surface_desc);
5008 U2(surface_desc).dwZBufferBitDepth = z_depths[
i];
5009 surface_desc.dwWidth = rc.
right;
5010 surface_desc.dwHeight = rc.
bottom;
5014 hr = IDirectDrawSurface_AddAttachedSurface(surface, *
ds);
5018 IDirectDrawSurface_Release(*
ds);
5022 if (
SUCCEEDED(IDirectDrawSurface_QueryInterface(surface, &IID_IDirect3DHALDevice, (
void **)&
device)))
5025 IDirectDrawSurface_DeleteAttachedSurface(surface, 0, *
ds);
5026 IDirectDrawSurface_Release(*
ds);
5030 IDirectDrawSurface_Release(surface);
5036 IDirectDraw *ddraw1 =
NULL, *temp_ddraw1;
5037 IDirect3D *d3d1 =
NULL, *temp_d3d1;
5038 IDirect3DRM *d3drm1 =
NULL;
5039 IDirect3DRMDevice *device1 = (IDirect3DRMDevice *)0xdeadbeef;
5040 IDirect3DRMDevice2 *device2;
5041 IDirect3DRMDevice3 *device3;
5042 IDirect3DDevice *d3ddevice1 =
NULL, *d3drm_d3ddevice1 =
NULL, *temp_d3ddevice1;
5043 IDirect3DDevice2 *d3ddevice2 = (IDirect3DDevice2 *)0xdeadbeef;
5044 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_ds =
NULL;
5045 DWORD expected_flags, ret_val;
5050 ULONG ref1, ref2, ref3, ref4, device_ref1, device_ref2, d3d_ref1, d3d_ref2;
5054 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
5059 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirect3D, (
void **)&d3d1);
5060 ok(
hr ==
DD_OK,
"Cannot get IDirect3D2 interface (hr = %x).\n",
hr);
5065 if (d3ddevice1 ==
NULL)
5067 win_skip(
"Cannot create IM device, skipping tests.\n");
5069 IDirectDraw_Release(ddraw1);
5075 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
5080 ok(device1 ==
NULL,
"Expected device returned == NULL, got %p.\n", device1);
5087 ok(
hr ==
DD_OK,
"Failed to create IDirect3DRMDevice interface (hr = %x)\n",
hr);
5089 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
5091 ok(device_ref2 > device_ref1,
"Expected device_ref2 > device_ref1, got device_ref1 = %u, device_ref2 = %u.\n", device_ref1, device_ref2);
5093 ok(d3d_ref2 > d3d_ref1,
"Expected d3d_ref2 > d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5095 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
5097 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
5100 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice2 Interface (hr = %x).\n",
hr);
5103 ok(d3ddevice2 ==
NULL,
"Expected d3ddevice2 == NULL, got %p.\n", d3ddevice2);
5106 d3ddevice2 = (IDirect3DDevice2 *)0xdeadbeef;
5108 ok(
hr ==
DD_OK,
"Cannot get IDirect3DRMDevice3 Interface (hr = %x).\n",
hr);
5111 ok(d3ddevice2 ==
NULL,
"Expected d3ddevice2 == NULL, got %p.\n", d3ddevice2);
5116 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
5117 ok(surface ==
NULL,
"No primary surface should have enumerated (%p).\n", surface);
5120 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice interface (hr = %x).\n",
hr);
5121 ok(d3ddevice1 == d3drm_d3ddevice1,
"Expected Immediate Mode device created == %p, got %p.\n", d3ddevice1, d3drm_d3ddevice1);
5125 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
5129 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &
desc);
5130 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
5132 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5137 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5139 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
5140 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
5141 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
5144 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
5145 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
5147 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5151 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5153 IDirectDrawSurface_Release(d3drm_ds);
5154 IDirectDrawSurface_Release(
ds);
5155 IDirectDrawSurface_Release(surface);
5159 ok(ref1 == ref2,
"expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
5161 ok(device_ref2 == device_ref1,
"Expected device_ref2 == device_ref1, got device_ref1 = %u, device_ref2 = %u.\n", device_ref1, device_ref2);
5165 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice interface (hr = %#x).\n",
hr);
5173 ok(
SUCCEEDED(
hr),
"Failed to initialise IDirect3DRMDevice interface (hr = %#x)\n",
hr);
5175 ok(ref2 > ref1,
"expected ref2 > ref1, got ref1 = %u , ref2 = %u.\n", ref1, ref2);
5177 ok(device_ref2 > device_ref1,
"Expected device_ref2 > device_ref1, got device_ref1 = %u, device_ref2 = %u.\n",
5178 device_ref1, device_ref2);
5180 ok(d3d_ref2 > d3d_ref1,
"Expected d3d_ref2 > d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5182 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
5184 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
5189 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
5191 ok(ref3 > device_ref2,
"Expected ref3 > device_ref2, got ref3 = %u, device_ref2 = %u.\n", ref3, device_ref2);
5193 ok(ref3 > d3d_ref2,
"Expected ref3 > d3d_ref2, got ref3 = %u, d3d_ref2 = %u.\n", ref3, d3d_ref2);
5200 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDraw interface (hr = %#x).\n",
hr);
5203 hr = IDirectDraw_QueryInterface(temp_ddraw1, &IID_IDirect3D, (
void **)&temp_d3d1);
5204 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3D2 interface (hr = %#x).\n",
hr);
5209 ok(ref3 > ref2,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
5211 ok(ref3 == device_ref2,
"Expected ref3 == device_ref2, got ref3 = %u, device_ref2 = %u.\n", ref3, device_ref2);
5213 todo_wine ok(ref3 < d3d_ref2,
"Expected ref3 < d3d_ref2, got ref3 = %u, d3d_ref2 = %u.\n", ref3, d3d_ref2);
5218 IDirectDrawSurface_Release(surface);
5219 IDirectDraw_Release(temp_ddraw1);
5221 d3ddevice2 = (IDirect3DDevice2 *)0xdeadbeef;
5223 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice2 Interface (hr = %x).\n",
hr);
5226 ok(d3ddevice2 ==
NULL,
"Expected d3ddevice2 == NULL, got %p.\n", d3ddevice2);
5229 d3ddevice2 = (IDirect3DDevice2 *)0xdeadbeef;
5231 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 Interface (hr = %#x).\n",
hr);
5234 ok(d3ddevice2 ==
NULL,
"Expected d3ddevice2 == NULL, got %p.\n", d3ddevice2);
5241 ok(surface ==
NULL,
"No primary surface should have enumerated (%p).\n", surface);
5244 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DDevice interface (hr = %#x).\n",
hr);
5245 ok(d3ddevice1 == d3drm_d3ddevice1,
"Expected Immediate Mode device created == %p, got %p.\n",
5246 d3ddevice1, d3drm_d3ddevice1);
5250 ok(
SUCCEEDED(
hr),
"Cannot get surface to the render target (hr = %#x).\n",
hr);
5254 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &
desc);
5255 ok(
SUCCEEDED(
hr),
"Cannot get surface desc structure (hr = %#x).\n",
hr);
5257 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5262 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5264 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
5265 ok(
SUCCEEDED(
hr),
"Cannot get attached depth surface (hr = %x).\n",
hr);
5266 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
5269 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
5270 ok(
SUCCEEDED(
hr),
"Cannot get z surface desc structure (hr = %#x).\n",
hr);
5272 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5277 ok(
desc.dwFlags == expected_flags,
"Expected %#x for flags, got %#x.\n", expected_flags,
desc.dwFlags);
5279 IDirectDrawSurface_Release(d3drm_ds);
5280 IDirectDrawSurface_Release(
ds);
5281 IDirectDrawSurface_Release(surface);
5285 ok(ref1 == ref2,
"expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n", ref1, ref2);
5287 ok(device_ref2 == device_ref1,
"Expected device_ref2 == device_ref1, got device_ref1 = %u, device_ref2 = %u.\n",
5288 device_ref1, device_ref2);
5290 todo_wine ok(d3d_ref2 > d3d_ref1,
"Expected d3d_ref2 > d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1,
5296 IDirectDraw_Release(ddraw1);
5302 static const DWORD z_depths[] = { 32, 24, 16 };
5303 IDirectDrawSurface *surface;
5315 memset(&surface_desc, 0,
sizeof(surface_desc));
5316 surface_desc.dwSize =
sizeof(surface_desc);
5319 surface_desc.dwWidth = rc.
right;
5320 surface_desc.dwHeight = rc.
bottom;
5322 hr = IDirectDraw2_CreateSurface(
ddraw, &surface_desc, &surface,
NULL);
5325 hr = IDirectDraw2_QueryInterface(
ddraw, &IID_IDirect3D2, (
void **)&d3d);
5328 IDirectDrawSurface_Release(surface);
5338 memset(&surface_desc, 0,
sizeof(surface_desc));
5339 surface_desc.dwSize =
sizeof(surface_desc);
5342 U2(surface_desc).dwZBufferBitDepth = z_depths[
i];
5343 surface_desc.dwWidth = rc.
right;
5344 surface_desc.dwHeight = rc.
bottom;
5348 hr = IDirectDrawSurface_AddAttachedSurface(surface, *
ds);
5352 IDirectDrawSurface_Release(*
ds);
5359 IDirectDrawSurface_DeleteAttachedSurface(surface, 0, *
ds);
5360 IDirectDrawSurface_Release(*
ds);
5365 IDirectDrawSurface_Release(surface);
5371 IDirectDraw *ddraw1 =
NULL, *temp_ddraw1;
5372 IDirectDraw2 *ddraw2 =
NULL, *temp_ddraw2;
5374 IDirect3D2 *d3d2 =
NULL, *temp_d3d2;
5375 IDirect3DRM *d3drm1 =
NULL;
5376 IDirect3DRM2 *d3drm2 =
NULL;
5377 IDirect3DRMDevice *device1;
5378 IDirect3DRMDevice2 *device2 = (IDirect3DRMDevice2 *)0xdeadbeef;
5379 IDirect3DDevice *d3ddevice1;
5380 IDirect3DDevice2 *d3ddevice2 =
NULL, *d3drm_d3ddevice2 =
NULL, *temp_d3ddevice2;
5381 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_ds =
NULL;
5382 DWORD expected_flags, ret_val;
5387 ULONG ref1, ref2, ref3, ref4, ref5, device_ref1, device_ref2, d3d_ref1, d3d_ref2;
5391 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
5396 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirect3D2, (
void **)&d3d2);
5397 ok(
hr ==
DD_OK,
"Cannot get IDirect3D2 interface (hr = %x).\n",
hr);
5398 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirectDraw2, (
void **)&ddraw2);
5399 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw2 interface (hr = %x).\n",
hr);
5404 if (d3ddevice2 ==
NULL)
5406 win_skip(
"Cannot create IM device, skipping tests.\n");
5408 IDirectDraw2_Release(ddraw2);
5409 IDirectDraw_Release(ddraw1);
5415 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
5419 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
5424 ok(device2 ==
NULL,
"Expected device returned == NULL, got %p.\n", device2);
5431 ok(
hr ==
DD_OK,
"Failed to create IDirect3DRMDevice2 interface (hr = %x)\n",
hr);
5433 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
5435 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
5437 ok(device_ref2 > device_ref1,
"Expected device_ref2 > device_ref1, got device_ref1 = %u, device_ref2 = %u.\n", device_ref1, device_ref2);
5439 ok(d3d_ref2 > d3d_ref1,
"Expected d3d_ref2 > d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5441 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
5443 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
5447 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
5448 ok(surface ==
NULL,
"No primary surface should have enumerated (%p).\n", surface);
5451 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
5452 ok(d3ddevice2 == d3drm_d3ddevice2,
"Expected Immediate Mode device created == %p, got %p.\n", d3ddevice2, d3drm_d3ddevice2);
5456 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
5460 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &
desc);
5461 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
5463 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5468 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5470 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
5471 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
5472 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
5475 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
5476 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
5478 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5482 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5484 IDirectDrawSurface_Release(d3drm_ds);
5485 IDirectDrawSurface_Release(
ds);
5486 IDirectDrawSurface_Release(surface);
5490 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
5492 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
5494 ok(device_ref2 == device_ref1,
"Expected device_ref2 == device_ref1, got device_ref1 = %u, device_ref2 = %u.\n", device_ref1, device_ref2);
5496 ok(d3d_ref2 == d3d_ref1,
"Expected d3d_ref2 == d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5500 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice2 interface (hr = %#x).\n",
hr);
5502 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirect3D, (
void **)&d3d1);
5513 ok(
SUCCEEDED(
hr),
"Cannot obtain IDirect3DRMDevice interface (hr = %#x).\n",
hr);
5522 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice2 interface (hr = %#x).\n",
hr);
5534 ok(
SUCCEEDED(
hr),
"Failed to initialise IDirect3DRMDevice2 interface (hr = %#x)\n",
hr);
5536 ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
5538 ok(device_ref2 > device_ref1,
"Expected device_ref2 > device_ref1, got device_ref1 = %u, device_ref2 = %u.\n",
5539 device_ref1, device_ref2);
5541 ok(d3d_ref2 > d3d_ref1,
"Expected d3d_ref2 > d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5543 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
5545 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
5550 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
5552 ok(ref3 > device_ref2,
"Expected ref3 > device_ref2, got ref3 = %u, device_ref2 = %u.\n", ref3, device_ref2);
5554 ok(ref3 > d3d_ref2,
"Expected ref3 > d3d_ref2, got ref3 = %u, d3d_ref2 = %u.\n", ref3, d3d_ref2);
5561 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDraw interface (hr = %#x).\n",
hr);
5562 hr = IDirectDraw_QueryInterface(temp_ddraw1, &IID_IDirect3D2, (
void **)&temp_d3d2);
5563 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3D2 interface (hr = %#x).\n",
hr);
5566 hr = IDirectDraw_QueryInterface(temp_ddraw1, &IID_IDirectDraw2, (
void **)&temp_ddraw2);
5567 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDraw2 interface (hr = %#x).\n",
hr);
5573 ok(ref3 > ref4,
"expected ref3 > ref4, got ref3 = %u , ref4 = %u.\n", ref3, ref4);
5575 ok(ref3 == device_ref2,
"Expected ref3 == device_ref2, got ref3 = %u, device_ref2 = %u.\n", ref3, device_ref2);
5577 ok(ref3 == d3d_ref2,
"Expected ref3 == d3d_ref2, got ref3 = %u, d3d_ref2 = %u.\n", ref3, d3d_ref2);
5582 IDirectDrawSurface_Release(surface);
5583 IDirectDraw2_Release(temp_ddraw2);
5584 IDirectDraw_Release(temp_ddraw1);
5590 ok(surface ==
NULL,
"No primary surface should have enumerated (%p).\n", surface);
5593 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DDevice2 interface (hr = %#x).\n",
hr);
5594 ok(d3ddevice2 == d3drm_d3ddevice2,
"Expected Immediate Mode device created == %p, got %p.\n", d3ddevice2,
5599 ok(
SUCCEEDED(
hr),
"Cannot get surface to the render target (hr = %#x).\n",
hr);
5603 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &
desc);
5604 ok(
SUCCEEDED(
hr),
"Cannot get surface desc structure (hr = %#x).\n",
hr);
5606 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5611 ok(
desc.dwFlags == expected_flags,
"Expected %#x for flags, got %#x.\n", expected_flags,
desc.dwFlags);
5613 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
5614 ok(
SUCCEEDED(
hr),
"Cannot get attached depth surface (hr = %x).\n",
hr);
5615 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
5618 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
5619 ok(
SUCCEEDED(
hr),
"Cannot get z surface desc structure (hr = %x).\n",
hr);
5621 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5626 ok(
desc.dwFlags == expected_flags,
"Expected %#x for flags, got %#x.\n", expected_flags,
desc.dwFlags);
5628 IDirectDrawSurface_Release(d3drm_ds);
5629 IDirectDrawSurface_Release(
ds);
5630 IDirectDrawSurface_Release(surface);
5634 ok(ref1 == ref3,
"Expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
5636 ok(ref3 == ref2,
"Expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
5638 ok(device_ref2 == device_ref1,
"Expected device_ref2 == device_ref1, got device_ref1 = %u, device_ref2 = %u.\n",
5639 device_ref1, device_ref2);
5641 ok(d3d_ref2 == d3d_ref1,
"Expected d3d_ref2 == d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5647 IDirectDraw2_Release(ddraw2);
5648 IDirectDraw_Release(ddraw1);
5654 IDirectDraw *ddraw1 =
NULL, *temp_ddraw1;
5655 IDirectDraw2 *ddraw2 =
NULL, *temp_ddraw2;
5657 IDirect3D2 *d3d2 =
NULL, *temp_d3d2;
5658 IDirect3DRM *d3drm1 =
NULL;
5659 IDirect3DRM3 *d3drm3 =
NULL;
5660 IDirect3DRMDevice *device1;
5661 IDirect3DRMDevice3 *device3 = (IDirect3DRMDevice3 *)0xdeadbeef;
5662 IDirect3DDevice *d3ddevice1;
5663 IDirect3DDevice2 *d3ddevice2 =
NULL, *d3drm_d3ddevice2 =
NULL, *temp_d3ddevice2;
5664 IDirectDrawSurface *surface =
NULL, *
ds =
NULL, *d3drm_ds =
NULL;
5665 DWORD expected_flags, ret_val;
5670 ULONG ref1, ref2, ref3, ref4, ref5, device_ref1, device_ref2, d3d_ref1, d3d_ref2;
5674 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
5679 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirect3D2, (
void **)&d3d2);
5680 ok(
hr ==
DD_OK,
"Cannot get IDirect3D2 interface (hr = %x).\n",
hr);
5681 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirectDraw2, (
void **)&ddraw2);
5682 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw2 interface (hr = %x).\n",
hr);
5687 if (d3ddevice2 ==
NULL)
5689 win_skip(
"Cannot create IM device, skipping tests.\n");
5691 IDirectDraw2_Release(ddraw2);
5692 IDirectDraw_Release(ddraw1);
5698 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
5702 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
5707 ok(device3 ==
NULL,
"Expected device returned == NULL, got %p.\n", device3);
5714 ok(
hr ==
DD_OK,
"Failed to create IDirect3DRMDevice3 interface (hr = %x)\n",
hr);
5716 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
5718 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
5720 ok(device_ref2 > device_ref1,
"Expected device_ref2 > device_ref1, got device_ref1 = %u, device_ref2 = %u.\n", device_ref1, device_ref2);
5722 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
5724 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
5728 ok(
hr ==
DD_OK,
"Failed to enumerate surfaces (hr = %x).\n",
hr);
5729 ok(surface ==
NULL,
"No primary surface should have enumerated (%p).\n", surface);
5732 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DDevice2 interface (hr = %x).\n",
hr);
5733 ok(d3ddevice2 == d3drm_d3ddevice2,
"Expected Immediate Mode device created == %p, got %p.\n", d3ddevice2, d3drm_d3ddevice2);
5737 ok(
hr ==
DD_OK,
"Cannot get surface to the render target (hr = %x).\n",
hr);
5741 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &
desc);
5742 ok(
hr ==
DD_OK,
"Cannot get surface desc structure (hr = %x).\n",
hr);
5744 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5749 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5751 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
5752 ok(
hr ==
DD_OK,
"Cannot get attached depth surface (hr = %x).\n",
hr);
5753 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
5756 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
5757 ok(
hr ==
DD_OK,
"Cannot get z surface desc structure (hr = %x).\n",
hr);
5759 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5763 ok(
desc.dwFlags == expected_flags,
"Expected %x for flags, got %x.\n", expected_flags,
desc.dwFlags);
5765 IDirectDrawSurface_Release(d3drm_ds);
5766 IDirectDrawSurface_Release(
ds);
5767 IDirectDrawSurface_Release(surface);
5771 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
5773 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
5775 ok(device_ref2 == device_ref1,
"Expected device_ref2 == device_ref1, got device_ref1 = %u, device_ref2 = %u.\n", device_ref1, device_ref2);
5777 ok(d3d_ref2 == d3d_ref1,
"Expected d3d_ref2 == d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5781 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %#x).\n",
hr);
5783 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirect3D, (
void **)&d3d1);
5784 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3D interface (hr = %#x).\n",
hr);
5794 ok(
SUCCEEDED(
hr),
"Cannot obtain IDirect3DRMDevice interface (hr = %#x).\n",
hr);
5803 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %#x).\n",
hr);
5815 ok(
SUCCEEDED(
hr),
"Failed to initialise IDirect3DRMDevice2 interface (hr = %#x)\n",
hr);
5817 ok(ref4 > ref1,
"Expected ref4 > ref1, got ref1 = %u , ref4 = %u.\n", ref1, ref4);
5819 ok(device_ref2 > device_ref1,
"Expected device_ref2 > device_ref1, got device_ref1 = %u, device_ref2 = %u.\n",
5820 device_ref1, device_ref2);
5822 ok(d3d_ref2 > d3d_ref1,
"Expected d3d_ref2 > d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5824 ok(ret_val == rc.
right,
"Expected device width = 300, got %u.\n", ret_val);
5826 ok(ret_val == rc.
bottom,
"Expected device height == 200, got %u.\n", ret_val);
5831 ok(ref3 > ref1,
"expected ref3 > ref1, got ref1 = %u , ref3 = %u.\n", ref1, ref3);
5833 ok(ref3 > device_ref2,
"Expected ref3 > device_ref2, got ref3 = %u, device_ref2 = %u.\n", ref3, device_ref2);
5835 ok(ref3 > d3d_ref2,
"Expected ref3 > d3d_ref2, got ref3 = %u, d3d_ref2 = %u.\n", ref3, d3d_ref2);
5842 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDraw interface (hr = %#x).\n",
hr);
5843 hr = IDirectDraw_QueryInterface(temp_ddraw1, &IID_IDirect3D2, (
void **)&temp_d3d2);
5844 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3D2 interface (hr = %#x).\n",
hr);
5847 hr = IDirectDraw_QueryInterface(temp_ddraw1, &IID_IDirectDraw2, (
void **)&temp_ddraw2);
5848 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDraw2 interface (hr = %#x).\n",
hr);
5854 ok(ref3 > ref4,
"expected ref3 > ref4, got ref3 = %u , ref4 = %u.\n", ref3, ref4);
5856 ok(ref3 == device_ref2,
"Expected ref3 == device_ref2, got ref3 = %u, device_ref2 = %u.\n", ref3, device_ref2);
5858 ok(ref3 == d3d_ref2,
"Expected ref3 == d3d_ref2, got ref3 = %u, d3d_ref2 = %u.\n", ref3, d3d_ref2);
5863 IDirectDrawSurface_Release(surface);
5864 IDirectDraw2_Release(temp_ddraw2);
5865 IDirectDraw_Release(temp_ddraw1);
5871 ok(surface ==
NULL,
"No primary surface should have enumerated (%p).\n", surface);
5874 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DDevice2 interface (hr = %#x).\n",
hr);
5875 ok(d3ddevice2 == d3drm_d3ddevice2,
"Expected Immediate Mode device created == %p, got %p.\n", d3ddevice2,
5880 ok(
SUCCEEDED(
hr),
"Cannot get surface to the render target (hr = %#x).\n",
hr);
5884 hr = IDirectDrawSurface_GetSurfaceDesc(surface, &
desc);
5885 ok(
SUCCEEDED(
hr),
"Cannot get surface desc structure (hr = %x).\n",
hr);
5887 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5892 ok(
desc.dwFlags == expected_flags,
"Expected %#x for flags, got %#x.\n", expected_flags,
desc.dwFlags);
5894 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
5895 ok(
SUCCEEDED(
hr),
"Cannot get attached depth surface (hr = %x).\n",
hr);
5896 ok(
ds == d3drm_ds,
"Expected depth surface (%p) == surface created internally (%p).\n",
ds, d3drm_ds);
5899 hr = IDirectDrawSurface_GetSurfaceDesc(
ds, &
desc);
5900 ok(
SUCCEEDED(
hr),
"Cannot get z surface desc structure (hr = %x).\n",
hr);
5902 ok((
desc.dwWidth == rc.
right) && (
desc.dwHeight == rc.
bottom),
"Expected surface dimensions = %u, %u, got %u, %u.\n",
5907 ok(
desc.dwFlags == expected_flags,
"Expected %#x for flags, got %#x.\n", expected_flags,
desc.dwFlags);
5909 IDirectDrawSurface_Release(d3drm_ds);
5910 IDirectDrawSurface_Release(
ds);
5911 IDirectDrawSurface_Release(surface);
5915 ok(ref1 == ref3,
"expected ref1 == ref3, got ref1 = %u, ref3 = %u.\n", ref1, ref3);
5917 ok(ref3 == ref2,
"expected ref3 == ref2, got ref2 = %u , ref3 = %u.\n", ref2, ref3);
5919 ok(device_ref2 == device_ref1,
"Expected device_ref2 == device_ref1, got device_ref1 = %u, device_ref2 = %u.\n",
5920 device_ref1, device_ref2);
5922 ok(d3d_ref2 == d3d_ref1,
"Expected d3d_ref2 == d3d_ref1, got d3d_ref1 = %u, d3d_ref2 = %u.\n", d3d_ref1, d3d_ref2);
5928 IDirectDraw2_Release(ddraw2);
5929 IDirectDraw_Release(ddraw1);
5936 IDirect3DRMDevice *
device = (IDirect3DRMDevice *)0xdeadbeef;
5940 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
5954 IDirect3DRM2 *d3drm2 =
NULL;
5955 IDirect3DRMDevice2 *device2 = (IDirect3DRMDevice2 *)0xdeadbeef;
5959 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
5961 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
5965 ok(device2 ==
NULL,
"Expected device returned == NULL, got %p.\n", device2);
5976 IDirect3DRM3 *d3drm3 =
NULL;
5977 IDirect3DRMDevice3 *device3 = (IDirect3DRMDevice3 *)0xdeadbeef;
5981 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
5983 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
5987 ok(device3 ==
NULL,
"Expected device returned == NULL, got %p.\n", device3);
5997 unsigned int bpp = palettized ? 8 : 24;
6008 ok(
ret,
"Failed to get temporary file path.\n");
6011 ok(
ret,
"Failed to get filename.\n");
6022 ok(
ret && written ==
sizeof(
file_header),
"Failed to write file header.\n");
6025 info->bmiHeader.biSize =
sizeof(
info->bmiHeader);
6026 info->bmiHeader.biBitCount =
bpp;
6027 info->bmiHeader.biPlanes = 1;
6028 info->bmiHeader.biWidth =
w;
6029 info->bmiHeader.biHeight =
h;
6033 for (
i = 0;
i < 256; ++
i)
6035 info->bmiColors[
i].rgbBlue =
i;
6036 info->bmiColors[
i].rgbGreen =
i;
6037 info->bmiColors[
i].rgbRed =
i;
6041 ok(
ret && written ==
size,
"Failed to write bitmap info.\n");
6061 ok(
ret && written ==
size,
"Failed to write bitmap data.\n");
6070 BOOL upside_down,
unsigned int w,
unsigned int h,
BOOL palettized)
6072 const unsigned char *
data =
img->buffer1;
6075 ok(
img->width ==
w,
"Test %u: Got unexpected image width %u, expected %u.\n", test_idx,
img->width,
w);
6076 ok(
img->height ==
h,
"Test %u: Got unexpected image height %u, expected %u.\n", test_idx,
img->height,
h);
6077 ok(
img->aspectx == 1,
"Test %u: Got unexpected image aspectx %u.\n", test_idx,
img->aspectx);
6078 ok(
img->aspecty == 1,
"Test %u: Got unexpected image aspecty %u.\n", test_idx,
img->aspecty);
6079 ok(!
img->buffer2,
"Test %u: Got unexpected image buffer2 %p.\n", test_idx,
img->buffer2);
6082 if (
w *
h > 256 && !palettized)
6086 ok(
img->depth == 32,
"Test %u: Got unexpected image depth %u.\n", test_idx,
img->depth);
6087 ok(
img->rgb ==
TRUE,
"Test %u: Got unexpected image rgb %#x.\n", test_idx,
img->rgb);
6088 ok(
img->bytes_per_line ==
w * 4,
"Test %u: Got unexpected image bytes per line %u, expected %u.\n",
6089 test_idx,
img->bytes_per_line,
w * 4);
6090 ok(
img->red_mask == 0xff0000,
"Test %u: Got unexpected image red mask %#x.\n", test_idx,
img->red_mask);
6091 ok(
img->green_mask == 0x00ff00,
"Test %u: Got unexpected image green mask %#x.\n", test_idx,
img->green_mask);
6092 ok(
img->blue_mask == 0x0000ff,
"Test %u: Got unexpected image blue mask %#x.\n", test_idx,
img->blue_mask);
6093 ok(!
img->alpha_mask,
"Test %u: Got unexpected image alpha mask %#x.\n", test_idx,
img->alpha_mask);
6094 ok(!
img->palette_size,
"Test %u: Got unexpected palette size %u.\n", test_idx,
img->palette_size);
6095 ok(!
img->palette,
"Test %u: Got unexpected image palette %p.\n", test_idx,
img->palette);
6096 for (
i = 0;
i <
h; ++
i)
6098 for (
j = 0;
j <
w; ++
j)
6100 const unsigned char *
ptr = &
data[
i *
img->bytes_per_line +
j * 4];
6101 unsigned int idx = upside_down ? (
h - 1 -
i) *
w +
j :
i *
w +
j;
6105 ok(0,
"Test %u: Got unexpected color 0x%02x%02x%02x%02x at position %u, %u, "
6106 "expected 0x%02x%02x%02x%02x.\n", test_idx,
ptr[0],
ptr[1],
ptr[2],
ptr[3],
6115 ok(
img->depth == 8,
"Test %u: Got unexpected image depth %u.\n", test_idx,
img->depth);
6116 ok(!
img->rgb,
"Test %u: Got unexpected image rgb %#x.\n", test_idx,
img->rgb);
6117 ok(
img->red_mask == 0xff,
"Test %u: Got unexpected image red mask %#x.\n", test_idx,
img->red_mask);
6118 ok(
img->green_mask == 0xff,
"Test %u: Got unexpected image green mask %#x.\n", test_idx,
img->green_mask);
6119 ok(
img->blue_mask == 0xff,
"Test %u: Got unexpected image blue mask %#x.\n", test_idx,
img->blue_mask);
6120 ok(!
img->alpha_mask,
"Test %u: Got unexpected image alpha mask %#x.\n", test_idx,
img->alpha_mask);
6121 ok(!!
img->palette,
"Test %u: Got unexpected image palette %p.\n", test_idx,
img->palette);
6126 ok(
img->bytes_per_line == ((
w + 3) & ~3),
"Test %u: Got unexpected image bytes per line %u, expected %u.\n",
6127 test_idx,
img->bytes_per_line, (
w + 3) & ~3);
6128 ok(
img->palette_size ==
w *
h,
"Test %u: Got unexpected palette size %u, expected %u.\n",
6129 test_idx,
img->palette_size,
w *
h);
6130 for (
i = 0;
i <
img->palette_size; ++
i)
6132 unsigned int idx = upside_down ? (
h - 1) *
w -
i + (
i %
w) * 2 :
i;
6134 &&
img->palette[
i].green ==
idx % 239 &&
img->palette[
i].blue ==
idx % 247,
6135 "Test %u: Got unexpected palette entry (%u) color 0x%02x%02x%02x.\n",
6136 test_idx,
i,
img->palette[
i].red,
img->palette[
i].green,
img->palette[
i].blue);
6138 "Test %u: Got unexpected palette entry (%u) flags %#x.\n",
6139 test_idx,
i,
img->palette[
i].flags);
6141 for (
i = 0;
i <
h; ++
i)
6143 for (
j = 0;
j <
w; ++
j)
6147 ok(0,
"Test %u: Got unexpected color 0x%02x at position %u, %u, expected 0x%02x.\n",
6158 ok(
img->bytes_per_line ==
w,
"Test %u: Got unexpected image bytes per line %u, expected %u.\n",
6159 test_idx,
img->bytes_per_line,
w);
6160 ok(
img->palette_size == 256,
"Test %u: Got unexpected palette size %u.\n", test_idx,
img->palette_size);
6161 for (
i = 0;
i < 256; ++
i)
6163 ok(
img->palette[
i].red ==
i &&
img->palette[
i].green ==
i &&
img->palette[
i].blue ==
i,
6164 "Test %u: Got unexpected palette entry (%u) color 0x%02x%02x%02x.\n",
6165 test_idx,
i,
img->palette[
i].red,
img->palette[
i].green,
img->palette[
i].blue);
6167 "Test %u: Got unexpected palette entry (%u) flags %#x.\n",
6168 test_idx,
i,
img->palette[
i].flags);
6170 for (
i = 0;
i <
h; ++
i)
6172 for (
j = 0;
j <
w; ++
j)
6174 unsigned int idx = upside_down ? (
h - 1 -
i) *
w +
j :
i *
w +
j;
6177 ok(0,
"Test %u: Got unexpected color 0x%02x at position %u, %u, expected 0x%02x.\n",
6187 IDirect3DRMTexture3 *texture3;
6188 IDirect3DRMTexture2 *texture2;
6189 IDirect3DRMTexture *texture1;
6191 IDirect3DRM3 *d3drm3;
6192 IDirect3DRM2 *d3drm2;
6193 IDirect3DRM *d3drm1;
6216 ok(
hr ==
D3DRM_OK,
"Failed to create IDirect3DRM object, hr %#x.\n",
hr);
6218 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRM2 interface, hr %#x.\n",
hr);
6220 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRM3 interface, hr %#x.\n",
hr);
6224 texture1 = (IDirect3DRMTexture *)0xdeadbeef;
6227 ok(!texture1,
"Got unexpected texture %p.\n", texture1);
6228 texture1 = (IDirect3DRMTexture *)0xdeadbeef;
6231 ok(!texture1,
"Got unexpected texture %p.\n", texture1);
6235 texture2 = (IDirect3DRMTexture2 *)0xdeadbeef;
6238 ok(!texture2,
"Got unexpected texture %p.\n", texture2);
6239 texture2 = (IDirect3DRMTexture2 *)0xdeadbeef;
6242 ok(!texture2,
"Got unexpected texture %p.\n", texture2);
6246 texture3 = (IDirect3DRMTexture3 *)0xdeadbeef;
6249 ok(!texture3,
"Got unexpected texture %p.\n", texture3);
6250 texture3 = (IDirect3DRMTexture3 *)0xdeadbeef;
6253 ok(!texture3,
"Got unexpected texture %p.\n", texture3);
6264 ok(ref2 > ref1,
"Test %u: expected ref2 > ref1, got ref1 %u, ref2 %u.\n",
i, ref1, ref2);
6271 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6275 ok(ref1 == ref2,
"Test %u: expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
6277 NULL, &IID_IDirect3DRMTexture, (
void **)&texture1);
6284 ok(
SUCCEEDED(
hr),
"Test %u: Failed to initialise texture from file, hr %#x.\n",
i,
hr);
6286 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6293 ok(ref2 > ref1,
"Test %u: expected ref2 > ref1, got ref1 %u, ref2 %u.\n",
i, ref1, ref2);
6299 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6303 ok(ref1 == ref2,
"Test %u: expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
6305 NULL, &IID_IDirect3DRMTexture2, (
void **)&texture2);
6312 ok(
SUCCEEDED(
hr),
"Test %u: Failed to initialise texture from file, hr %#x.\n",
i,
hr);
6314 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6321 ok(ref2 > ref1,
"Test %u: expected ref2 > ref1, got ref1 %u, ref2 %u.\n",
i, ref1, ref2);
6327 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6332 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRMTexture interface, hr %#x.\n",
hr);
6334 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6339 ok(ref1 == ref2,
"Test %u: expected ref1 == ref2, got ref1 = %u, ref2 = %u.\n",
i, ref1, ref2);
6342 NULL, &IID_IDirect3DRMTexture3, (
void **)&texture3);
6349 ok(
SUCCEEDED(
hr),
"Test %u: Failed to initialize texture from file, hr %#x.\n",
i,
hr);
6351 ok(!!d3drm_img,
"Test %u: Failed to get image.\n",
i);
6356 ok(
ret,
"Test %u: Failed to delete bitmap \"%s\".\n",
i,
filename);
6391 { &IID_IDirect3DRMTexture2, &
IID_IUnknown, &IID_IDirect3DRMTexture2,
S_OK },
6392 { &IID_IDirect3DRMTexture3, &
IID_IUnknown, &IID_IDirect3DRMTexture3,
S_OK },
6439 IDirect3DRM *d3drm1;
6440 IDirect3DRM2 *d3drm2;
6441 IDirect3DRM3 *d3drm3;
6442 IDirect3DRMTexture *texture1;
6443 IDirect3DRMTexture2 *texture2;
6444 IDirect3DRMTexture3 *texture3;
6450 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %#x)\n",
hr);
6454 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture interface (hr = %#x)\n",
hr);
6456 ok(
SUCCEEDED(
hr),
"Cannot get IUnknown interface from IDirect3DRMTexture (hr = %#x)\n",
hr);
6462 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %#x).\n",
hr);
6466 ok(
SUCCEEDED(
hr),
"Cannot get IUnknown interface from IDirect3DRMTexture2 (hr = %#x)\n",
hr);
6472 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %#x).\n",
hr);
6475 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
6477 ok(
SUCCEEDED(
hr),
"Cannot get IUnknown interface from IDirect3DRMTexture3 (hr = %#x)\n",
hr);
6492 IDirect3DRM *d3drm1;
6493 IDirect3DRM2 *d3drm2;
6494 IDirect3DRM3 *d3drm3;
6495 IDirect3DRMFrame *frame1, *camera1;
6496 IDirect3DRMFrame3 *frame3, *camera3;
6497 IDirect3DRMDevice *device1;
6498 IDirect3DRMDevice3 *device3;
6499 IDirectDrawClipper *clipper;
6500 IDirect3DRMViewport *viewport1;
6501 IDirect3DRMViewport2 *viewport2;
6516 { &IID_IDirect3DRMViewport, &
IID_IUnknown, &IID_IDirect3DRMViewport,
S_OK },
6517 { &IID_IDirect3DRMViewport2, &
IID_IUnknown, &IID_IDirect3DRMViewport2,
S_OK },
6579 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDrawClipper interface (hr = %#x).\n",
hr);
6582 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %#x).\n",
hr);
6585 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice interface (hr = %#x).\n",
hr);
6587 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame interface (hr = %#x)\n",
hr);
6589 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame interface (hr = %#x)\n",
hr);
6591 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport interface (hr = %#x)\n",
hr);
6599 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %#x).\n",
hr);
6601 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport interface (hr = %#x)\n",
hr);
6612 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %#x).\n",
hr);
6614 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMDevice3 interface (hr = %#x).\n",
hr);
6616 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame3 interface (hr = %#x)\n",
hr);
6618 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame3 interface (hr = %#x)\n",
hr);
6620 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport2 interface (hr = %#x)\n",
hr);
6630 IDirectDrawClipper_Release(clipper);
6643 memset(&surface_desc, 0,
sizeof(surface_desc));
6644 surface_desc.dwSize =
sizeof(surface_desc);
6651 color = *((
DWORD *)surface_desc.lpSurface) & 0x00ffffff;
6653 hr = IDirectDrawSurface_Unlock(surface,
NULL);
6661 IDirectDrawSurface *surface;
6672 memset(&surface_desc, 0,
sizeof(surface_desc));
6673 surface_desc.dwSize =
sizeof(surface_desc);
6676 surface_desc.dwWidth = rc.
right;
6677 surface_desc.dwHeight = rc.
bottom;
6679 hr = IDirectDraw2_CreateSurface(
ddraw, &surface_desc, &surface,
NULL);
6682 hr = IDirectDraw2_QueryInterface(
ddraw, &IID_IDirect3D2, (
void **)&d3d);
6685 IDirectDrawSurface_Release(surface);
6692 IDirectDrawSurface_Release(surface);
6698 if ((c1 & 0xff) - (c2 & 0xff) > max_diff)
return FALSE;
6700 if ((c1 & 0xff) - (c2 & 0xff) > max_diff)
return FALSE;
6702 if ((c1 & 0xff) - (c2 & 0xff) > max_diff)
return FALSE;
6704 if ((c1 & 0xff) - (c2 & 0xff) > max_diff)
return FALSE;
6714 fx.dwSize =
sizeof(
fx);
6726 memset(&exec_data, 0,
sizeof(exec_data));
6727 exec_data.
dwSize =
sizeof(exec_data);
6741 inst->
bSize =
sizeof(*ts);
6744 U1(*ts).dtstTransformStateType =
state;
6756 inst->
bSize =
sizeof(*rs);
6759 U1(*rs).drstRenderStateType =
state;
6771 inst->
bSize =
sizeof(*pv);
6789 inst->
bSize =
sizeof(*tri);
6792 U1(*tri).v1 = base_idx;
6793 U2(*tri).v2 = base_idx + 1;
6794 U3(*tri).v3 = base_idx + 2;
6798 U1(*tri).v1 = base_idx + 2;
6799 U2(*tri).v2 = base_idx + 1;
6800 U3(*tri).v3 = base_idx + 3;
6820 IDirect3DExecuteBuffer *execute_buffer;
6828 1.0f, 0.0f, 0.0f, 0.0f,
6829 0.0f, 1.0f, 0.0f, 0.0f,
6830 0.0f, 0.0f, 1.0f, 0.0f,
6831 0.0f, 0.0f, 0.0f, 1.0f,
6835 {{-1.0f}, {-1.0f}, {0.00f}, 0, {0xffbada55}, {0}, {0.0f}, {0.0f}},
6836 {{-1.0f}, { 1.0f}, {0.00f}, 0, {0xffbada55}, {0}, {0.0f}, {0.0f}},
6837 {{ 1.0f}, {-1.0f}, {1.00f}, 0, {0xffbada55}, {0}, {0.0f}, {0.0f}},
6838 {{ 1.0f}, { 1.0f}, {1.00f}, 0, {0xffbada55}, {0}, {0.0f}, {0.0f}},
6842 ok(
hr ==
D3D_OK,
"Creating a matrix object failed, hr %#x.\n",
hr);
6844 ok(
hr ==
D3D_OK,
"Setting a matrix object failed, hr %#x.\n",
hr);
6846 ok(
hr ==
D3D_OK,
"Creating a matrix object failed, hr %#x.\n",
hr);
6848 ok(
hr ==
D3D_OK,
"Setting a matrix object failed, hr %#x.\n",
hr);
6850 ok(
hr ==
D3D_OK,
"Creating a matrix object failed, hr %#x.\n",
hr);
6852 ok(
hr ==
D3D_OK,
"Setting a matrix object failed, hr %#x.\n",
hr);
6854 memset(&exec_desc, 0,
sizeof(exec_desc));
6855 exec_desc.
dwSize =
sizeof(exec_desc);
6866 memcpy(exec_desc.
lpData, quad_strip,
sizeof(quad_strip));
6882 inst_length -=
sizeof(quad_strip);
6901 IDirectDrawClipper *clipper;
6902 IDirect3DRM *d3drm1;
6903 IDirect3DRMFrame *frame1, *camera1;
6904 IDirect3DRMDevice *device1;
6906 IDirect3DRMViewport *viewport1;
6907 IDirect3DDevice *d3d_device1;
6908 IDirectDrawSurface *surface, *
ds, *d3drm_ds;
6919 ok(
SUCCEEDED(
hr),
"Cannot create IDirectDraw interface (hr = %#x).\n",
hr);
6922 ok(
SUCCEEDED(
hr),
"Failed to set cooperative level (hr = %#x).\n",
hr);
6924 hr = IDirectDraw_CreateClipper(
ddraw, 0, &clipper,
NULL);
6927 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
6931 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %#x).\n",
hr);
6934 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMDevice interface (hr = %#x)\n",
hr);
6937 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame interface (hr = %#x)\n",
hr);
6939 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame interface (hr = %#x)\n",
hr);
6943 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport2 interface (hr = %#x)\n",
hr);
6947 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DDevice interface (hr = %#x).\n",
hr);
6949 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
6952 ok(
SUCCEEDED(
hr),
"Cannot get surface to the render target (hr = %#x).\n",
hr);
6955 ok(
compare_color(ret_color, 0, 1),
"Got unexpected color 0x%08x.\n", ret_color);
6959 ok(
SUCCEEDED(
hr),
"Cannot set scene background RGB (hr = %#x)\n",
hr);
6961 ok(ret_color == 0xffffffff,
"Expected scene color returned == 0xffffffff, got %#x.\n", ret_color);
6963 ok(
SUCCEEDED(
hr),
"Cannot set scene background RGB (hr = %#x)\n",
hr);
6965 ok(ret_color == 0xff00ff00,
"Expected scene color returned == 0xff00ff00, got %#x.\n", ret_color);
6971 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
6975 ok(
SUCCEEDED(
hr),
"Cannot set scene background RGB (hr = %#x)\n",
hr);
6977 ok(ret_color == 0xff0000ff,
"Expected scene color returned == 0xff00ff00, got %#x.\n", ret_color);
6984 ok(
compare_color(ret_color, 0x000000ff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
6989 ok(
compare_color(ret_color, 0x00bada55, 1),
"Got unexpected color 0x%08x.\n", ret_color);
6991 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
6992 ok(
SUCCEEDED(
hr),
"Cannot get attached depth surface (hr = %x).\n",
hr);
6999 ok(
compare_color(ret_color, 0x000000ff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7007 ok(
compare_color(ret_color, 0x00bada55, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7010 ok(
compare_color(ret_color, 0x000000ff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7013 hr = IDirectDrawSurface_DeleteAttachedSurface(surface, 0,
ds);
7014 ok(
SUCCEEDED(
hr),
"Cannot delete attached surface (hr = %#x).\n",
hr);
7015 d3drm_ds = (IDirectDrawSurface *)0xdeadbeef;
7016 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
7018 ok(d3drm_ds ==
NULL,
"Expected NULL z-surface, got %p.\n", d3drm_ds);
7027 ok(
compare_color(ret_color, 0x000000ff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7029 hr = IDirectDrawSurface_AddAttachedSurface(surface,
ds);
7031 IDirectDrawSurface_Release(
ds);
7036 ok(
compare_color(ret_color, 0x00bada55, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7038 ok(
compare_color(ret_color, 0x000000ff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7041 IDirectDrawSurface_Release(surface);
7048 IDirectDrawClipper_Release(clipper);
7049 IDirectDraw_Release(
ddraw);
7057 {{-1.0f}, {-1.0f}, {0.0f}, 0, {0xffbada55}, {0}, {0.0f}, {0.0f}},
7058 {{-1.0f}, { 1.0f}, {0.0f}, 0, {0xffbada55}, {0}, {0.0f}, {1.0f}},
7059 {{ 1.0f}, {-1.0f}, {1.0f}, 0, {0xffbada55}, {0}, {1.0f}, {0.0f}},
7060 {{ 1.0f}, { 1.0f}, {1.0f}, 0, {0xffbada55}, {0}, {1.0f}, {1.0f}},
7064 1.0f, 0.0f, 0.0f, 0.0f,
7065 0.0f, 1.0f, 0.0f, 0.0f,
7066 0.0f, 0.0f, 1.0f, 0.0f,
7067 0.0f, 0.0f, 0.0f, 1.0f,
7069 IDirect3DViewport2 *viewport2;
7077 ok(
SUCCEEDED(
hr),
"Failed to set projection transform, hr %#x.\n",
hr);
7080 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport2 interface (hr = %#x).\n",
hr);
7102 IDirectDraw *ddraw1;
7103 IDirectDraw2 *ddraw2;
7104 IDirectDrawClipper *clipper;
7105 IDirect3DRM *d3drm1;
7106 IDirect3DRM3 *d3drm3;
7107 IDirect3DRMFrame3 *frame3, *camera3;
7108 IDirect3DRMDevice3 *device3;
7110 IDirect3DRMViewport2 *viewport2;
7111 IDirect3DDevice2 *d3d_device2;
7112 IDirectDrawSurface *surface, *
ds, *d3drm_ds;
7123 ok(
SUCCEEDED(
hr),
"Cannot create IDirectDraw interface (hr = %#x).\n",
hr);
7126 ok(
SUCCEEDED(
hr),
"Failed to set cooperative level (hr = %#x).\n",
hr);
7128 hr = IDirectDraw_CreateClipper(ddraw1, 0, &clipper,
NULL);
7131 hr = IDirectDrawClipper_SetHWnd(clipper, 0,
window);
7135 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM interface (hr = %#x).\n",
hr);
7138 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %#x).\n",
hr);
7141 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRMDevice3 interface (hr = %#x)\n",
hr);
7144 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame3 interface (hr = %#x)\n",
hr);
7146 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMFrame3 interface (hr = %#x)\n",
hr);
7150 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport2 interface (hr = %#x)\n",
hr);
7154 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DDevice2 interface (hr = %#x).\n",
hr);
7157 ok(
SUCCEEDED(
hr),
"Cannot get surface to the render target (hr = %#x).\n",
hr);
7160 ok(
compare_color(ret_color, 0, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7164 ok(
SUCCEEDED(
hr),
"Cannot set scene background RGB (hr = %#x)\n",
hr);
7166 ok(ret_color == 0xffffffff,
"Expected scene color returned == 0xffffffff, got %#x.\n", ret_color);
7168 ok(
SUCCEEDED(
hr),
"Cannot set scene background RGB (hr = %#x)\n",
hr);
7170 ok(ret_color == 0xff00ff00,
"Expected scene color returned == 0xff00ff00, got %#x.\n", ret_color);
7176 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7180 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DViewport interface (hr = %#x).\n",
hr);
7192 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7197 ok(
compare_color(ret_color, 0x00bada55, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7211 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7214 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &
ds);
7215 ok(
SUCCEEDED(
hr),
"Cannot get attached depth surface (hr = %x).\n",
hr);
7221 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7223 hr = IDirectDrawSurface_DeleteAttachedSurface(surface, 0,
ds);
7224 ok(
SUCCEEDED(
hr),
"Cannot delete attached surface (hr = %#x).\n",
hr);
7225 d3drm_ds = (IDirectDrawSurface *)0xdeadbeef;
7226 hr = IDirectDrawSurface_GetAttachedSurface(surface, &caps, &d3drm_ds);
7228 ok(d3drm_ds ==
NULL,
"Expected NULL z-surface, got %p.\n", d3drm_ds);
7238 hr = IDirectDrawSurface_AddAttachedSurface(surface,
ds);
7241 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7245 ok(
compare_color(ret_color, 0x00bada55, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7262 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7265 IDirectDrawSurface_Release(surface);
7266 IDirectDrawSurface_Release(
ds);
7272 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirectDraw2, (
void **)&ddraw2);
7273 ok(
SUCCEEDED(
hr),
"Cannot get IDirectDraw2 interface (hr = %#x).\n",
hr);
7274 hr = IDirectDraw_QueryInterface(ddraw1, &IID_IDirect3D2, (
void **)&d3d2);
7275 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3D2 interface (hr = %x).\n",
hr);
7281 ok(
SUCCEEDED(
hr),
"Failed to create IDirect3DRMDevice interface (hr = %#x)\n",
hr);
7284 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMViewport2 interface (hr = %#x)\n",
hr);
7286 ok(
SUCCEEDED(
hr),
"Cannot get surface to the render target (hr = %#x).\n",
hr);
7291 ok(
compare_color(ret_color, 0x00ffffff, 1),
"Got unexpected color 0x%08x.\n", ret_color);
7296 IDirectDrawSurface_Release(surface);
7306 IDirectDrawClipper_Release(clipper);
7308 IDirectDraw2_Release(ddraw2);
7309 IDirectDraw_Release(ddraw1);
7319 0x000000ff, 0x0000ff00, 0x00ff0000, 0, 0,
NULL
7321 IDirectDrawSurface *surface =
NULL, *surface2 =
NULL, *
ds =
NULL;
7322 IDirect3DRMTexture *texture1;
7323 IDirect3DRMTexture2 *texture2;
7324 IDirect3DRMTexture3 *texture3;
7326 IDirect3DRM *d3drm1 =
NULL;
7327 IDirect3DRM2 *d3drm2 =
NULL;
7328 IDirect3DRM3 *d3drm3 =
NULL;
7329 ULONG ref1, ref2, ref3;
7337 ok(
hr ==
DD_OK,
"Cannot get IDirectDraw interface (hr = %x).\n",
hr);
7346 ok(
hr ==
D3DRM_OK,
"Cannot get IDirect3DRM interface (hr = %x).\n",
hr);
7349 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM2 interface (hr = %x).\n",
hr);
7352 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRM3 interface (hr = %x).\n",
hr);
7369 texture1 = (IDirect3DRMTexture *)0xdeadbeef;
7372 ok(!texture1,
"Expected texture returned == NULL, got %p.\n", texture1);
7377 texture2 = (IDirect3DRMTexture2 *)0xdeadbeef;
7380 ok(!texture2,
"Expected texture returned == NULL, got %p.\n", texture2);
7385 texture3 = (IDirect3DRMTexture3 *)0xdeadbeef;
7388 ok(!texture3,
"Expected texture returned == NULL, got %p.\n", texture3);
7426 ok(
ds == surface,
"Expected same surface back.\n");
7427 IDirectDrawSurface_Release(
ds);
7439 ok(
ds == surface,
"Expected same surface back.\n");
7440 IDirectDrawSurface_Release(
ds);
7457 ok(
SUCCEEDED(
hr),
"Cannot get IDirect3DRMTexture3 interface (hr = %#x)\n",
hr);
7471 IDirectDrawSurface_Release(surface2);
7472 IDirectDrawSurface_Release(surface);
7476 IDirectDraw_Release(
ddraw);
7481 IDirect3DRMAnimation2 *animation2;
7482 IDirect3DRMAnimation *animation;
7484 IDirect3DRMObject *
obj, *obj2;
7486 IDirect3DRMFrame3 *frame3;
7487 IDirect3DRMFrame *frame;
7489 IDirect3DRM *d3drm1;
7496 ok(
SUCCEEDED(
hr),
"Failed to create IDirect3DRM instance, hr 0x%08x.\n",
hr);
7509 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRMAnimation2, hr 0x%08x.\n",
hr);
7510 ok(animation != (
void *)animation2,
"Expected different interface pointer.\n");
7513 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRMObject, hr 0x%08x.\n",
hr);
7516 ok(
SUCCEEDED(
hr),
"Failed to get IDirect3DRMObject, hr 0x%08x.\n",
hr);
7518 ok(
obj == obj2 &&
obj == (IDirect3DRMObject *)animation,
"Unexpected object pointer.\n");
7540 ok(frame3 != (
void *)frame,
"Unexpected interface pointer.\n");
7562 "Unexpected default options %#x.\n",
options);
7570 "Unexpected default options %#x.\n",
options);
7584 "Unexpected default options %#x.\n",
options);
7637 memset(keys, 0,
sizeof(keys));
7650 ok(keys[1].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[1].dvTime);
7651 ok(keys[2].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[2].dvTime);
7652 ok(keys[3].dvTime == 80.0f,
"Unexpected key time %.8e.\n", keys[3].dvTime);
7653 ok(keys[4].dvTime == 99.0f,
"Unexpected key time %.8e.\n", keys[4].dvTime);
7656 ok(keys[1].dvPositionKey.x == 1.0f,
"Unexpected key position x %.8e.\n", keys[1].
dvPositionKey.
x);
7657 ok(keys[2].dvPositionKey.x == 2.0f,
"Unexpected key position x %.8e.\n", keys[2].
dvPositionKey.
x);
7658 ok(keys[3].dvPositionKey.x == 4.0f,
"Unexpected key position x %.8e.\n", keys[3].
dvPositionKey.
x);
7659 ok(keys[4].dvPositionKey.x == 3.0f,
"Unexpected key position x %.8e.\n", keys[4].
dvPositionKey.
x);
7663 ok(keys[
i].
dwSize ==
sizeof(*keys),
"%u: unexpected dwSize value %u.\n",
i, keys[
i].
dwSize);
7667 switch (keys[
i].dwKeyType)
7670 ok((keys[
i].dwID & 0xf0000000) == 0x40000000,
"%u: unexpected id mask %#x.\n",
i, keys[
i].dwID);
7673 ok((keys[
i].dwID & 0xf0000000) == 0x80000000,
"%u: unexpected id mask %#x.\n",
i, keys[
i].dwID);
7676 ok((keys[
i].dwID & 0xf0000000) == 0xc0000000,
"%u: unexpected id mask %#x.\n",
i, keys[
i].dwID);
7679 ok(0,
"%u: unknown key type %d.\n",
i, keys[
i].dwKeyType);
7727 key.dwSize =
sizeof(
key) - 1;
7733 key.dwSize =
sizeof(
key) + 1;
7739 key.dwSize =
sizeof(
key);
7741 key.dvPositionKey.x = 8.0f;
7753 memset(keys, 0,
sizeof(keys));
7768 ok(keys[0].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[0].dvTime);
7769 ok(keys[1].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[1].dvTime);
7770 ok(keys[2].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[2].dvTime);
7771 ok(keys[3].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[3].dvTime);
7772 ok(keys[4].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[4].dvTime);
7773 ok(keys[5].dvTime == 80.0f,
"Unexpected key time %.8e.\n", keys[5].dvTime);
7774 ok(keys[6].dvTime == 99.0f,
"Unexpected key time %.8e.\n", keys[6].dvTime);
7775 ok(keys[7].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[7].dvTime);
7776 ok(keys[8].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[8].dvTime);
7789 memset(keys, 0,
sizeof(keys));
7801 ok(keys[0].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[0].dvTime);
7802 ok(keys[1].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[1].dvTime);
7803 ok(keys[2].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[2].dvTime);
7804 ok(keys[3].dvTime == 80.0f,
"Unexpected key time %.8e.\n", keys[3].dvTime);
7805 ok(keys[4].dvTime == 99.0f,
"Unexpected key time %.8e.\n", keys[4].dvTime);
7806 ok(keys[5].dvTime == 0.0f,
"Unexpected key time %.8e.\n", keys[5].dvTime);
7826 { &IID_IDirect3DRMAnimation2, &
IID_IUnknown, &IID_IDirect3DRMAnimation2,
S_OK },
7827 { &IID_IDirect3DRMAnimation, &
IID_IUnknown, &IID_IDirect3DRMAnimation,
S_OK },
7830 { &IID_IDirect3DRMObject, &
IID_IUnknown, &IID_IDirect3DRMAnimation,
S_OK },
7890 IDirect3DRMAnimation2 *animation2;
7891 IDirect3DRMAnimation *animation;
7892 IDirect3DRM3 *d3drm3;
7893 IDirect3DRM *d3drm1;
7904 ok(
SUCCEEDED(
hr),
"Failed to get IUnknown from animation, hr %#x.\n",
hr);
7917 ok(
SUCCEEDED(
hr),
"Failed to get IUnknown from animation, hr %#x.\n",
hr);
7929 IDirect3DRMWrap *
wrap;
7930 IDirect3DRM *d3drm1;
7934 ok(
SUCCEEDED(
hr),
"Failed to create IDirect3DRM instance, hr %#x.\n",
hr);
8014 IDirect3DRMWrap *
wrap;
8015 IDirect3DRM *d3drm1;
8026 ok(
SUCCEEDED(
hr),
"Failed to get IUnknown from wrap (hr = %#x)\n",
hr);
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
#define IDirect3DExecuteBuffer_SetExecuteData(p, a)
#define IDirect3DDevice2_SetCurrentViewport(p, a)
#define D3DERR_SCENE_IN_SCENE
#define IDirect3DDevice_Execute(p, a, b, c)
#define IDirect3D2_CreateDevice(p, a, b, c)
#define IDirect3DDevice_SetMatrix(p, a, b)
#define IDirect3DExecuteBuffer_Release(p)
#define IDirect3DDevice2_QueryInterface(p, a, b)
#define IDirect3DDevice2_BeginScene(p)
#define IDirect3DExecuteBuffer_Lock(p, a)
#define IDirect3DExecuteBuffer_Unlock(p)
#define IDirect3DViewport_GetViewport(p, a)
#define IDirect3D_Release(p)
#define IDirect3DDevice_CreateExecuteBuffer(p, a, b, c)
#define IDirect3DDevice_BeginScene(p)
#define IDirect3DViewport_Release(p)
#define IDirect3DDevice_EndScene(p)
#define IDirect3DViewport2_Release(p)
#define IDirect3DViewport_QueryInterface(p, a, b)
#define IDirect3DDevice2_SetRenderState(p, a, b)
#define IDirect3DDevice_QueryInterface(p, a, b)
#define IDirect3DDevice2_GetRenderTarget(p, a)
#define IDirect3DDevice2_DrawPrimitive(p, a, b, c, d, e)
#define IDirect3D2_Release(p)
#define IDirect3DDevice2_EndScene(p)
#define IDirect3DDevice2_SetTransform(p, a, b)
#define IDirect3DDevice2_Release(p)
#define IDirect3DDevice_CreateMatrix(p, a)
#define IDirect3DDevice_Release(p)
#define D3DDEBCAPS_SYSTEMMEMORY
#define IDirect3DRM_CreateObject(p, a, b, c, d)
#define IDirect3DRM_CreateTextureFromSurface(p, a, b)
#define IDirect3DRM_Load(p, a, b, c, d, e, f, g, h, i, j)
#define IDirect3DRM_CreateMesh(p, a)
#define IDirect3DRM_CreateMeshBuilder(p, a)
#define IDirect3DRM_CreateDeviceFromD3D(p, a, b, c)
#define IDirect3DRM_CreateFace(p, a)
#define D3DRMERR_NOTFOUND
#define IDirect3DRM2_CreateObject(p, a, b, c, d)
#define IDirect3DRM_CreateDeviceFromSurface(p, a, b, c, d)
#define D3DRMERR_NOTCREATEDFROMDDS
#define D3DRMERR_NOSUCHKEY
#define IDirect3DRM2_CreateFrame(p, a, b)
#define IDirect3DRM3_CreateViewport(p, a, b, c, d, e, f, g)
#define IDirect3DRM_CreateViewport(p, a, b, c, d, e, f, g)
#define IDirect3DRM_QueryInterface(p, a, b)
#define IDirect3DRM3_CreateAnimation(p, a)
#define IDirect3DRM_CreateDeviceFromClipper(p, a, b, c, d, e)
#define IDirect3DRM3_CreateTexture(p, a, b)
#define IDirect3DRM_CreateTexture(p, a, b)
#define IDirect3DRM3_LoadTexture(p, a, b)
#define IDirect3DRM_CreateAnimation(p, a)
#define IDirect3DRM2_CreateMeshBuilder(p, a)
#define IDirect3DRM_CreateDevice(p, a, b, c)
#define IDirect3DRM3_CreateDeviceFromClipper(p, a, b, c, d, e)
#define IDirect3DRM2_CreateViewport(p, a, b, c, d, e, f, g)
#define IDirect3DRM3_CreateDeviceFromSurface(p, a, b, c, d, e)
#define D3DRMERR_FILENOTFOUND
#define IDirect3DRM_CreateFrame(p, a, b)
#define D3DRMERR_BADVALUE
#define IDirect3DRM_Release(p)
#define IDirect3DRM3_CreateMaterial(p, a, b)
#define IDirect3DRM_LoadTexture(p, a, b)
#define IDirect3DRM2_CreateTexture(p, a, b)
#define IDirect3DRM3_CreateDevice(p, a, b, c)
#define IDirect3DRM_CreateLightRGB(p, a, b, c, d, e)
#define IDirect3DRM2_Release(p)
#define IDirect3DRM2_CreateTextureFromSurface(p, a, b)
#define IDirect3DRM3_CreateFrame(p, a, b)
#define IDirect3DRM2_LoadTexture(p, a, b)
#define D3DRMERR_BADDEVICE
#define IDirect3DRM2_CreateDevice(p, a, b, c)
#define IDirect3DRM2_CreateDeviceFromSurface(p, a, b, c, d)
#define IDirect3DRM3_CreateDeviceFromD3D(p, a, b, c)
#define D3DRMERR_BADOBJECT
#define IDirect3DRM3_CreateObject(p, a, b, c, d)
#define IDirect3DRM3_Release(p)
#define IDirect3DRM2_CreateDeviceFromClipper(p, a, b, c, d, e)
#define IDirect3DRM3_CreateMeshBuilder(p, a)
#define IDirect3DRM3_CreateTextureFromSurface(p, a, b)
#define IDirect3DRM2_CreateDeviceFromD3D(p, a, b, c)
DWORD D3DRMANIMATIONOPTIONS
#define D3DRMANIMATION_LINEARPOSITION
#define D3DRMANIMATION_POSITION
#define D3DRMANIMATION_SCALEKEY
#define D3DRMDEVICE_NOZBUFFER
D3DVALUE D3DRMMATRIX4D[4][4]
enum _D3DRMLIGHTTYPE D3DRMLIGHTTYPE
#define D3DRMANIMATION_SCALEANDROTATION
#define D3DRMANIMATION_POSITIONKEY
#define D3DRMCLEAR_ZBUFFER
#define D3DRMFRAME_PICKENABLE
#define D3DRMANIMATION_CLOSED
#define D3DRMANIMATION_ROTATEKEY
#define D3DRMANIMATION_SPLINEPOSITION
#define D3DRMLOAD_FROMMEMORY
#define D3DRMANIMATION_OPEN
#define D3DRMFRAME_RENDERENABLE
#define IDirect3DRMAnimation_GetOptions(p)
#define IDirect3DRMFrame_AddLight(p, a)
#define IDirect3DRMViewport_GetClassName(p, a, b)
#define IDirect3DRMTexture3_GetSurface(p, a, b)
#define IDirect3DRMViewport_Release(p)
#define IDirect3DRMViewport2_GetAppData(p)
#define IDirect3DRMMeshBuilder3_GetNormals(p, a, b, c)
#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p, a, b, c)
#define IDirect3DRMMeshBuilder_GetVertexCount(p)
#define IDirect3DRMFrame_AddRotation(p, a, b, c, d, e)
#define IDirect3DRMFaceArray_GetSize(p)
#define IDirect3DRMMesh_GetGroupCount(p)
#define IDirect3DRMViewport_GetDirect3DViewport(p, a)
#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p, a, b, c)
#define IDirect3DRMAnimation_QueryInterface(p, a, b)
#define IDirect3DRMLight_Release(p)
#define IDirect3DRMFrame_GetTransform(p, a)
#define IDirect3DRMTexture3_InitFromFile(p, a)
#define IDirect3DRMFrame_GetVisuals(p, a)
#define IDirect3DRMLightArray_GetElement(p, a, b)
#define IDirect3DRMAnimation_AddRotateKey(p, a, b)
#define IDirect3DRMWrap_QueryInterface(p, a, b)
#define IDirect3DRMTexture_InitFromFile(p, a)
#define IDirect3DRMViewport_QueryInterface(p, a, b)
#define IDirect3DRMLightArray_Release(p)
#define IDirect3DRMObject_GetName(p, a, b)
#define IDirect3DRMDevice2_GetDirect3DDevice(p, a)
#define IDirect3DRMViewport2_Configure(p, a, b, c, d)
#define IDirect3DRMMeshBuilder_Scale(p, a, b, c)
#define IDirect3DRMViewport_GetDevice(p, a)
#define IDirect3DRMAnimation2_GetFrame(p, a)
#define IDirect3DRMFace_Release(p)
#define IDirect3DRMVisualArray_Release(p)
#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p, a, b, c)
#define IDirect3DRMObject_QueryInterface(p, a, b)
#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p, a, b, c)
#define IDirect3DRMTexture3_Release(p)
#define IDirect3DRMWrap_Release(p)
#define IDirect3DRMViewport_GetBack(p)
#define IDirect3DRMViewport2_GetFront(p)
#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p, a, b, c)
#define IDirect3DRMDevice_GetHeight(p)
#define IDirect3DRMFrame_DeleteVisual(p, a)
#define IDirect3DRMMeshBuilder3_GetVertices(p, a, b, c)
#define IDirect3DRMMeshBuilder3_CreateFace(p, a)
#define IDirect3DRMMaterial2_GetEmissive(p, a, b, c)
#define IDirect3DRMAnimation_SetFrame(p, a)
#define IDirect3DRMFace_QueryInterface(p, a, b)
#define IDirect3DRMTexture3_InitFromImage(p, a)
#define IDirect3DRMTexture_QueryInterface(p, a, b)
#define IDirect3DRMViewport2_QueryInterface(p, a, b)
#define IDirect3DRMTexture2_GetImage(p)
#define IDirect3DRMFrame_Release(p)
#define IDirect3DRMViewport_SetFront(p, a)
#define IDirect3DRMTexture3_GetImage(p)
#define IDirect3DRMViewport2_GetCamera(p, a)
#define IDirect3DRMMaterial_GetSpecular(p, a, b, c)
#define IDirect3DRMFace2_QueryInterface(p, a, b)
#define IDirect3DRMFrame3_GetTraversalOptions(p, a)
#define IDirect3DRMVisualArray_GetSize(p)
#define IDirect3DRMViewport2_Init(p, a, b, c, d, e, f)
#define IDirect3DRMMaterial2_GetSpecular(p, a, b, c)
#define IDirect3DRMMeshBuilder3_GetFaces(p, a)
#define IDirect3DRMDevice_InitFromD3D(p, a, b)
#define IDirect3DRMDevice2_GetHeight(p)
#define IDirect3DRMTexture2_InitFromImage(p, a)
#define IDirect3DRMMeshBuilder3_Load(p, a, b, c, d, e)
#define IDirect3DRMMaterial2_GetAmbient(p, a, b, c)
#define IDirect3DRMMaterial2_SetPower(p, a)
#define IDirect3DRMFrame_GetParent(p, a)
#define IDirect3DRMMaterial2_GetPower(p)
#define IDirect3DRMDevice3_QueryInterface(p, a, b)
#define IDirect3DRMMeshBuilder2_GetFaces(p, a)
#define IDirect3DRMViewport2_GetDevice(p, a)
#define IDirect3DRMMaterial2_SetAmbient(p, a, b, c)
#define IDirect3DRMFrame3_QueryInterface(p, a, b)
#define IDirect3DRMViewport_SetAppData(p, a)
#define IDirect3DRMMaterial2_SetEmissive(p, a, b, c)
#define IDirect3DRMFace2_GetColor(p)
#define IDirect3DRMDevice2_Release(p)
#define IDirect3DRMFrame2_Release(p)
#define IDirect3DRMFrame_AddChild(p, a)
#define IDirect3DRMMaterial_Release(p)
#define IDirect3DRMViewport_GetField(p)
#define IDirect3DRMFrame3_GetSceneBackground(p)
#define IDirect3DRMTexture2_Release(p)
#define IDirect3DRMFrame_GetSceneBackground(p)
#define IDirect3DRMMeshBuilder2_GetFaceCount(p)
#define IDirect3DRMMeshBuilder_Load(p, a, b, c, d, e)
#define IDirect3DRMMeshBuilder3_GetNormalCount(p)
#define IDirect3DRMMeshBuilder_GetFaceCount(p)
#define IDirect3DRMMeshBuilder_GetVertices(p, a, b, c, d, e, f)
#define IDirect3DRMViewport_SetPlane(p, a, b, c, d)
#define IDirect3DRMObject_GetClassName(p, a, b)
#define IDirect3DRMAnimation2_GetKeys(p, a, b, c, d)
#define IDirect3DRMAnimation_SetOptions(p, a)
#define IDirect3DRMVisual_Release(p)
#define IDirect3DRMMeshBuilder3_Release(p)
#define IDirect3DRMFace2_SetColorRGB(p, a, b, c)
#define IDirect3DRMViewport_GetCamera(p, a)
#define IDirect3DRMViewport_Configure(p, a, b, c, d)
#define IDirect3DRMViewport2_SetFront(p, a)
#define IDirect3DRMDevice3_Release(p)
#define IDirect3DRMAnimation_AddScaleKey(p, a, b, c, d)
#define IDirect3DRMViewport_Clear(p)
#define IDirect3DRMFrameArray_GetSize(p)
#define IDirect3DRMViewport2_GetDirect3DViewport(p, a)
#define IDirect3DRMFace_GetVertexCount(p)
#define IDirect3DRMMaterial_GetPower(p)
#define IDirect3DRMViewport_Init(p, a, b, c, d, e, f)
#define IDirect3DRMFace2_GetVertexCount(p)
#define IDirect3DRMDevice2_QueryInterface(p, a, b)
#define IDirect3DRMTexture_InitFromSurface(p, a)
#define IDirect3DRMDevice_GetDirect3DDevice(p, a)
#define IDirect3DRMFace2_Release(p)
#define IDirect3DRMFaceArray_Release(p)
#define IDirect3DRMDevice2_InitFromD3D(p, a, b)
#define IDirect3DRMTexture3_QueryInterface(p, a, b)
#define IDirect3DRMDevice3_GetHeight(p)
#define IDirect3DRMFrame3_SetTraversalOptions(p, a)
#define IDirect3DRMAnimation_AddPositionKey(p, a, b, c, d)
#define IDirect3DRMTexture3_InitFromSurface(p, a)
#define IDirect3DRMDevice3_GetDirect3DDevice2(p, a)
#define IDirect3DRMFrame_QueryInterface(p, a, b)
#define IDirect3DRMFrame_AddTranslation(p, a, b, c, d)
#define IDirect3DRMDevice3_InitFromD3D(p, a, b)
#define IDirect3DRMMeshBuilder3_GetVertexCount(p)
#define IDirect3DRMFrame2_QueryInterface(p, a, b)
#define IDirect3DRMMeshBuilder_QueryInterface(p, a, b)
#define IDirect3DRMTexture_Release(p)
#define IDirect3DRMFrameArray_GetElement(p, a, b)
#define IDirect3DRMFrame_GetChildren(p, a)
#define IDirect3DRMFrame3_Release(p)
#define IDirect3DRMMesh_GetGroup(p, a, b, c, d, e, f)
#define IDirect3DRMMeshBuilder3_QueryInterface(p, a, b)
#define IDirect3DRMFrame_GetLights(p, a)
#define IDirect3DRMObject_DeleteDestroyCallback(p, a, b)
#define IDirect3DRMAnimation_DeleteKey(p, a)
#define IDirect3DRMLight_GetType(p)
#define IDirect3DRMMesh_GetGroupColor(p, a)
#define IDirect3DRMViewport2_SetPlane(p, a, b, c, d)
#define IDirect3DRMFrame_SetSceneBackground(p, a)
#define IDirect3DRMFrame_GetScene(p, a)
#define IDirect3DRMDevice_GetWidth(p)
#define IDirect3DRMViewport2_SetCamera(p, a)
#define IDirect3DRMTexture_GetImage(p)
#define IDirect3DRMFrame_Transform(p, a, b)
#define IDirect3DRMTexture2_QueryInterface(p, a, b)
#define IDirect3DRMViewport2_SetField(p, a)
#define IDirect3DRMFrame_DeleteLight(p, a)
#define IDirect3DRMDevice2_GetDirect3DDevice2(p, a)
#define IDirect3DRMFrame_DeleteChild(p, a)
#define IDirect3DRMFace2_SetColor(p, a)
#define IDirect3DRMFrameArray_Release(p)
#define IDirect3DRMAnimation2_SetFrame(p, a)
#define IDirect3DRMMaterial2_SetSpecular(p, a, b, c)
#define IDirect3DRMMeshBuilder2_CreateFace(p, a)
#define IDirect3DRMVisualArray_GetElement(p, a, b)
#define IDirect3DRMDevice_QueryInterface(p, a, b)
#define IDirect3DRMViewport2_Release(p)
#define IDirect3DRMFace_GetVertices(p, a, b, c)
#define IDirect3DRMViewport_GetPlane(p, a, b, c, d)
#define IDirect3DRMFaceArray_GetElement(p, a, b)
#define IDirect3DRMLight_QueryInterface(p, a, b)
#define IDirect3DRMMesh_QueryInterface(p, a, b)
#define IDirect3DRMAnimation2_AddKey(p, a)
#define IDirect3DRMMeshBuilder_GetName(p, a, b)
#define IDirect3DRMViewport2_Clear(p, a)
#define IDirect3DRMViewport2_SetBack(p, a)
#define IDirect3DRMFrame_AddScale(p, a, b, c, d)
#define IDirect3DRMViewport_GetFront(p)
#define IDirect3DRMDevice2_InitFromD3D2(p, a, b)
#define IDirect3DRMTexture2_InitFromFile(p, a)
#define IDirect3DRMViewport_SetBack(p, a)
#define IDirect3DRMObject_SetName(p, a)
#define IDirect3DRMMeshBuilder_CreateMesh(p, a)
#define IDirect3DRMDevice_Release(p)
#define IDirect3DRMViewport2_GetBack(p)
#define IDirect3DRMMesh_GetGroupMaterial(p, a, b)
#define IDirect3DRMMaterial_GetEmissive(p, a, b, c)
#define IDirect3DRMFrame_AddVisual(p, a)
#define IDirect3DRMVisual_QueryInterface(p, a, b)
#define IDirect3DRMMesh_Release(p)
#define IDirect3DRMAnimation2_Release(p)
#define IDirect3DRMAnimation2_QueryInterface(p, a, b)
#define IDirect3DRMObject_AddDestroyCallback(p, a, b)
#define IDirect3DRMViewport_SetField(p, a)
#define IDirect3DRMTexture2_InitFromSurface(p, a)
#define IDirect3DRMLight_SetColorRGB(p, a, b, c)
#define IDirect3DRMMeshBuilder2_Release(p)
#define IDirect3DRMAnimation_Release(p)
#define IDirect3DRMLightArray_GetSize(p)
#define IDirect3DRMLight_GetColor(p)
#define IDirect3DRMDevice2_GetWidth(p)
#define IDirect3DRMFrame_SetSceneBackgroundRGB(p, a, b, c)
#define IDirect3DRMMeshBuilder3_GetFaceCount(p)
#define IDirect3DRMObject_Release(p)
#define IDirect3DRMViewport_SetCamera(p, a)
#define IDirect3DRMMaterial2_Release(p)
#define IDirect3DRMDevice3_GetWidth(p)
#define IDirect3DRMMeshBuilder_SetName(p, a)
#define IDirect3DRMFrame_AddTransform(p, a, b)
#define IDirect3DRMDevice3_InitFromD3D2(p, a, b)
#define IDirect3DRMMesh_GetGroupTexture(p, a, b)
#define IDirect3DRMLight_SetType(p, a)
#define IDirect3DRMViewport2_GetField(p)
#define IDirect3DRMLight_SetColor(p, a)
#define IDirect3DRMViewport2_GetPlane(p, a, b, c, d)
#define IDirect3DRMMeshBuilder_Release(p)
#define IDirect3DRMWinDevice_Release(p)
#define D3DEXECUTE_CLIPPED
#define D3DPROCESSVERTICES_TRANSFORM
HRESULT WINAPI DirectDrawCreateClipper(DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, LPUNKNOWN pUnkOuter)
HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter)
HRESULT WINAPI Direct3DRMCreate(IDirect3DRM **d3drm)
D3DRMQUATERNION *WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *q, D3DVECTOR *v, D3DVALUE theta)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define HeapFree(x, y, z)
static void cleanup(void)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
#define check(expected, result)
#define wrap(journal, var)
#define D3DRENDERSTATE_ZENABLE
#define D3DRENDERSTATE_SHADEMODE
#define D3DTRANSFORMSTATE_WORLD
#define D3DRENDERSTATE_ZFUNC
#define D3DTRANSFORMSTATE_VIEW
#define D3DTRANSFORMSTATE_PROJECTION
#define D3DRENDERSTATE_FOGENABLE
#define D3DRENDERSTATE_CULLMODE
#define D3DRENDERSTATE_CLIPPING
UINT WINAPI GetTempFileNameA(IN LPCSTR lpPathName, IN LPCSTR lpPrefixString, IN UINT uUnique, OUT LPSTR lpTempFileName)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble q
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLint GLenum face
GLboolean GLboolean GLboolean b
GLboolean GLenum GLenum GLvoid * values
GLfloat GLfloat GLfloat v2
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum light
#define memcpy(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static struct test_info tests[]
static IPrintDialogCallback callback
static const WCHAR desc[]
static void test_create_device_from_clipper1(void)
static IDirect3DDevice * create_device1(IDirectDraw *ddraw, HWND window, IDirectDrawSurface **ds)
static char data_no_mesh[]
static void test_texture_qi(void)
static void test_animation_qi(void)
static char data_bad_version[]
static void test_Mesh(void)
static void test_Material2(void)
static void vector_eq_(unsigned int line, const D3DVECTOR *left, const D3DVECTOR *right)
#define expect_matrix(m, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44, u)
static void test_Texture(void)
static void test_object_name_(unsigned int line, IDirect3DRMObject *object)
static void expect_matrix_(unsigned int line, D3DRMMATRIX4D m, float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44, unsigned int ulps)
static void test_qi(const char *test_name, IUnknown *base_iface, REFIID refcount_iid, const struct qi_test *tests, UINT entry_count)
#define test_object_name(a)
static void test_d3drm_qi(void)
static void test_create_device_2(void)
static void emit_tquad(void **ptr, WORD base_idx)
static void test_load_texture(void)
static ULONG get_refcount(IUnknown *object)
static void test_MeshBuilder3(void)
static void test_wrap_qi(void)
static void emit_set_rs(void **ptr, D3DRENDERSTATETYPE state, DWORD value)
static void set_vector(D3DVECTOR *v, float x, float y, float z)
static void clear_depth_surface(IDirectDrawSurface *surface, DWORD value)
static void test_create_device_3(void)
static void test_create_device_from_d3d3(void)
static void test_create_device_from_surface3(void)
static void test_animation(void)
static void test_MeshBuilder(void)
static char data_frame_mesh_materials[]
static void test_create_device_from_clipper2(void)
static void test_Device(void)
static void test_create_device_from_d3d2(void)
static void test_viewport_clear2(void)
static void __cdecl object_load_callback_frame(IDirect3DRMObject *object, REFIID object_guid, void *arg)
static void test_device_qi(void)
static void test_frame_transform(void)
static void test_viewport_qi(void)
IDirect3DRMMeshBuilder * mesh_builder
static BOOL compare_color(D3DCOLOR c1, D3DCOLOR c2, BYTE max_diff)
static IDirect3DDevice2 * create_device2_without_ds(IDirectDraw2 *ddraw, HWND window)
static void emit_end(void **ptr)
static void test_bitmap_data(unsigned int test_idx, const D3DRMIMAGE *img, BOOL upside_down, unsigned int w, unsigned int h, BOOL palettized)
static void test_Light(void)
static void expect_vector_(unsigned int line, const D3DVECTOR *v, float x, float y, float z, unsigned int ulps)
static void test_create_device_1(void)
static void set_execute_data(IDirect3DExecuteBuffer *execute_buffer, UINT vertex_count, UINT offset, UINT len)
static void test_frame_qi(void)
static void test_create_device_from_surface1(void)
static void frame_set_transform(IDirect3DRMFrame *frame, float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)
static D3DCOLOR get_surface_color(IDirectDrawSurface *surface, UINT x, UINT y)
static void test_create_device_from_surface2(void)
struct callback_order d3drm_corder[3]
static void __cdecl object_load_callback(IDirect3DRMObject *object, REFIID objectguid, void *arg)
static void test_Viewport(void)
static void test_object(void)
static void test_frame_mesh_materials(void)
static void test_create_device_from_d3d1(void)
static void test_create_texture_from_surface(void)
static void draw_quad2(IDirect3DDevice2 *device, IDirect3DViewport *viewport)
static void emit_process_vertices(void **ptr, DWORD flags, WORD base_idx, DWORD vertex_count)
static void d3d_draw_quad1(IDirect3DDevice *device, IDirect3DViewport *viewport)
static void test_destroy_callback(unsigned int test_idx, REFCLSID clsid, REFIID iid)
#define CHECK_REFCOUNT(obj, rc)
static void test_d3drm_load(void)
#define expect_vector(v, x, y, z, u)
static const GUID * refiids[]
#define test_class_name(a, b)
static void test_viewport_clear1(void)
static void CDECL destroy_callback1(IDirect3DRMObject *obj, void *arg)
static char data_d3drm_load[]
static void test_create_device_from_clipper3(void)
static void test_Face(void)
static void test_class_name_(unsigned int line, IDirect3DRMObject *object, const char *name)
static void emit_set_ts(void **ptr, D3DTRANSFORMSTATETYPE state, DWORD value)
static void matrix_sanitise(D3DRMMATRIX4D m)
static void test_wrap(void)
static void test_Frame(void)
static HWND create_window(void)
static IDirect3DDevice2 * create_device2(IDirectDraw2 *ddraw, HWND window, IDirectDrawSurface **ds)
struct callback_order corder[3]
static HRESULT CALLBACK surface_callback(IDirectDrawSurface *surface, DDSURFACEDESC *desc, void *context)
#define compare_float(got, exp)
static const char * test_name
static IHTMLWindow2 * window
static const DWORD file_header[]
static HBITMAP create_bitmap(void)
struct @1709::@1710 driver
#define WS_OVERLAPPEDWINDOW
#define IsEqualGUID(rguid1, rguid2)
DWORD IDirectDrawSurface7
static struct address_cache * front
#define DDSCAPS_PRIMARYSURFACE
#define DDSD_ZBUFFERBITDEPTH
#define DDERR_INVALIDCAPS
#define DDENUMSURFACES_ALL
#define DDSCAPS_OFFSCREENPLAIN
#define DDENUMSURFACES_DOESEXIST
#define DDERR_NOCLIPPERATTACHED
#define DDSCAPS_SYSTEMMEMORY
DWORD dwInstructionOffset
DWORD dwInstructionLength
#define FIELD_OFFSET(t, f)
DWORD WINAPI GetLastError(void)
#define CLASSFACTORY_E_FIRST
#define CLASS_E_CLASSNOTAVAILABLE
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI DestroyWindow(_In_ HWND)