43"<3D82AB43-62DA-11CF-AB39-0020AF71E433>"
50"<3D82AB5E-62DA-11CF-AB39-0020AF71E433>"
57"<F6F23F44-7686-11CF-8F52-0040333594A3>"
63"<F6F23F45-7686-11CF-8F52-0040333594A3>"
64"array FLOAT matrix[16];"
68"<35FF44E0-6C7C-11CF-8F52-0040333594A3>"
76"<D3E16E81-7835-11CF-8F52-0040333594A3>"
81"template IndexedColor"
83"<1630B820-7842-11CF-8F52-0040333594A3>"
85"ColorRGBA indexColor;"
89"<537DA6A0-CA37-11D0-941C-0080C80CFA7B>"
94"<4885AE63-78E8-11CF-8F52-0040333594A3>"
98"template MaterialWrap"
100"<4885AE60-78E8-11CF-8F52-0040333594A3>"
104"template TextureFilename"
106"<A42790E1-7810-11CF-8F52-0040333594A3>"
111"<3D82AB4D-62DA-11CF-AB39-0020AF71E433>"
112"ColorRGBA faceColor;"
114"ColorRGB specularColor;"
115"ColorRGB emissiveColor;"
120"<3D82AB5F-62DA-11CF-AB39-0020AF71E433>"
121"DWORD nFaceVertexIndices;"
122"array DWORD faceVertexIndices[nFaceVertexIndices];"
124"template MeshFaceWraps"
126"<ED1EC5C0-C0A8-11D0-941C-0080C80CFA7B>"
127"DWORD nFaceWrapValues;"
128"array Boolean2d faceWrapValues[nFaceWrapValues];"
130"template MeshTextureCoords"
132"<F6F23F40-7686-11CF-8F52-0040333594A3>"
133"DWORD nTextureCoords;"
134"array Coords2d textureCoords[nTextureCoords];"
136"template MeshMaterialList"
138"<F6F23F42-7686-11CF-8F52-0040333594A3>"
141"array DWORD faceIndexes[nFaceIndexes];"
144"template MeshNormals"
146"<F6F23F43-7686-11CF-8F52-0040333594A3>"
148"array Vector normals[nNormals];"
150"array MeshFace faceNormals[nFaceNormals];"
152"template MeshVertexColors"
154"<1630B821-7842-11CF-8F52-0040333594A3>"
155"DWORD nVertexColors;"
156"array IndexedColor vertexColors[nVertexColors];"
160"<3D82AB44-62DA-11CF-AB39-0020AF71E433>"
162"array Vector vertices[nVertices];"
164"array MeshFace faces[nFaces];"
167"template FrameTransformMatrix"
169"<F6F23F41-7686-11CF-8F52-0040333594A3>"
170"Matrix4x4 frameMatrix;"
174"<3D82AB46-62DA-11CF-AB39-0020AF71E433>"
179"<10DD46A9-775B-11CF-8F52-0040333594A3>"
181"array FLOAT values[nValues];"
183"template TimedFloatKeys"
185"<F406B180-7B3B-11CF-8F52-0040333594A3>"
189"template AnimationKey"
191"<10DD46A8-775B-11CF-8F52-0040333594A3>"
194"array TimedFloatKeys keys[nKeys];"
196"template AnimationOptions"
198"<E2BF56C0-840F-11CF-8F52-0040333594A3>"
200"DWORD positionquality;"
204"<3D82AB4F-62DA-11CF-AB39-0020AF71E433>"
207"template AnimationSet"
209"<3D82AB50-62DA-11CF-AB39-0020AF71E433>"
214"<3A23EEA0-94B1-11D0-AB39-0020AF71E433>"
219"<3A23EEA1-94B1-11D0-AB39-0020AF71E433>"
221"array STRING urls[nUrls];"
223"template ProgressiveMesh"
225"<8A63C360-997D-11D0-941C-0080C80CFA7B>"
230"<A42790E0-7810-11CF-8F52-0040333594A3>"
234"array UCHAR data4[8];"
236"template StringProperty"
238"<7F0F21E0-BFE1-11D1-82C0-00A0C9697271>"
242"template PropertyBag"
244"<7F0F21E1-BFE1-11D1-82C0-00A0C9697271>"
247"template ExternalVisual"
249"<98116AA0-BDBA-11D1-82C0-00A0C9697271>"
250"Guid guidExternalVisual;"
253"template RightHanded"
255"<7F5D5EA0-D53A-11D1-82C0-00A0C9697271>"
262 SIZE_T new_capacity, max_capacity;
272 new_capacity =
max(*capacity, 4);
273 while (new_capacity <
element_count && new_capacity <= max_capacity / 2)
277 new_capacity = max_capacity;
282 *elements = new_elements;
283 *capacity = new_capacity;
415 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
425 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
434 TRACE(
"iface %p, data %#lx.\n", iface,
data);
445 TRACE(
"iface %p, data %#lx.\n", iface,
data);
454 TRACE(
"iface %p.\n", iface);
463 TRACE(
"iface %p.\n", iface);
500 TRACE(
"iface %p, filename %p, name %p, flags %#lx, cb %p, ctx %p.\n",
504 FIXME(
"Texture callback is not yet supported\n");
513 FIXME(
"iface %p, filename %s, format %#x, flags %#lx stub!\n",
524 TRACE(
"iface %p, sx %.8e, sy %.8e, sz %.8e.\n", iface, sx, sy, sz);
532 FIXME(
"iface %p, tx %.8e, ty %.8e, tz %.8e stub!\n", iface, tx,
ty,
tz);
539 FIXME(
"iface %p, source %#x stub!\n", iface,
source);
546 FIXME(
"iface %p, box %p stub!\n", iface,
box);
553 FIXME(
"iface %p stub!\n", iface);
560 FIXME(
"iface %p stub!\n", iface);
567 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
582 FIXME(
"iface %p, frame %p stub!\n", iface, frame);
589 FIXME(
"iface %p, face %p stub!\n", iface,
face);
596 DWORD *face_data, IDirect3DRMFaceArray **
array)
598 FIXME(
"iface %p, vertex_count %lu, vertices %p, normal_count %lu, normals %p, face_data %p, array %p stub!\n",
607 FIXME(
"iface %p, vertex_count %lu, normal_count %lu, face_count %lu stub!\n",
627 TRACE(
"iface %p, color 0x%08lx.\n", iface,
color);
636 IDirect3DRMTexture3 *texture3 =
NULL;
665 FIXME(
"iface %p, wrap_u %#x, wrap_v %#x stub!\n", iface, wrap_u, wrap_v);
681 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
689 FIXME(
"iface %p, index %lu, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
697 FIXME(
"iface %p, index %lu, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
707 TRACE(
"iface %p, index %lu, u %.8e, v %.8e.\n", iface,
index,
u,
v);
716 FIXME(
"iface %p, index %lu, color 0x%08lx stub!\n", iface,
index,
color);
724 FIXME(
"iface %p, index %lu, red %.8e, green %.8e, blue %.8e stub!\n",
731 IDirect3DRMFaceArray **
array)
733 FIXME(
"iface %p, array %p stub!\n", iface,
array);
744 TRACE(
"iface %p, vertex_count %p, vertices %p, normal_count %p, normals %p, face_data_size %p, face_data %p.\n",
776 TRACE(
"iface %p, index %lu, u %p, v %p.\n", iface,
index,
u,
v);
787 TRACE(
"iface %p, x %.8e, y %.8e, z %.8e.\n", iface,
x,
y,
z);
797 TRACE(
"iface %p, x %.8e, y %.8e, z %.8e.\n", iface,
x,
y,
z);
807 TRACE(
"iface %p, face %p.\n", iface,
face);
812 *
face = &
object->IDirect3DRMFace_iface;
821 TRACE(
"iface %p\n", iface);
828 FIXME(
"iface %p stub!\n", iface);
837 TRACE(
"iface %p.\n", iface);
846 TRACE(
"iface %p.\n", iface);
853 FIXME(
"iface %p, index %lu stub!\n", iface,
index);
862 TRACE(
"iface %p, mesh %p.\n", iface,
mesh);
870 FIXME(
"iface %p, crease %.8e, flags %#lx stub!\n", iface, crease,
flags);
878 FIXME(
"iface %p, index %lu, face %p stub!\n", iface,
index,
face);
951 TRACE(
"iface %p.\n", iface);
960 TRACE(
"iface %p.\n", iface);
978 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
988 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
1026 IDirectXFileData *pData2 =
NULL;
1033 DWORD* faces_vertex_idx_ptr;
1034 DWORD faces_vertex_idx_size;
1037 DWORD* faces_data_ptr;
1038 DWORD faces_data_size = 0;
1072 TRACE(
"Mesh: nb_vertices = %Iu, nb_faces = %ld, faces_vertex_idx_size = %ld\n",
mesh_builder->nb_vertices,
1083 faces_vertex_idx_ptr = faces_vertex_idx_data =
malloc(faces_vertex_idx_size);
1085 faces_vertex_idx_size);
1093 IDirectXFileObject *
object;
1098 TRACE(
"No more object\n");
1117 DWORD nb_faces_normals;
1118 DWORD faces_normal_idx_size;
1127 TRACE(
"MeshNormals: nb_normals = %Iu, nb_faces_normals = %ld\n",
mesh_builder->nb_normals, nb_faces_normals);
1129 WARN(
"nb_face_normals (%ld) != nb_faces (%ld)\n", nb_faces_normals,
mesh_builder->nb_faces);
1140 faces_normal_idx_ptr = faces_normal_idx_data =
malloc(faces_normal_idx_size);
1142 +
sizeof(
DWORD), faces_normal_idx_size);
1160 DWORD nb_face_indices;
1162 IDirectXFileObject *
child;
1167 TRACE(
"Process MeshMaterialList\n");
1175 data_size = 2 *
sizeof(
DWORD) + nb_face_indices *
sizeof(
DWORD);
1177 TRACE(
"nMaterials = %lu, nFaceIndexes = %lu\n", nb_materials, nb_face_indices);
1179 if (
size != data_size)
1180 WARN(
"Returned size %lu does not match expected one %lu\n",
size, data_size);
1186 nb_face_indices *
sizeof(*
mesh_builder->material_indices));
1197 IDirectXFileData *
data;
1199 IDirectXFileObject *material_child;
1226 mesh_builder->materials[
i].material = &
object->IDirect3DRMMaterial2_iface;
1236 WARN(
"Material size %lu does not match expected one %u\n",
size, 44);
1252 IDirectXFileData *
data;
1256 &IID_IDirectXFileData, (
void **)&
data)))
1261 &IID_IDirectXFileDataReference, (
void **)&
reference)))
1276 WARN(
"Not a texture filename\n");
1284 if (load_texture_proc)
1328 WARN(
"Found more sub-objects than expected\n");
1357 DWORD nb_face_indexes;
1360 if (faces_vertex_idx_size <
sizeof(
DWORD))
1361 WARN(
"Not enough data to read number of indices of face %ld\n",
i);
1363 nb_face_indexes = *(faces_data_ptr + faces_data_size++) = *(faces_vertex_idx_ptr++);
1364 faces_vertex_idx_size--;
1365 if (faces_normal_idx_data && (*(faces_normal_idx_ptr++) != nb_face_indexes))
1366 WARN(
"Faces indices number mismatch\n");
1368 if (faces_vertex_idx_size < (nb_face_indexes *
sizeof(
DWORD)))
1369 WARN(
"Not enough data to read all indices of face %ld\n",
i);
1374 if (nb_face_indexes > 2
1377 && faces_vertex_idx_ptr[2] <
mesh_builder->nb_vertices)
1388 face_normal.
x = 0.0f;
1389 face_normal.
y = 0.0f;
1390 face_normal.
z = 0.0f;
1394 for (
j = 0;
j < nb_face_indexes;
j++)
1397 *(faces_data_ptr + faces_data_size++) = *faces_vertex_idx_ptr;
1402 *(faces_data_ptr + faces_data_size++) = *(faces_normal_idx_ptr++);
1406 DWORD vertex_idx = *faces_vertex_idx_ptr;
1409 WARN(
"Found vertex index %lu but only %Iu vertices available => use index 0\n", vertex_idx,
1413 *(faces_data_ptr + faces_data_size++) = vertex_idx;
1417 faces_vertex_idx_ptr++;
1419 faces_vertex_idx_size -= nb_face_indexes;
1423 *(faces_data_ptr + faces_data_size++) = 0;
1450 TRACE(
"Mesh data loaded successfully\n");
1456 free(faces_normal_idx_data);
1457 free(faces_vertex_idx_data);
1469 IDirectXFile *dxfile =
NULL;
1470 IDirectXFileEnumObject *enum_object =
NULL;
1478 TRACE(
"iface %p, filename %p, name %p, loadflags %#lx, cb %p, arg %p.\n",
1481 if (loadflags & ~supported_flags)
1482 FIXME(
"Ignoring flags %#lx.\n", loadflags & ~supported_flags);
1497 WARN(
"Failed to create object, load flags %#lx.\n", loadflags);
1575 FIXME(
"iface %p, filename %s, format %#x, flags %#lx stub!\n",
1587 TRACE(
"iface %p, sx %.8e, sy %.8e, sz %.8e.\n", iface, sx, sy, sz);
1604 FIXME(
"iface %p, tx %.8e, ty %.8e, tz %.8e stub!\n", iface, tx,
ty,
tz);
1612 FIXME(
"iface %p, source %#x stub!\n", iface,
source);
1619 FIXME(
"iface %p, box %p stub!\n", iface,
box);
1627 FIXME(
"iface %p, crease %.8e, flags %#lx stub!\n", iface, crease,
flags);
1634 FIXME(
"iface %p stub!\n", iface);
1641 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
1656 FIXME(
"iface %p, frame %p stub!\n", iface, frame);
1663 FIXME(
"iface %p, face %p stub!\n", iface,
face);
1670 DWORD *face_data, IDirect3DRMFaceArray **
array)
1672 FIXME(
"iface %p, vertex_count %lu, vertices %p, normal_count %lu, normals %p, face_data %p array %p stub!\n",
1681 FIXME(
"iface %p, vertex_count %lu, normal_count %lu, face_count %lu stub!\n",
1703 TRACE(
"iface %p, color 0x%08lx.\n", iface,
color);
1745 FIXME(
"iface %p, wrap_u %#x, wrap_v %#x stub!\n", iface, wrap_u, wrap_v);
1765 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
1773 FIXME(
"iface %p, index %lu, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
1781 FIXME(
"iface %p, index %lu, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
1791 TRACE(
"iface %p, index %lu, u %.8e, v %.8e.\n", iface,
index,
u,
v);
1805 FIXME(
"iface %p, index %lu, color 0x%08lx stub!\n", iface,
index,
color);
1813 FIXME(
"iface %p, index %lu, red %.8e, green %.8e, blue %.8e stub!\n",
1820 IDirect3DRMFaceArray **
array)
1822 FIXME(
"iface %p, array %p stub!\n", iface,
array);
1831 FIXME(
"iface %p, vertex_count %p, vertices %p, normal_count %p, normals %p, "
1832 "face_data_size %p, face_data %p stub!\n",
1843 TRACE(
"iface %p, index %lu, u %p, v %p.\n", iface,
index,
u,
v);
1859 TRACE(
"iface %p, x %.8e, y %.8e, z %.8e.\n", iface,
x,
y,
z);
1877 TRACE(
"iface %p, x %.8e, y %.8e, z %.8e.\n", iface,
x,
y,
z);
1895 TRACE(
"iface %p, face %p.\n", iface,
face);
1900 *
face = &
object->IDirect3DRMFace2_iface;
1909 TRACE(
"iface %p\n", iface);
1916 FIXME(
"iface %p stub!\n", iface);
1925 TRACE(
"iface %p.\n", iface);
1934 TRACE(
"iface %p.\n", iface);
1942 FIXME(
"iface %p, index %lu stub!\n", iface,
index);
1953 TRACE(
"iface %p, mesh %p.\n", iface,
mesh);
1982 unsigned* face_data;
1986 BOOL* used_vertices;
1998 free(used_vertices);
2002 out_ptr = face_data;
2014 in_ptr += 1 + *in_ptr * 2;
2023 DWORD nb_indices = *in_ptr++;
2028 in_ptr += 2 * nb_indices;
2034 *out_ptr++ = nb_indices;
2036 for (
j = 0;
j < nb_indices;
j++)
2038 *out_ptr = *in_ptr++;
2039 used_vertices[*out_ptr++] =
TRUE;
2048 if (used_vertices[
i])
2052 free(used_vertices);
2058 (IDirect3DRMMaterial *)
mesh_builder->materials[
k].material);
2064 &IID_IDirect3DRMTexture, (
void **)&
texture);
2082 FIXME(
"iface %p, index %lu, face %p stub!\n", iface,
index,
face);
2106 FIXME(
"iface %p, start_idx %lu, count %lu stub!\n", iface, start_idx,
count);
2114 FIXME(
"iface %p, start_idx %lu, count %lu stub!\n", iface, start_idx,
count);
2121 FIXME(
"iface %p, face %p stub!\n", iface,
face);
2128 FIXME(
"iface %p, flags %#lx stub!\n", iface,
flags);
2135 FIXME(
"iface %p, flags %#lx stub!\n", iface,
flags);
2143 FIXME(
"iface %p, flags %#lx, indices %p, start_idx %p, count %p stub!\n",
2151 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
2167 FIXME(
"iface %p, count %p, meshes %p stub!\n", iface,
count, meshes);
2174 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
2181 FIXME(
"iface %p, index %lu stub!\n", iface,
index);
2196 FIXME(
"iface %p, flags %#lx, format %#lx, vertex_count %lu, data %p stub!\n",
2205 FIXME(
"iface %p, start_idx %lu, count %lu, vector %p stub!\n", iface, start_idx,
count,
vector);
2216 TRACE(
"iface %p, start_idx %lu, vertex_count %p, vertices %p.\n",
2230 FIXME(
"iface %p, start_idx %lu, count %lu, vector %p stub!\n",
2242 TRACE(
"iface %p, start_idx %lu, normal_count %p, normals %p.\n",
2243 iface, start_idx, normal_count,
normals);
2246 *normal_count =
count;
2257 TRACE(
"iface %p.\n", iface);
2338 static const char classname[] =
"Builder";
2343 if (!(
object =
calloc(1,
sizeof(*
object))))
2349 object->d3drm =
d3drm;
2385 TRACE(
"%p increasing refcount to %lu.\n", iface, refcount);
2395 TRACE(
"%p decreasing refcount to %lu.\n", iface, refcount);
2403 for (
i = 0;
i <
mesh->nb_groups; ++
i)
2407 if (
mesh->groups[
i].material)
2409 if (
mesh->groups[
i].texture)
2432 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2442 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2451 TRACE(
"iface %p, data %#lx.\n", iface,
data);
2462 TRACE(
"iface %p.\n", iface);
2464 return mesh->obj.appdata;
2497 FIXME(
"iface %p, sx %.8e, sy %.8e, sz %.8e stub!\n", iface, sx, sy, sz);
2505 FIXME(
"iface %p, tx %.8e, ty %.8e, tz %.8e stub!\n", iface, tx,
ty,
tz);
2512 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2523 TRACE(
"iface %p, vertex_count %u, face_count %u, vertex_per_face %u, face_data %p, id %p.\n",
2547 unsigned nb_indices;
2549 group->face_data_size = 0;
2553 nb_indices = *face_data_ptr;
2554 group->face_data_size += nb_indices + 1;
2555 face_data_ptr += nb_indices;
2569 *
id =
mesh->nb_groups++;
2579 TRACE(
"iface %p, group_id %#lx, start_idx %u, count %u, values %p.\n",
2582 if (group_id >=
mesh->nb_groups)
2585 if ((start_idx +
count - 1) >=
mesh->groups[group_id].nb_vertices)
2600 TRACE(
"iface %p, id %#lx, color 0x%08lx.\n", iface,
id,
color);
2602 if (
id >=
mesh->nb_groups)
2615 TRACE(
"iface %p, id %#lx, red %.8e, green %.8e, blue %.8e.\n", iface,
id,
red,
green,
blue);
2617 if (
id >=
mesh->nb_groups)
2627 FIXME(
"iface %p, id %#lx, value %#lx stub!\n", iface,
id,
value);
2634 FIXME(
"iface %p, id %#lx, value %#lx stub!\n", iface,
id,
value);
2644 TRACE(
"iface %p, id %#lx, material %p.\n", iface,
id, material);
2646 if (
id >=
mesh->nb_groups)
2649 if (
mesh->groups[
id].material)
2652 mesh->groups[
id].material = (IDirect3DRMMaterial2 *)material;
2665 TRACE(
"iface %p, id %#lx, texture %p.\n", iface,
id,
texture);
2667 if (
id >=
mesh->nb_groups)
2670 if (
mesh->groups[
id].texture)
2686 TRACE(
"iface %p.\n", iface);
2688 return mesh->nb_groups;
2696 TRACE(
"iface %p, id %#lx, vertex_count %p, face_count %p, vertex_per_face %p, face_data_size %p, face_data %p.\n",
2699 if (
id >=
mesh->nb_groups)
2711 memcpy(face_data,
mesh->groups[
id].face_data,
mesh->groups[
id].face_data_size *
sizeof(*face_data));
2721 TRACE(
"iface %p, group_id %#lx, start_idx %lu, count %lu, vertices %p.\n",
2722 iface, group_id, start_idx,
count, vertices);
2724 if (group_id >=
mesh->nb_groups)
2727 if ((start_idx +
count - 1) >=
mesh->groups[group_id].nb_vertices)
2742 TRACE(
"iface %p, id %#lx.\n", iface,
id);
2744 return mesh->groups[
id].color;
2749 FIXME(
"iface %p, id %#lx stub!\n", iface,
id);
2755 FIXME(
"iface %p, id %#lx stub!\n", iface,
id);
2765 TRACE(
"iface %p, id %#lx, material %p.\n", iface,
id, material);
2767 if (
id >=
mesh->nb_groups)
2773 if (
mesh->groups[
id].material)
2786 TRACE(
"iface %p, id %#lx, texture %p.\n", iface,
id,
texture);
2788 if (
id >=
mesh->nb_groups)
2794 if (
mesh->groups[
id].texture)
2843 if (!(
object =
calloc(1,
sizeof(*
object))))
2848 object->d3drm =
d3drm;
2882 TRACE(
"%p increasing refcount to %lu.\n", iface, refcount);
2892 TRACE(
"%p decreasing refcount to %lu.\n", iface, refcount);
2916 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2926 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2935 TRACE(
"iface %p, data %#lx.\n", iface,
data);
2946 TRACE(
"iface %p.\n", iface);
2948 return wrap->obj.appdata;
2982 FIXME(
"iface %p, type %d, reference frame %p, ox %.8e, oy %.8e, oz %.8e, dx %.8e, dy %.8e, dz %.8e, ux %.8e, "
2983 "uy %.8e, uz %.8e, ou %.8e, ov %.8e, su %.8e, sv %.8e.\n", iface,
type,
reference, ox, oy, oz,
dx,
dy, dz,
2984 ux, uy, uz, ou, ov, su, sv);
2991 FIXME(
"iface %p, object %p.\n", iface,
object);
2997 IDirect3DRMObject *
object)
2999 FIXME(
"iface %p, frame %p, object %p.\n", iface, frame,
object);
3029 if (!(
object =
calloc(1,
sizeof(*
object))))
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
while(CdLookupNextInitialFileDirent(IrpContext, Fcb, FileContext))
struct _D3DVECTOR D3DVECTOR
#define IDirect3DTexture_QueryInterface(p, a, b)
#define IDirect3DTexture_Release(p)
#define IDirect3DRM_CreateMesh(p, a)
#define D3DRMERR_NOTFOUND
#define D3DRMERR_BADVALUE
#define IDirect3DRM_Release(p)
#define D3DRMERR_BADOBJECT
#define IDirect3DRM_AddRef(p)
void d3drm_object_cleanup(IDirect3DRMObject *iface, struct d3drm_object *object)
void d3drm_object_init(struct d3drm_object *object, const char *classname)
HRESULT d3drm_object_get_name(struct d3drm_object *object, DWORD *size, char *name)
HRESULT d3drm_object_delete_destroy_callback(struct d3drm_object *object, D3DRMOBJECTCALLBACK cb, void *ctx)
HRESULT d3drm_object_add_destroy_callback(struct d3drm_object *object, D3DRMOBJECTCALLBACK cb, void *ctx)
HRESULT d3drm_object_set_name(struct d3drm_object *object, const char *name)
HRESULT d3drm_object_get_class_name(struct d3drm_object *object, DWORD *size, char *name)
HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm)
static void d3drm_set_color(D3DCOLOR *color, float r, float g, float b, float a)
HRESULT d3drm_face_create(struct d3drm_face **face)
HRESULT d3drm_material_create(struct d3drm_material **material, IDirect3DRM *d3drm)
#define D3DRMLOAD_FROMURL
enum _D3DRMWRAPTYPE D3DRMWRAPTYPE
#define D3DRMRENDER_GOURAUD
#define D3DRMLOAD_FROMFILE
#define D3DRMLOAD_FROMSTREAM
enum _D3DRMXOFFORMAT D3DRMXOFFORMAT
enum _D3DRMCOLORSOURCE D3DRMCOLORSOURCE
#define D3DRMLOAD_FROMMEMORY
#define D3DRMLOAD_FROMRESOURCE
#define IDirect3DRMMeshBuilder3_SetName(p, a)
#define IDirect3DRMMeshBuilder3_SetQuality(p, a)
#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p, a, b, c)
#define IDirect3DRMMeshBuilder3_SetMaterial(p, a)
#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p, a, b)
#define IDirect3DRMTexture3_Release(p)
#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p, a, b, c)
#define IDirect3DRMMeshBuilder3_AddNormal(p, a, b, c)
#define IDirect3DRMTexture_QueryInterface(p, a, b)
#define IDirect3DRMMeshBuilder3_AddVertex(p, a, b, c)
#define IDirect3DRMMeshBuilder3_GetClassName(p, a, b)
#define IDirect3DRMMaterial2_AddRef(p)
#define IDirect3DRMMeshBuilder3_Load(p, a, b, c, d, e)
#define IDirect3DRMMaterial2_SetPower(p, a)
#define IDirect3DRMMaterial2_SetAmbient(p, a, b, c)
#define IDirect3DRMMaterial2_SetEmissive(p, a, b, c)
#define IDirect3DRMTexture2_Release(p)
#define IDirect3DRMMeshBuilder3_SetColor(p, a)
#define IDirect3DRMMeshBuilder3_SetTexture(p, a)
#define IDirect3DRMWrap_AddRef(p)
#define IDirect3DRMTexture3_AddRef(p)
#define IDirect3DRMMeshBuilder3_Scale(p, a, b, c)
#define IDirect3DRMTexture3_QueryInterface(p, a, b)
#define IDirect3DRMMeshBuilder3_CreateMesh(p, a)
#define IDirect3DRMMesh_AddGroup(p, a, b, c, d, e)
#define IDirect3DRMMeshBuilder3_SetColorRGB(p, a, b, c)
#define IDirect3DRMTexture_Release(p)
HRESULT(__cdecl * D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture3 **texture)
#define IDirect3DRMMaterial2_SetSpecular(p, a, b, c)
#define IDirect3DRMMesh_SetGroupMaterial(p, a, b)
#define IDirect3DRMMesh_SetGroupTexture(p, a, b)
#define IDirect3DRMMesh_Release(p)
#define IDirect3DRMMeshBuilder3_GetName(p, a, b)
#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p, a, b)
#define IDirect3DRMMaterial2_Release(p)
#define IDirect3DRMMesh_SetGroupColor(p, a, b)
void(__cdecl * D3DRMOBJECTCALLBACK)(struct IDirect3DRMObject *obj, void *arg)
HRESULT(__cdecl * D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture **texture)
#define IDirect3DRMMesh_AddRef(p)
#define IDirect3DRMTexture2_AddRef(p)
#define IDirect3DRMMesh_SetVertices(p, a, b, c, d)
size_t const element_size
D3DVECTOR *WINAPI D3DRMVectorNormalize(D3DVECTOR *u)
D3DVECTOR *WINAPI D3DRMVectorAdd(D3DVECTOR *d, D3DVECTOR *s1, D3DVECTOR *s2)
D3DVECTOR *WINAPI D3DRMVectorCrossProduct(D3DVECTOR *d, D3DVECTOR *s1, D3DVECTOR *s2)
D3DVECTOR *WINAPI D3DRMVectorSubtract(D3DVECTOR *d, D3DVECTOR *s1, D3DVECTOR *s2)
HRESULT WINAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
_ACRTIMP size_t __cdecl strlen(const char *)
#define wrap(journal, var)
#define IDirectXFile_RegisterTemplates(p, a, b)
#define IDirectXFile_Release(p)
#define IDirectXFileEnumObject_GetNextDataObject(p, a)
#define IDirectXFileObject_Release(p)
#define IDirectXFileEnumObject_Release(p)
#define IDirectXFileDataReference_Release(p)
#define IDirectXFile_CreateEnumObject(p, a, b, c)
#define IDirectXFileData_GetType(p, a)
#define IDirectXFileData_GetName(p, a, b)
#define IDirectXFileData_GetData(p, a, b, c)
#define IDirectXFileObject_QueryInterface(p, a, b)
#define DXFILEERR_NOMOREOBJECTS
#define IDirectXFileDataReference_Resolve(p, a)
#define IDirectXFileData_GetNextObject(p, a)
#define IDirectXFileData_Release(p)
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
GLuint GLuint GLsizei GLenum const GLvoid * indices
GLenum GLuint GLint GLenum face
GLboolean GLboolean GLboolean b
GLboolean GLenum GLenum GLvoid * values
GLboolean GLboolean GLboolean GLboolean a
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 * u
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
static HRESULT WINAPI d3drm_mesh_SetGroupColorRGB(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
static ULONG WINAPI d3drm_mesh_builder3_Release(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetNormal(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVECTOR *vector)
static int WINAPI d3drm_mesh_builder3_AddNormal(IDirect3DRMMeshBuilder3 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_SetGroupMaterial(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMMaterial *material)
static HRESULT WINAPI d3drm_mesh_GetGroup(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, unsigned *vertex_count, unsigned *face_count, unsigned *vertex_per_face, DWORD *face_data_size, unsigned *face_data)
static HRESULT WINAPI d3drm_mesh_builder2_AddMeshBuilder(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMeshBuilder *mesh_builder)
static HRESULT WINAPI d3drm_mesh_builder3_AddMesh(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMesh *mesh)
static const struct IDirect3DRMMeshBuilder3Vtbl d3drm_mesh_builder3_vtbl
static HRESULT WINAPI d3drm_mesh_builder2_Translate(IDirect3DRMMeshBuilder2 *iface, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
static HRESULT WINAPI d3drm_mesh_SetGroupColor(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DCOLOR color)
static ULONG WINAPI d3drm_mesh_builder2_AddRef(IDirect3DRMMeshBuilder2 *iface)
static ULONG WINAPI d3drm_mesh_builder2_Release(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder2_GetClassName(IDirect3DRMMeshBuilder2 *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_QueryInterface(IDirect3DRMMesh *iface, REFIID riid, void **out)
static int WINAPI d3drm_mesh_builder3_AddVertex(IDirect3DRMMeshBuilder3 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder3_SetTexture(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMTexture3 *texture)
static HRESULT WINAPI d3drm_mesh_GetBox(IDirect3DRMMesh *iface, D3DRMBOX *box)
static HRESULT WINAPI d3drm_mesh_builder3_SetColor(IDirect3DRMMeshBuilder3 *iface, D3DCOLOR color)
static HRESULT WINAPI d3drm_wrap_GetClassName(IDirect3DRMWrap *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_Clone(IDirect3DRMMesh *iface, IUnknown *outer, REFIID iid, void **out)
static HRESULT WINAPI d3drm_mesh_builder2_Clone(IDirect3DRMMeshBuilder2 *iface, IUnknown *outer, REFIID iid, void **out)
static int WINAPI d3drm_mesh_builder3_GetNormalCount(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetParentMesh(IDirect3DRMMeshBuilder3 *iface, DWORD flags, IUnknown **parent)
static HRESULT WINAPI d3drm_mesh_builder2_SetVertexColor(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DCOLOR color)
static HRESULT WINAPI d3drm_mesh_builder2_GetBox(IDirect3DRMMeshBuilder2 *iface, D3DRMBOX *box)
static HRESULT WINAPI d3drm_mesh_builder3_AddDestroyCallback(IDirect3DRMMeshBuilder3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder2_Scale(IDirect3DRMMeshBuilder2 *iface, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
static HRESULT WINAPI d3drm_mesh_builder2_GenerateNormals2(IDirect3DRMMeshBuilder2 *iface, D3DVALUE crease, DWORD flags)
static HRESULT WINAPI d3drm_mesh_builder2_GetName(IDirect3DRMMeshBuilder2 *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_builder2_AddFrame(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFrame *frame)
static BOOL WINAPI d3drm_mesh_builder3_GetPerspective(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder2_SetAppData(IDirect3DRMMeshBuilder2 *iface, DWORD data)
static int WINAPI d3drm_mesh_builder2_AddNormal(IDirect3DRMMeshBuilder2 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteFace(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFace2 *face)
static HRESULT WINAPI d3drm_wrap_ApplyRelative(IDirect3DRMWrap *iface, IDirect3DRMFrame *frame, IDirect3DRMObject *object)
HRESULT d3drm_mesh_create(struct d3drm_mesh **mesh, IDirect3DRM *d3drm)
static D3DCOLOR WINAPI d3drm_mesh_builder3_GetVertexColor(IDirect3DRMMeshBuilder3 *iface, DWORD index)
static HRESULT WINAPI d3drm_mesh_SetVertices(IDirect3DRMMesh *iface, D3DRMGROUPINDEX group_id, unsigned int start_idx, unsigned int count, D3DRMVERTEX *values)
static D3DRMRENDERQUALITY WINAPI d3drm_mesh_builder3_GetQuality(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_AddMeshBuilder(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMeshBuilder3 *mesh_builder, DWORD flags)
static ULONG WINAPI d3drm_mesh_builder3_AddRef(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_wrap_AddDestroyCallback(IDirect3DRMWrap *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_SetNormals(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count, D3DVECTOR *vector)
static HRESULT WINAPI d3drm_mesh_builder3_GetVertex(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVECTOR *vector)
static struct d3drm_mesh_builder * impl_from_IDirect3DRMMeshBuilder2(IDirect3DRMMeshBuilder2 *iface)
HRESULT d3drm_mesh_builder_create(struct d3drm_mesh_builder **mesh_builder, IDirect3DRM *d3drm)
static HRESULT WINAPI d3drm_mesh_GetClassName(IDirect3DRMMesh *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_builder2_SetQuality(IDirect3DRMMeshBuilder2 *iface, D3DRMRENDERQUALITY quality)
static HRESULT WINAPI d3drm_mesh_builder3_SetMaterial(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMaterial2 *material)
static const struct IDirect3DRMWrapVtbl d3drm_wrap_vtbl
static HRESULT WINAPI d3drm_mesh_builder3_AddFacesIndexed(IDirect3DRMMeshBuilder3 *iface, DWORD flags, DWORD *indices, DWORD *start_idx, DWORD *count)
static HRESULT WINAPI d3drm_mesh_builder3_SetTextureTopology(IDirect3DRMMeshBuilder3 *iface, BOOL wrap_u, BOOL wrap_v)
static HRESULT WINAPI d3drm_mesh_builder3_GetClassName(IDirect3DRMMeshBuilder3 *iface, DWORD *size, char *name)
static struct d3drm_wrap * impl_from_IDirect3DRMWrap(IDirect3DRMWrap *iface)
static HRESULT WINAPI d3drm_mesh_builder2_QueryInterface(IDirect3DRMMeshBuilder2 *iface, REFIID riid, void **out)
static int WINAPI d3drm_mesh_builder3_GetVertexCount(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_AddFaces(IDirect3DRMMeshBuilder3 *iface, DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count, D3DVECTOR *normals, DWORD *face_data, IDirect3DRMFaceArray **array)
static HRESULT WINAPI d3drm_mesh_GetGroupMaterial(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMMaterial **material)
static HRESULT WINAPI d3drm_mesh_builder2_SetColorRGB(IDirect3DRMMeshBuilder2 *iface, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
static void clean_mesh_builder_data(struct d3drm_mesh_builder *mesh_builder)
HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData, D3DRMLOADTEXTURECALLBACK load_texture_proc, void *arg)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteDestroyCallback(IDirect3DRMMeshBuilder3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_ReserveSpace(IDirect3DRMMeshBuilder3 *iface, DWORD vertex_count, DWORD normal_count, DWORD face_count)
static HRESULT WINAPI d3drm_mesh_builder3_GetNormals(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD *normal_count, D3DVECTOR *normals)
static HRESULT WINAPI d3drm_mesh_Translate(IDirect3DRMMesh *iface, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertexColor(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DCOLOR color)
static D3DRMRENDERQUALITY WINAPI d3drm_mesh_GetGroupQuality(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id)
static HRESULT WINAPI d3drm_mesh_builder2_SetColorSource(IDirect3DRMMeshBuilder2 *iface, D3DRMCOLORSOURCE source)
static ULONG WINAPI d3drm_wrap_AddRef(IDirect3DRMWrap *iface)
static HRESULT WINAPI d3drm_wrap_QueryInterface(IDirect3DRMWrap *iface, REFIID riid, void **out)
static ULONG WINAPI d3drm_mesh_Release(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder3_CreateMesh(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMesh **mesh)
static HRESULT WINAPI d3drm_mesh_GetGroupTexture(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMTexture **texture)
static HRESULT WINAPI d3drm_mesh_builder3_GetVertices(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD *vertex_count, D3DVECTOR *vertices)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteSubMesh(IDirect3DRMMeshBuilder3 *iface, IUnknown *mesh)
static HRESULT WINAPI d3drm_mesh_builder2_SetPerspective(IDirect3DRMMeshBuilder2 *iface, BOOL enable)
static HRESULT WINAPI d3drm_mesh_SetAppData(IDirect3DRMMesh *iface, DWORD data)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertex(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder2_Save(IDirect3DRMMeshBuilder2 *iface, const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags)
static HRESULT WINAPI d3drm_mesh_builder3_AddFrame(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFrame3 *frame)
static HRESULT WINAPI d3drm_mesh_builder2_SetVertex(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder2_Load(IDirect3DRMMeshBuilder2 *iface, void *filename, void *name, D3DRMLOADOPTIONS flags, D3DRMLOADTEXTURECALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_SetColorRGB(IDirect3DRMMeshBuilder3 *iface, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
static HRESULT WINAPI d3drm_mesh_builder3_GetEnable(IDirect3DRMMeshBuilder3 *iface, DWORD *indices)
static ULONG WINAPI d3drm_mesh_AddRef(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetGeometry(IDirect3DRMMeshBuilder3 *iface, DWORD *vertex_count, D3DVECTOR *vertices, DWORD *normal_count, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data)
static HRESULT WINAPI d3drm_mesh_SetName(IDirect3DRMMesh *iface, const char *name)
static HRESULT WINAPI d3drm_mesh_builder3_Clone(IDirect3DRMMeshBuilder3 *iface, IUnknown *outer, REFIID iid, void **out)
static HRESULT WINAPI d3drm_mesh_builder2_SetMaterial(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMaterial *material)
static HRESULT WINAPI d3drm_mesh_builder3_Load(IDirect3DRMMeshBuilder3 *iface, void *filename, void *name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK cb, void *arg)
static DWORD WINAPI d3drm_mesh_builder2_GetAppData(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetFaces(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFaceArray **array)
static HRESULT WINAPI d3drm_mesh_builder3_Translate(IDirect3DRMMeshBuilder3 *iface, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
static HRESULT WINAPI d3drm_mesh_AddDestroyCallback(IDirect3DRMMesh *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static DWORD WINAPI d3drm_mesh_GetAppData(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder3_SetName(IDirect3DRMMeshBuilder3 *iface, const char *name)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteNormals(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count)
static HRESULT WINAPI d3drm_mesh_builder2_GetVertices(IDirect3DRMMeshBuilder2 *iface, DWORD *vertex_count, D3DVECTOR *vertices, DWORD *normal_count, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data)
static const struct IDirect3DRMMeshVtbl d3drm_mesh_vtbl
static HRESULT WINAPI d3drm_mesh_builder2_GetFaces(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFaceArray **array)
HRESULT d3drm_wrap_create(struct d3drm_wrap **wrap, IDirect3DRM *d3drm)
static HRESULT WINAPI d3drm_mesh_DeleteDestroyCallback(IDirect3DRMMesh *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_Scale(IDirect3DRMMeshBuilder3 *iface, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
static HRESULT WINAPI d3drm_mesh_builder3_QueryInterface(IDirect3DRMMeshBuilder3 *iface, REFIID riid, void **out)
static HRESULT WINAPI d3drm_mesh_builder2_SetNormal(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static D3DRMMAPPING WINAPI d3drm_mesh_GetGroupMapping(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id)
static HRESULT WINAPI d3drm_mesh_builder2_GetTextureCoordinates(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE *u, D3DVALUE *v)
static HRESULT WINAPI d3drm_mesh_SetGroupQuality(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value)
static HRESULT WINAPI d3drm_mesh_builder3_SetPerspective(IDirect3DRMMeshBuilder3 *iface, BOOL enable)
static HRESULT WINAPI d3drm_mesh_builder2_SetTextureTopology(IDirect3DRMMeshBuilder2 *iface, BOOL wrap_u, BOOL wrap_v)
static HRESULT WINAPI d3drm_mesh_AddGroup(IDirect3DRMMesh *iface, unsigned vertex_count, unsigned face_count, unsigned vertex_per_face, unsigned *face_data, D3DRMGROUPINDEX *id)
static int WINAPI d3drm_mesh_builder2_GetFaceCount(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetTextureCoordinates(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE *u, D3DVALUE *v)
static UINT WINAPI d3drm_mesh_GetGroupCount(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_GetName(IDirect3DRMMesh *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_builder3_SetTextureCoordinates(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE u, D3DVALUE v)
static HRESULT WINAPI d3drm_mesh_builder3_SetColorSource(IDirect3DRMMeshBuilder3 *iface, D3DRMCOLORSOURCE source)
static DWORD WINAPI d3drm_wrap_GetAppData(IDirect3DRMWrap *iface)
static HRESULT WINAPI d3drm_mesh_builder3_Empty(IDirect3DRMMeshBuilder3 *iface, DWORD flags)
static HRESULT WINAPI d3drm_mesh_builder2_DeleteDestroyCallback(IDirect3DRMMeshBuilder2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_AddTriangles(IDirect3DRMMeshBuilder3 *iface, DWORD flags, DWORD format, DWORD vertex_count, void *data)
static HRESULT WINAPI d3drm_wrap_DeleteDestroyCallback(IDirect3DRMWrap *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static BOOL WINAPI d3drm_mesh_builder2_GetPerspective(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetSubMeshes(IDirect3DRMMeshBuilder3 *iface, DWORD *count, IUnknown **meshes)
static struct d3drm_mesh * impl_from_IDirect3DRMMesh(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder2_ReserveSpace(IDirect3DRMMeshBuilder2 *iface, DWORD vertex_count, DWORD normal_count, DWORD face_count)
static HRESULT WINAPI d3drm_mesh_builder3_CreateFace(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFace2 **face)
static D3DRMRENDERQUALITY WINAPI d3drm_mesh_builder2_GetQuality(IDirect3DRMMeshBuilder2 *iface)
static int WINAPI d3drm_mesh_builder2_GetVertexCount(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_wrap_Init(IDirect3DRMWrap *iface, D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv)
static HRESULT WINAPI d3drm_mesh_Scale(IDirect3DRMMesh *iface, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
static HRESULT WINAPI d3drm_mesh_builder3_GetBox(IDirect3DRMMeshBuilder3 *iface, D3DRMBOX *box)
static HRESULT WINAPI d3drm_mesh_builder3_GetFace(IDirect3DRMMeshBuilder3 *iface, DWORD index, IDirect3DRMFace2 **face)
static D3DRMCOLORSOURCE WINAPI d3drm_mesh_builder2_GetColorSource(IDirect3DRMMeshBuilder2 *iface)
static D3DRMCOLORSOURCE WINAPI d3drm_mesh_builder3_GetColorSource(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertexColorRGB(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
static HRESULT WINAPI d3drm_mesh_SetGroupMapping(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DRMMAPPING value)
static ULONG WINAPI d3drm_wrap_Release(IDirect3DRMWrap *iface)
BOOL d3drm_array_reserve(void **elements, SIZE_T *capacity, SIZE_T element_count, SIZE_T element_size)
static HRESULT WINAPI d3drm_mesh_builder2_SetVertexColorRGB(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
static HRESULT WINAPI d3drm_mesh_builder2_AddFace(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFace *face)
static HRESULT WINAPI d3drm_mesh_builder3_SetNormal(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder3_Enable(IDirect3DRMMeshBuilder3 *iface, DWORD index)
static const struct IDirect3DRMMeshBuilder2Vtbl d3drm_mesh_builder2_vtbl
static HRESULT WINAPI d3drm_wrap_SetAppData(IDirect3DRMWrap *iface, DWORD data)
static HRESULT WINAPI d3drm_mesh_builder3_GenerateNormals(IDirect3DRMMeshBuilder3 *iface, D3DVALUE crease, DWORD flags)
static HRESULT WINAPI d3drm_mesh_builder2_SetTexture(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMTexture *texture)
static HRESULT WINAPI d3drm_wrap_SetName(IDirect3DRMWrap *iface, const char *name)
static HRESULT WINAPI d3drm_mesh_builder3_CreateSubMesh(IDirect3DRMMeshBuilder3 *iface, IUnknown **mesh)
static HRESULT WINAPI d3drm_mesh_builder3_AddFace(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFace2 *face)
static HRESULT WINAPI d3drm_wrap_Apply(IDirect3DRMWrap *iface, IDirect3DRMObject *object)
static HRESULT WINAPI d3drm_mesh_builder3_Save(IDirect3DRMMeshBuilder3 *iface, const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags)
static HRESULT WINAPI d3drm_wrap_Clone(IDirect3DRMWrap *iface, IUnknown *outer, REFIID iid, void **out)
static HRESULT WINAPI d3drm_mesh_builder2_AddFaces(IDirect3DRMMeshBuilder2 *iface, DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count, D3DVECTOR *normals, DWORD *face_data, IDirect3DRMFaceArray **array)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteVertices(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count)
static HRESULT WINAPI d3drm_mesh_builder2_GenerateNormals(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_SetQuality(IDirect3DRMMeshBuilder3 *iface, D3DRMRENDERQUALITY quality)
static HRESULT WINAPI d3drm_mesh_builder2_GetFace(IDirect3DRMMeshBuilder2 *iface, DWORD index, IDirect3DRMFace **face)
static int WINAPI d3drm_mesh_builder2_AddVertex(IDirect3DRMMeshBuilder2 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder3_GetName(IDirect3DRMMeshBuilder3 *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_wrap_GetName(IDirect3DRMWrap *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertices(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count, D3DVECTOR *vector)
static HRESULT WINAPI d3drm_mesh_builder2_AddMesh(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMesh *mesh)
static HRESULT WINAPI d3drm_mesh_builder2_SetColor(IDirect3DRMMeshBuilder2 *iface, D3DCOLOR color)
static D3DCOLOR WINAPI d3drm_mesh_builder2_GetVertexColor(IDirect3DRMMeshBuilder2 *iface, DWORD index)
static HRESULT WINAPI d3drm_mesh_builder2_CreateMesh(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMesh **mesh)
static HRESULT WINAPI d3drm_mesh_builder2_SetTextureCoordinates(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE u, D3DVALUE v)
static HRESULT WINAPI d3drm_mesh_builder2_AddDestroyCallback(IDirect3DRMMeshBuilder2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_GetVertices(IDirect3DRMMesh *iface, D3DRMGROUPINDEX group_id, DWORD start_idx, DWORD count, D3DRMVERTEX *vertices)
static HRESULT WINAPI d3drm_mesh_SetGroupTexture(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMTexture *texture)
static HRESULT WINAPI d3drm_mesh_builder3_SetAppData(IDirect3DRMMeshBuilder3 *iface, DWORD data)
static HRESULT WINAPI d3drm_mesh_builder2_CreateFace(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFace **face)
static HRESULT WINAPI d3drm_mesh_builder3_Optimize(IDirect3DRMMeshBuilder3 *iface, DWORD flags)
static int WINAPI d3drm_mesh_builder3_GetFaceCount(IDirect3DRMMeshBuilder3 *iface)
static DWORD WINAPI d3drm_mesh_builder3_GetAppData(IDirect3DRMMeshBuilder3 *iface)
static struct d3drm_mesh_builder * impl_from_IDirect3DRMMeshBuilder3(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder2_SetName(IDirect3DRMMeshBuilder2 *iface, const char *name)
static D3DCOLOR WINAPI d3drm_mesh_GetGroupColor(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id)
#define memcpy(s1, s2, n)
IDirect3DRMMeshBuilder * mesh_builder
static ULONG ** element_count
#define IsEqualGUID(rguid1, rguid2)
IDirect3DRMMeshBuilder3 IDirect3DRMMeshBuilder3_iface
IDirect3DRMMeshBuilder2 IDirect3DRMMeshBuilder2_iface
IDirect3DRMMaterial2 * material
IDirect3DRMMesh IDirect3DRMMesh_iface
IDirect3DRMTexture3 IDirect3DRMTexture3_iface
IDirect3DRMWrap IDirect3DRMWrap_iface
IDirect3DRMTexture3 * texture
IDirect3DRMMaterial2 * material
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define CLASS_E_CLASSNOTAVAILABLE