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;
265 if (element_count <= *capacity)
268 max_capacity = ~(
SIZE_T)0 / element_size;
269 if (max_capacity < element_count)
272 new_capacity =
max(*capacity, 4);
273 while (new_capacity < element_count && new_capacity <= max_capacity / 2)
276 if (new_capacity < element_count)
277 new_capacity = max_capacity;
279 if (!(new_elements =
heap_realloc(*elements, new_capacity * element_size)))
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 %#x.\n", iface,
data);
445 TRACE(
"iface %p, data %#x.\n", iface,
data);
454 TRACE(
"iface %p.\n", iface);
463 TRACE(
"iface %p.\n", iface);
500 TRACE(
"iface %p, filename %p, name %p, flags %#x, cb %p, ctx %p.\n",
504 FIXME(
"Texture callback is not yet supported\n");
513 FIXME(
"iface %p, filename %s, format %#x, flags %#x 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 %u, vertices %p, normal_count %u, normals %p, face_data %p, array %p stub!\n",
607 FIXME(
"iface %p, vertex_count %u, normal_count %u, face_count %u stub!\n",
627 TRACE(
"iface %p, color 0x%08x.\n", iface,
color);
636 IDirect3DRMTexture3 *texture3 =
NULL;
665 FIXME(
"iface %p, wrap_u %#x, wrap_v %#x stub!\n", iface, wrap_u, wrap_v);
680 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
688 FIXME(
"iface %p, index %u, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
696 FIXME(
"iface %p, index %u, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
706 TRACE(
"iface %p, index %u, u %.8e, v %.8e.\n", iface,
index,
u,
v);
715 FIXME(
"iface %p, index %u, color 0x%08x stub!\n", iface,
index,
color);
723 FIXME(
"iface %p, index %u, red %.8e, green %.8e, blue %.8e stub!\n",
730 IDirect3DRMFaceArray **
array)
732 FIXME(
"iface %p, array %p stub!\n", iface,
array);
743 TRACE(
"iface %p, vertex_count %p, vertices %p, normal_count %p, normals %p, face_data_size %p, face_data %p.\n",
775 TRACE(
"iface %p, index %u, u %p, v %p.\n", iface,
index,
u,
v);
786 TRACE(
"iface %p, x %.8e, y %.8e, z %.8e.\n", iface,
x,
y,
z);
796 TRACE(
"iface %p, x %.8e, y %.8e, z %.8e.\n", iface,
x,
y,
z);
806 TRACE(
"iface %p, face %p.\n", iface,
face);
811 *
face = &
object->IDirect3DRMFace_iface;
818 FIXME(
"iface %p stub!\n", iface);
825 FIXME(
"iface %p stub!\n", iface);
834 TRACE(
"iface %p.\n", iface);
843 TRACE(
"iface %p.\n", iface);
850 FIXME(
"iface %p, index %u stub!\n", iface,
index);
859 TRACE(
"iface %p, mesh %p.\n", iface,
mesh);
867 FIXME(
"iface %p, crease %.8e, flags %#x stub!\n", iface, crease,
flags);
948 TRACE(
"iface %p.\n", iface);
957 TRACE(
"iface %p.\n", iface);
975 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
985 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
1023 IDirectXFileData *pData2 =
NULL;
1030 DWORD* faces_vertex_idx_ptr;
1031 DWORD faces_vertex_idx_size;
1034 DWORD* faces_data_ptr;
1035 DWORD faces_data_size = 0;
1069 TRACE(
"Mesh: nb_vertices = %lu, nb_faces = %d, faces_vertex_idx_size = %d\n",
mesh_builder->nb_vertices,
1080 faces_vertex_idx_ptr = faces_vertex_idx_data =
heap_alloc(faces_vertex_idx_size);
1082 faces_vertex_idx_size);
1090 IDirectXFileObject *
object;
1095 TRACE(
"No more object\n");
1114 DWORD nb_faces_normals;
1115 DWORD faces_normal_idx_size;
1124 TRACE(
"MeshNormals: nb_normals = %lu, nb_faces_normals = %d\n",
mesh_builder->nb_normals, nb_faces_normals);
1126 WARN(
"nb_face_normals (%d) != nb_faces (%d)\n", nb_faces_normals,
mesh_builder->nb_faces);
1137 faces_normal_idx_ptr = faces_normal_idx_data =
heap_alloc(faces_normal_idx_size);
1139 +
sizeof(
DWORD), faces_normal_idx_size);
1157 DWORD nb_face_indices;
1159 IDirectXFileObject *
child;
1164 TRACE(
"Process MeshMaterialList\n");
1172 data_size = 2 *
sizeof(
DWORD) + nb_face_indices *
sizeof(
DWORD);
1174 TRACE(
"nMaterials = %u, nFaceIndexes = %u\n", nb_materials, nb_face_indices);
1176 if (
size != data_size)
1177 WARN(
"Returned size %u does not match expected one %u\n",
size, data_size);
1183 nb_face_indices *
sizeof(*
mesh_builder->material_indices));
1194 IDirectXFileData *
data;
1196 IDirectXFileObject *material_child;
1223 mesh_builder->materials[
i].material = &
object->IDirect3DRMMaterial2_iface;
1233 WARN(
"Material size %u does not match expected one %u\n",
size, 44);
1249 IDirectXFileData *
data;
1253 &IID_IDirectXFileData, (
void **)&
data)))
1258 &IID_IDirectXFileDataReference, (
void **)&
reference)))
1273 WARN(
"Not a texture filename\n");
1281 if (load_texture_proc)
1325 WARN(
"Found more sub-objects than expected\n");
1354 DWORD nb_face_indexes;
1357 if (faces_vertex_idx_size <
sizeof(
DWORD))
1358 WARN(
"Not enough data to read number of indices of face %d\n",
i);
1360 nb_face_indexes = *(faces_data_ptr + faces_data_size++) = *(faces_vertex_idx_ptr++);
1361 faces_vertex_idx_size--;
1362 if (faces_normal_idx_data && (*(faces_normal_idx_ptr++) != nb_face_indexes))
1363 WARN(
"Faces indices number mismatch\n");
1365 if (faces_vertex_idx_size < (nb_face_indexes *
sizeof(
DWORD)))
1366 WARN(
"Not enough data to read all indices of face %d\n",
i);
1371 if (nb_face_indexes > 2
1374 && faces_vertex_idx_ptr[2] <
mesh_builder->nb_vertices)
1385 face_normal.u1.
x = 0.0f;
1386 face_normal.u2.
y = 0.0f;
1387 face_normal.u3.
z = 0.0f;
1391 for (
j = 0;
j < nb_face_indexes;
j++)
1394 *(faces_data_ptr + faces_data_size++) = *faces_vertex_idx_ptr;
1399 *(faces_data_ptr + faces_data_size++) = *(faces_normal_idx_ptr++);
1403 DWORD vertex_idx = *faces_vertex_idx_ptr;
1406 WARN(
"Found vertex index %u but only %lu vertices available => use index 0\n", vertex_idx,
1410 *(faces_data_ptr + faces_data_size++) = vertex_idx;
1414 faces_vertex_idx_ptr++;
1416 faces_vertex_idx_size -= nb_face_indexes;
1420 *(faces_data_ptr + faces_data_size++) = 0;
1447 TRACE(
"Mesh data loaded successfully\n");
1464 IDirectXFile *dxfile =
NULL;
1465 IDirectXFileEnumObject *enum_object =
NULL;
1473 TRACE(
"iface %p, filename %p, name %p, loadflags %#x, cb %p, arg %p.\n",
1489 FIXME(
"Load options %d not supported yet\n", loadflags);
1579 FIXME(
"iface %p, filename %s, format %#x, flags %#x stub!\n",
1591 TRACE(
"iface %p, sx %.8e, sy %.8e, sz %.8e.\n", iface, sx, sy, sz);
1608 FIXME(
"iface %p, tx %.8e, ty %.8e, tz %.8e stub!\n", iface, tx,
ty,
tz);
1616 FIXME(
"iface %p, source %#x stub!\n", iface,
source);
1623 FIXME(
"iface %p, box %p stub!\n", iface,
box);
1631 FIXME(
"iface %p, crease %.8e, flags %#x stub!\n", iface, crease,
flags);
1638 FIXME(
"iface %p stub!\n", iface);
1645 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
1660 FIXME(
"iface %p, frame %p stub!\n", iface, frame);
1667 FIXME(
"iface %p, face %p stub!\n", iface,
face);
1674 DWORD *face_data, IDirect3DRMFaceArray **
array)
1676 FIXME(
"iface %p, vertex_count %u, vertices %p, normal_count %u, normals %p, face_data %p array %p stub!\n",
1685 FIXME(
"iface %p, vertex_count %u, normal_count %u, face_count %u stub!\n",
1707 TRACE(
"iface %p, color 0x%08x.\n", iface,
color);
1749 FIXME(
"iface %p, wrap_u %#x, wrap_v %#x stub!\n", iface, wrap_u, wrap_v);
1757 FIXME(
"iface %p, quality %#x stub!\n", iface,
quality);
1765 FIXME(
"iface %p, enable %#x stub!\n", iface,
enable);
1773 FIXME(
"iface %p, index %u, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
1781 FIXME(
"iface %p, index %u, x %.8e, y %.8e, z %.8e stub!\n", iface,
index,
x,
y,
z);
1791 TRACE(
"iface %p, index %u, u %.8e, v %.8e.\n", iface,
index,
u,
v);
1805 FIXME(
"iface %p, index %u, color 0x%08x stub!\n", iface,
index,
color);
1813 FIXME(
"iface %p, index %u, 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 %u, 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;
1907 FIXME(
"iface %p stub!\n", iface);
1914 FIXME(
"iface %p stub!\n", iface);
1923 TRACE(
"iface %p.\n", iface);
1932 TRACE(
"iface %p.\n", iface);
1940 FIXME(
"iface %p, index %u stub!\n", iface,
index);
1951 TRACE(
"iface %p, mesh %p.\n", iface,
mesh);
1980 unsigned* face_data;
1984 BOOL* used_vertices;
2000 out_ptr = face_data;
2012 in_ptr += 1 + *in_ptr * 2;
2021 DWORD nb_indices = *in_ptr++;
2026 in_ptr += 2 * nb_indices;
2032 *out_ptr++ = nb_indices;
2034 for (
j = 0;
j < nb_indices;
j++)
2036 *out_ptr = *in_ptr++;
2037 used_vertices[*out_ptr++] =
TRUE;
2046 if (used_vertices[
i])
2056 (IDirect3DRMMaterial *)
mesh_builder->materials[
k].material);
2062 &IID_IDirect3DRMTexture, (
void **)&
texture);
2080 FIXME(
"iface %p, index %u, face %p stub!\n", iface,
index,
face);
2104 FIXME(
"iface %p, start_idx %u, count %u stub!\n", iface, start_idx,
count);
2112 FIXME(
"iface %p, start_idx %u, count %u stub!\n", iface, start_idx,
count);
2119 FIXME(
"iface %p, face %p stub!\n", iface,
face);
2126 FIXME(
"iface %p, flags %#x stub!\n", iface,
flags);
2133 FIXME(
"iface %p, flags %#x stub!\n", iface,
flags);
2141 FIXME(
"iface %p, flags %#x, indices %p, start_idx %p, count %p stub!\n",
2149 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
2165 FIXME(
"iface %p, count %p, meshes %p stub!\n", iface,
count, meshes);
2172 FIXME(
"iface %p, mesh %p stub!\n", iface,
mesh);
2179 FIXME(
"iface %p, index %u stub!\n", iface,
index);
2194 FIXME(
"iface %p, flags %#x, format %#x, vertex_count %u, data %p stub!\n",
2203 FIXME(
"iface %p, start_idx %u, count %u, vector %p stub!\n", iface, start_idx,
count,
vector);
2214 TRACE(
"iface %p, start_idx %u, vertex_count %p, vertices %p.\n",
2228 FIXME(
"iface %p, start_idx %u, count %u, vector %p stub!\n",
2240 TRACE(
"iface %p, start_idx %u, normal_count %p, normals %p.\n",
2241 iface, start_idx, normal_count,
normals);
2244 *normal_count =
count;
2255 TRACE(
"iface %p.\n", iface);
2336 static const char classname[] =
"Builder";
2341 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
2347 object->d3drm =
d3drm;
2382 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
2392 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
2400 for (
i = 0;
i <
mesh->nb_groups; ++
i)
2404 if (
mesh->groups[
i].material)
2406 if (
mesh->groups[
i].texture)
2429 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2439 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2448 TRACE(
"iface %p, data %#x.\n", iface,
data);
2459 TRACE(
"iface %p.\n", iface);
2461 return mesh->obj.appdata;
2494 FIXME(
"iface %p, sx %.8e, sy %.8e, sz %.8e stub!\n", iface, sx, sy, sz);
2502 FIXME(
"iface %p, tx %.8e, ty %.8e, tz %.8e stub!\n", iface, tx,
ty,
tz);
2509 FIXME(
"iface %p, box %p stub!\n", iface,
box);
2520 TRACE(
"iface %p, vertex_count %u, face_count %u, vertex_per_face %u, face_data %p, id %p.\n",
2544 unsigned nb_indices;
2546 group->face_data_size = 0;
2550 nb_indices = *face_data_ptr;
2551 group->face_data_size += nb_indices + 1;
2552 face_data_ptr += nb_indices;
2566 *
id =
mesh->nb_groups++;
2576 TRACE(
"iface %p, group_id %#x, start_idx %u, count %u, values %p.\n",
2579 if (group_id >=
mesh->nb_groups)
2582 if ((start_idx +
count - 1) >=
mesh->groups[group_id].nb_vertices)
2597 TRACE(
"iface %p, id %#x, color 0x%08x.\n", iface,
id,
color);
2599 if (
id >=
mesh->nb_groups)
2612 TRACE(
"iface %p, id %#x, red %.8e, green %.8e, blue %.8e.\n", iface,
id,
red,
green,
blue);
2614 if (
id >=
mesh->nb_groups)
2624 FIXME(
"iface %p, id %#x, value %#x stub!\n", iface,
id,
value);
2631 FIXME(
"iface %p, id %#x, value %#x stub!\n", iface,
id,
value);
2641 TRACE(
"iface %p, id %#x, material %p.\n", iface,
id, material);
2643 if (
id >=
mesh->nb_groups)
2646 if (
mesh->groups[
id].material)
2649 mesh->groups[
id].material = (IDirect3DRMMaterial2 *)material;
2662 TRACE(
"iface %p, id %#x, texture %p.\n", iface,
id,
texture);
2664 if (
id >=
mesh->nb_groups)
2667 if (
mesh->groups[
id].texture)
2683 TRACE(
"iface %p.\n", iface);
2685 return mesh->nb_groups;
2693 TRACE(
"iface %p, id %#x, vertex_count %p, face_count %p, vertex_per_face %p, face_data_size %p, face_data %p.\n",
2696 if (
id >=
mesh->nb_groups)
2708 memcpy(face_data,
mesh->groups[
id].face_data,
mesh->groups[
id].face_data_size *
sizeof(*face_data));
2718 TRACE(
"iface %p, group_id %#x, start_idx %u, count %u, vertices %p.\n",
2719 iface, group_id, start_idx,
count, vertices);
2721 if (group_id >=
mesh->nb_groups)
2724 if ((start_idx +
count - 1) >=
mesh->groups[group_id].nb_vertices)
2739 TRACE(
"iface %p, id %#x.\n", iface,
id);
2741 return mesh->groups[
id].color;
2746 FIXME(
"iface %p, id %#x stub!\n", iface,
id);
2752 FIXME(
"iface %p, id %#x stub!\n", iface,
id);
2762 TRACE(
"iface %p, id %#x, material %p.\n", iface,
id, material);
2764 if (
id >=
mesh->nb_groups)
2770 if (
mesh->groups[
id].material)
2783 TRACE(
"iface %p, id %#x, texture %p.\n", iface,
id,
texture);
2785 if (
id >=
mesh->nb_groups)
2791 if (
mesh->groups[
id].texture)
2840 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
2845 object->d3drm =
d3drm;
2879 TRACE(
"%p increasing refcount to %u.\n", iface, refcount);
2889 TRACE(
"%p decreasing refcount to %u.\n", iface, refcount);
2913 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2923 TRACE(
"iface %p, cb %p, ctx %p.\n", iface,
cb,
ctx);
2932 TRACE(
"iface %p, data %#x.\n", iface,
data);
2943 TRACE(
"iface %p.\n", iface);
2945 return wrap->obj.appdata;
2979 FIXME(
"iface %p, type %d, reference frame %p, ox %.8e, oy %.8e, oz %.8e, dx %.8e, dy %.8e, dz %.8e, ux %.8e, "
2980 "uy %.8e, uz %.8e, ou %.8e, ov %.8e, su %.8e, sv %.8e.\n", iface,
type,
reference, ox, oy, oz,
dx,
dy, dz,
2981 ux, uy, uz, ou, ov, su, sv);
2988 FIXME(
"iface %p, object %p.\n", iface,
object);
2994 IDirect3DRMObject *
object)
2996 FIXME(
"iface %p, frame %p, object %p.\n", iface, frame,
object);
3026 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
ACPI_SIZE strlen(const char *String)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
#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_material_create(struct d3drm_material **material, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
static void d3drm_set_color(D3DCOLOR *color, float r, float g, float b, float a)
HRESULT d3drm_face_create(struct d3drm_face **face) DECLSPEC_HIDDEN
HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
enum _D3DRMWRAPTYPE D3DRMWRAPTYPE
#define D3DRMLOAD_FROMFILE
enum _D3DRMXOFFORMAT D3DRMXOFFORMAT
enum _D3DRMCOLORSOURCE D3DRMCOLORSOURCE
#define D3DRMLOAD_FROMMEMORY
#define IDirect3DRMMeshBuilder3_SetName(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)
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)
#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 DXFILELOAD_FROMFILE
#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 DXFILELOAD_FROMMEMORY
#define IDirectXFileDataReference_Resolve(p, a)
#define IDirectXFileData_GetNextObject(p, a)
#define IDirectXFileData_Release(p)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
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 DWORD WINAPI d3drm_mesh_GetGroupCount(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetTextureCoordinates(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE *u, D3DVALUE *v)
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 HMODULE MODULEINFO DWORD cb
#define IsEqualGUID(rguid1, rguid2)
static void * heap_calloc(SIZE_T count, SIZE_T size)
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)
#define CLASS_E_CLASSNOTAVAILABLE