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>" 140 "DWORD nFaceIndexes;" 141 "array DWORD faceIndexes[nFaceIndexes];" 144 "template MeshNormals" 146 "<F6F23F43-7686-11CF-8F52-0040333594A3>" 148 "array Vector normals[nNormals];" 149 "DWORD nFaceNormals;" 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>" 212 "template InlineData" 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>" 256 "DWORD bRightHanded;" 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))))
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
HRESULT d3drm_mesh_create(struct d3drm_mesh **mesh, IDirect3DRM *d3drm)
while(CdLookupNextInitialFileDirent(IrpContext, Fcb, FileContext))
static DWORD WINAPI d3drm_wrap_GetAppData(IDirect3DRMWrap *iface)
void d3drm_object_cleanup(IDirect3DRMObject *iface, struct d3drm_object *object)
#define IDirect3DRMMeshBuilder3_Load(p, a, b, c, d, e)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteDestroyCallback(IDirect3DRMMeshBuilder3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_wrap_DeleteDestroyCallback(IDirect3DRMWrap *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
#define IDirect3DRMMeshBuilder3_SetColorRGB(p, a, b, c)
GLuint GLuint GLsizei GLenum const GLvoid * indices
static HRESULT WINAPI d3drm_mesh_SetGroupColor(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DCOLOR color)
static ULONG WINAPI d3drm_mesh_Release(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder3_GetParentMesh(IDirect3DRMMeshBuilder3 *iface, DWORD flags, IUnknown **parent)
static HRESULT WINAPI d3drm_mesh_builder3_QueryInterface(IDirect3DRMMeshBuilder3 *iface, REFIID riid, void **out)
static HRESULT WINAPI d3drm_mesh_builder3_SetTextureCoordinates(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE u, D3DVALUE v)
#define IDirect3DRM_CreateMesh(p, a)
static HRESULT WINAPI d3drm_mesh_builder3_AddFrame(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFrame3 *frame)
static ULONG WINAPI d3drm_wrap_AddRef(IDirect3DRMWrap *iface)
static HRESULT WINAPI d3drm_mesh_GetName(IDirect3DRMMesh *iface, DWORD *size, char *name)
#define IDirect3DRMMesh_SetGroupTexture(p, a, b)
BOOL d3drm_array_reserve(void **elements, SIZE_T *capacity, SIZE_T element_count, SIZE_T element_size)
static HRESULT WINAPI d3drm_mesh_builder2_SetTextureTopology(IDirect3DRMMeshBuilder2 *iface, BOOL wrap_u, BOOL wrap_v)
static HRESULT WINAPI d3drm_mesh_builder3_ReserveSpace(IDirect3DRMMeshBuilder3 *iface, DWORD vertex_count, DWORD normal_count, DWORD face_count)
static HRESULT WINAPI d3drm_mesh_QueryInterface(IDirect3DRMMesh *iface, REFIID riid, void **out)
IDirect3DRMMesh IDirect3DRMMesh_iface
static HRESULT WINAPI d3drm_mesh_builder3_GetEnable(IDirect3DRMMeshBuilder3 *iface, DWORD *indices)
static int WINAPI d3drm_mesh_builder3_GetVertexCount(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_GetBox(IDirect3DRMMesh *iface, D3DRMBOX *box)
HRESULT d3drm_mesh_builder_create(struct d3drm_mesh_builder **mesh_builder, IDirect3DRM *d3drm)
coclass MSXML2::XSLTemplate40 object
static HRESULT WINAPI d3drm_mesh_builder3_AddMeshBuilder(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMeshBuilder3 *mesh_builder, DWORD flags)
#define IDirectXFileEnumObject_Release(p)
static HRESULT WINAPI d3drm_mesh_builder3_GetFaces(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFaceArray **array)
static HRESULT WINAPI d3drm_mesh_builder3_SetColor(IDirect3DRMMeshBuilder3 *iface, D3DCOLOR color)
static DWORD WINAPI d3drm_mesh_GetAppData(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_builder2_GenerateNormals2(IDirect3DRMMeshBuilder2 *iface, D3DVALUE crease, DWORD flags)
#define IDirectXFileObject_Release(p)
ACPI_SIZE strlen(const char *String)
#define IDirectXFileData_Release(p)
static int WINAPI d3drm_mesh_builder3_AddVertex(IDirect3DRMMeshBuilder3 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
#define IDirect3DRMMesh_SetVertices(p, a, b, c, d)
IDirect3DRMMeshBuilder2 IDirect3DRMMeshBuilder2_iface
D3DVECTOR *WINAPI D3DRMVectorNormalize(D3DVECTOR *u)
#define D3DRMLOAD_FROMMEMORY
static ULONG WINAPI d3drm_mesh_AddRef(IDirect3DRMMesh *iface)
GLuint GLuint GLsizei count
static HRESULT WINAPI d3drm_mesh_builder3_GetBox(IDirect3DRMMeshBuilder3 *iface, D3DRMBOX *box)
#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p, a, b)
static HRESULT WINAPI d3drm_mesh_builder2_Translate(IDirect3DRMMeshBuilder2 *iface, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
static HRESULT WINAPI d3drm_mesh_builder2_GetFaces(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFaceArray **array)
static HRESULT WINAPI d3drm_mesh_builder3_GetVertex(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVECTOR *vector)
GLboolean GLenum GLenum GLvoid * values
IDirect3DRMMeshBuilder3 IDirect3DRMMeshBuilder3_iface
IDirect3DRMTexture3 IDirect3DRMTexture3_iface
static HRESULT WINAPI d3drm_wrap_Clone(IDirect3DRMWrap *iface, IUnknown *outer, REFIID iid, void **out)
#define IDirectXFile_Release(p)
#define IDirect3DRMWrap_AddRef(p)
static HRESULT WINAPI d3drm_mesh_builder2_AddMesh(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMesh *mesh)
static HRESULT WINAPI d3drm_mesh_builder2_SetAppData(IDirect3DRMMeshBuilder2 *iface, DWORD data)
static HRESULT WINAPI d3drm_mesh_builder2_DeleteDestroyCallback(IDirect3DRMMeshBuilder2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static ULONG WINAPI d3drm_mesh_builder2_Release(IDirect3DRMMeshBuilder2 *iface)
#define INVALID_HANDLE_VALUE
#define IDirectXFileData_GetName(p, a, b)
static HRESULT WINAPI d3drm_wrap_QueryInterface(IDirect3DRMWrap *iface, REFIID riid, void **out)
GLint GLint GLint GLint GLint x
#define IDirect3DRMMesh_AddRef(p)
HRESULT d3drm_object_add_destroy_callback(struct d3drm_object *object, D3DRMOBJECTCALLBACK cb, void *ctx)
static void clean_mesh_builder_data(struct d3drm_mesh_builder *mesh_builder)
static HRESULT WINAPI d3drm_mesh_builder2_CreateFace(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFace **face)
static HRESULT WINAPI d3drm_mesh_AddDestroyCallback(IDirect3DRMMesh *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
HRESULT(__cdecl * D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture3 **texture)
static HRESULT WINAPI d3drm_mesh_builder2_SetVertexColor(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DCOLOR color)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertexColor(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DCOLOR color)
D3DVECTOR *WINAPI D3DRMVectorAdd(D3DVECTOR *d, D3DVECTOR *s1, D3DVECTOR *s2)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertices(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count, D3DVECTOR *vector)
static void * heap_calloc(SIZE_T count, SIZE_T size)
static HRESULT WINAPI d3drm_mesh_builder3_SetPerspective(IDirect3DRMMeshBuilder3 *iface, BOOL enable)
#define DXFILEERR_NOMOREOBJECTS
WINE_DEFAULT_DEBUG_CHANNEL(d3drm)
HRESULT d3drm_material_create(struct d3drm_material **material, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
#define CLASS_E_CLASSNOTAVAILABLE
static void * heap_realloc(void *mem, size_t len)
static HRESULT WINAPI d3drm_mesh_builder3_Save(IDirect3DRMMeshBuilder3 *iface, const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static void * heap_alloc(size_t len)
static HRESULT WINAPI d3drm_mesh_builder2_SetPerspective(IDirect3DRMMeshBuilder2 *iface, BOOL enable)
enum _D3DRMCOLORSOURCE D3DRMCOLORSOURCE
static D3DCOLOR WINAPI d3drm_mesh_builder2_GetVertexColor(IDirect3DRMMeshBuilder2 *iface, DWORD index)
static HRESULT WINAPI d3drm_mesh_GetClassName(IDirect3DRMMesh *iface, DWORD *size, char *name)
IDirect3DRMMaterial2 * material
static HRESULT WINAPI d3drm_mesh_builder3_GetTextureCoordinates(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE *u, D3DVALUE *v)
static HRESULT WINAPI d3drm_mesh_builder3_SetTexture(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMTexture3 *texture)
static HRESULT WINAPI d3drm_mesh_builder3_GetVertices(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD *vertex_count, D3DVECTOR *vertices)
#define DXFILELOAD_FROMFILE
#define IDirect3DRMTexture3_AddRef(p)
static HRESULT WINAPI d3drm_mesh_builder2_AddDestroyCallback(IDirect3DRMMeshBuilder2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
#define IDirectXFile_RegisterTemplates(p, a, b)
static HRESULT WINAPI d3drm_mesh_builder3_GetFace(IDirect3DRMMeshBuilder3 *iface, DWORD index, IDirect3DRMFace2 **face)
static HRESULT WINAPI d3drm_mesh_builder2_GetName(IDirect3DRMMeshBuilder2 *iface, DWORD *size, char *name)
#define D3DRMERR_BADOBJECT
#define IDirect3DRM_AddRef(p)
static int WINAPI d3drm_mesh_builder3_AddNormal(IDirect3DRMMeshBuilder3 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
#define IDirect3DRMMaterial2_Release(p)
static HRESULT WINAPI d3drm_mesh_builder3_AddFace(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFace2 *face)
static HRESULT WINAPI d3drm_mesh_Clone(IDirect3DRMMesh *iface, IUnknown *outer, REFIID iid, void **out)
static HRESULT WINAPI d3drm_wrap_GetName(IDirect3DRMWrap *iface, DWORD *size, char *name)
static DWORD WINAPI d3drm_mesh_builder3_GetAppData(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_builder2_SetVertex(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_builder2_SetMaterial(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMaterial *material)
static HRESULT WINAPI d3drm_wrap_GetClassName(IDirect3DRMWrap *iface, DWORD *size, char *name)
static HRESULT WINAPI d3drm_mesh_builder2_SetQuality(IDirect3DRMMeshBuilder2 *iface, D3DRMRENDERQUALITY quality)
static HRESULT WINAPI d3drm_mesh_builder2_Scale(IDirect3DRMMeshBuilder2 *iface, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
struct _D3DVECTOR D3DVECTOR
#define IDirectXFileEnumObject_GetNextDataObject(p, a)
static HRESULT WINAPI d3drm_mesh_builder3_AddDestroyCallback(IDirect3DRMMeshBuilder3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static DWORD WINAPI d3drm_mesh_GetGroupCount(IDirect3DRMMesh *iface)
static HRESULT WINAPI d3drm_mesh_SetGroupMapping(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DRMMAPPING value)
HRESULT d3drm_object_get_name(struct d3drm_object *object, DWORD *size, char *name)
IDirect3DRMMaterial2 * material
static HRESULT WINAPI d3drm_mesh_DeleteDestroyCallback(IDirect3DRMMesh *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_SetVertexColorRGB(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
static HRESULT WINAPI d3drm_mesh_builder3_GetName(IDirect3DRMMeshBuilder3 *iface, DWORD *size, char *name)
HRESULT d3drm_object_get_class_name(struct d3drm_object *object, DWORD *size, char *name)
#define IDirect3DRMMeshBuilder3_AddVertex(p, a, b, c)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define IDirectXFileData_GetNextObject(p, a)
static HRESULT WINAPI d3drm_mesh_builder2_Clone(IDirect3DRMMeshBuilder2 *iface, IUnknown *outer, REFIID iid, void **out)
#define IDirect3DRMMeshBuilder3_GetName(p, a, b)
static HRESULT WINAPI d3drm_mesh_builder3_AddTriangles(IDirect3DRMMeshBuilder3 *iface, DWORD flags, DWORD format, DWORD vertex_count, void *data)
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_builder3_Optimize(IDirect3DRMMeshBuilder3 *iface, DWORD flags)
static HRESULT WINAPI d3drm_mesh_builder2_GetTextureCoordinates(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE *u, D3DVALUE *v)
static ULONG WINAPI d3drm_mesh_builder3_AddRef(IDirect3DRMMeshBuilder3 *iface)
#define IDirect3DRMMeshBuilder3_SetTexture(p, a)
static struct d3drm_mesh_builder * impl_from_IDirect3DRMMeshBuilder3(IDirect3DRMMeshBuilder3 *iface)
GLboolean GLboolean GLboolean b
static HRESULT WINAPI d3drm_mesh_builder2_AddFace(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFace *face)
static HRESULT WINAPI d3drm_mesh_builder3_SetColorRGB(IDirect3DRMMeshBuilder3 *iface, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
#define IDirect3DTexture_QueryInterface(p, a, b)
D3DVECTOR *WINAPI D3DRMVectorSubtract(D3DVECTOR *d, D3DVECTOR *s1, D3DVECTOR *s2)
static HRESULT WINAPI d3drm_mesh_builder3_GetNormal(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVECTOR *vector)
static HRESULT WINAPI d3drm_mesh_builder3_SetMaterial(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMaterial2 *material)
static HRESULT WINAPI d3drm_mesh_builder2_Load(IDirect3DRMMeshBuilder2 *iface, void *filename, void *name, D3DRMLOADOPTIONS flags, D3DRMLOADTEXTURECALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder2_SetNormal(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static HRESULT WINAPI d3drm_mesh_SetName(IDirect3DRMMesh *iface, const char *name)
#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p, a, b, c)
IDirect3DRMWrap IDirect3DRMWrap_iface
HRESULT d3drm_face_create(struct d3drm_face **face) DECLSPEC_HIDDEN
HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
#define IDirect3DRMMesh_SetGroupMaterial(p, a, b)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteSubMesh(IDirect3DRMMeshBuilder3 *iface, IUnknown *mesh)
#define IDirect3DTexture_Release(p)
static HRESULT WINAPI d3drm_mesh_builder3_Empty(IDirect3DRMMeshBuilder3 *iface, DWORD flags)
static HRESULT WINAPI d3drm_wrap_ApplyRelative(IDirect3DRMWrap *iface, IDirect3DRMFrame *frame, IDirect3DRMObject *object)
#define IDirect3DRMMaterial2_SetEmissive(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_SetGroupTexture(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMTexture *texture)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static HRESULT WINAPI d3drm_mesh_SetGroupMaterial(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMMaterial *material)
static HRESULT WINAPI d3drm_mesh_GetGroupTexture(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMTexture **texture)
static HRESULT WINAPI d3drm_mesh_SetVertices(IDirect3DRMMesh *iface, D3DRMGROUPINDEX group_id, unsigned int start_idx, unsigned int count, D3DRMVERTEX *values)
#define IDirectXFile_CreateEnumObject(p, a, b, c)
void(__cdecl * D3DRMOBJECTCALLBACK)(struct IDirect3DRMObject *obj, void *arg)
#define IDirectXFileObject_QueryInterface(p, a, b)
HRESULT d3drm_object_delete_destroy_callback(struct d3drm_object *object, D3DRMOBJECTCALLBACK cb, void *ctx)
static HRESULT WINAPI d3drm_mesh_builder3_GenerateNormals(IDirect3DRMMeshBuilder3 *iface, D3DVALUE crease, DWORD flags)
static HRESULT WINAPI d3drm_mesh_builder2_SetVertexColorRGB(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
#define IDirect3DRMMesh_AddGroup(p, a, b, c, d, e)
#define IDirectXFileData_GetData(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_builder3_SetNormal(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static int WINAPI d3drm_mesh_builder2_GetFaceCount(IDirect3DRMMeshBuilder2 *iface)
static const struct IDirect3DRMWrapVtbl d3drm_wrap_vtbl
#define D3DRMERR_BADVALUE
#define InterlockedDecrement
static HRESULT WINAPI d3drm_mesh_builder2_AddFrame(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMFrame *frame)
static HRESULT WINAPI d3drm_mesh_builder2_Save(IDirect3DRMMeshBuilder2 *iface, const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags)
static HRESULT WINAPI d3drm_wrap_SetAppData(IDirect3DRMWrap *iface, DWORD data)
static HRESULT WINAPI d3drm_mesh_builder2_GetClassName(IDirect3DRMMeshBuilder2 *iface, DWORD *size, char *name)
#define IDirect3DRMMeshBuilder3_Scale(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_builder2_SetColorSource(IDirect3DRMMeshBuilder2 *iface, D3DRMCOLORSOURCE source)
static HRESULT WINAPI d3drm_mesh_builder3_Scale(IDirect3DRMMeshBuilder3 *iface, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
static D3DRMRENDERQUALITY WINAPI d3drm_mesh_GetGroupQuality(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id)
#define IDirectXFileData_GetType(p, a)
#define memcpy(s1, s2, n)
static HRESULT WINAPI d3drm_mesh_SetGroupQuality(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value)
static D3DRMCOLORSOURCE WINAPI d3drm_mesh_builder2_GetColorSource(IDirect3DRMMeshBuilder2 *iface)
static D3DRMCOLORSOURCE WINAPI d3drm_mesh_builder3_GetColorSource(IDirect3DRMMeshBuilder3 *iface)
static HRESULT WINAPI d3drm_mesh_GetVertices(IDirect3DRMMesh *iface, D3DRMGROUPINDEX group_id, DWORD start_idx, DWORD count, D3DRMVERTEX *vertices)
static BOOL WINAPI d3drm_mesh_builder2_GetPerspective(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder2_GenerateNormals(IDirect3DRMMeshBuilder2 *iface)
#define IDirect3DRMMeshBuilder3_SetColor(p, a)
static ULONG WINAPI d3drm_wrap_Release(IDirect3DRMWrap *iface)
HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData, D3DRMLOADTEXTURECALLBACK load_texture_proc, void *arg)
static ULONG WINAPI d3drm_mesh_builder2_AddRef(IDirect3DRMMeshBuilder2 *iface)
static HRESULT WINAPI d3drm_mesh_builder3_AddFacesIndexed(IDirect3DRMMeshBuilder3 *iface, DWORD flags, DWORD *indices, DWORD *start_idx, DWORD *count)
static struct d3drm_mesh_builder * impl_from_IDirect3DRMMeshBuilder2(IDirect3DRMMeshBuilder2 *iface)
HRESULT d3drm_wrap_create(struct d3drm_wrap **wrap, IDirect3DRM *d3drm)
IDirect3DRMMeshBuilder * mesh_builder
#define IDirectXFileDataReference_Resolve(p, a)
static HRESULT WINAPI d3drm_mesh_AddGroup(IDirect3DRMMesh *iface, unsigned vertex_count, unsigned face_count, unsigned vertex_per_face, unsigned *face_data, D3DRMGROUPINDEX *id)
static HRESULT WINAPI d3drm_mesh_builder2_CreateMesh(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMesh **mesh)
#define IDirect3DRMMesh_Release(p)
#define IDirectXFileDataReference_Release(p)
static HRESULT WINAPI d3drm_mesh_builder3_GetNormals(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD *normal_count, D3DVECTOR *normals)
static HRESULT WINAPI d3drm_mesh_builder2_GetFace(IDirect3DRMMeshBuilder2 *iface, DWORD index, IDirect3DRMFace **face)
static HRESULT WINAPI d3drm_mesh_builder3_SetTextureTopology(IDirect3DRMMeshBuilder3 *iface, BOOL wrap_u, BOOL wrap_v)
#define IDirect3DRMTexture2_Release(p)
#define IDirect3DRMTexture2_AddRef(p)
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 HRESULT WINAPI d3drm_mesh_builder3_GetSubMeshes(IDirect3DRMMeshBuilder3 *iface, DWORD *count, IUnknown **meshes)
static int WINAPI d3drm_mesh_builder3_GetFaceCount(IDirect3DRMMeshBuilder3 *iface)
static const struct IDirect3DRMMeshBuilder3Vtbl d3drm_mesh_builder3_vtbl
#define InterlockedIncrement
static HRESULT WINAPI d3drm_mesh_builder3_SetName(IDirect3DRMMeshBuilder3 *iface, const char *name)
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
#define IDirect3DRMMeshBuilder3_AddNormal(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_GetGroupMaterial(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, IDirect3DRMMaterial **material)
#define IDirect3DRMMaterial2_SetSpecular(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_builder2_SetColor(IDirect3DRMMeshBuilder2 *iface, D3DCOLOR color)
static HRESULT WINAPI d3drm_mesh_builder2_GetBox(IDirect3DRMMeshBuilder2 *iface, D3DRMBOX *box)
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_builder3_Load(IDirect3DRMMeshBuilder3 *iface, void *filename, void *name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURE3CALLBACK cb, void *arg)
#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_Translate(IDirect3DRMMesh *iface, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
#define IDirect3DRMMeshBuilder3_SetMaterial(p, a)
static HRESULT WINAPI d3drm_mesh_builder2_SetTexture(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMTexture *texture)
#define IDirect3DRMMesh_SetGroupColor(p, a, b)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteVertices(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count)
static const struct IDirect3DRMMeshBuilder2Vtbl d3drm_mesh_builder2_vtbl
static HRESULT WINAPI d3drm_mesh_builder3_SetNormals(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count, D3DVECTOR *vector)
static HRESULT WINAPI d3drm_wrap_AddDestroyCallback(IDirect3DRMWrap *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
static void d3drm_set_color(D3DCOLOR *color, float r, float g, float b, float a)
static D3DCOLOR WINAPI d3drm_mesh_builder3_GetVertexColor(IDirect3DRMMeshBuilder3 *iface, DWORD index)
static HRESULT WINAPI d3drm_mesh_builder2_SetName(IDirect3DRMMeshBuilder2 *iface, const char *name)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteNormals(IDirect3DRMMeshBuilder3 *iface, DWORD start_idx, DWORD count)
static HRESULT WINAPI d3drm_mesh_builder2_SetTextureCoordinates(IDirect3DRMMeshBuilder2 *iface, DWORD index, D3DVALUE u, D3DVALUE v)
#define IDirect3DRMMeshBuilder3_GetClassName(p, a, b)
#define IDirect3DRMMeshBuilder3_CreateMesh(p, a)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
HRESULT WINAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile)
static HRESULT WINAPI d3drm_mesh_builder2_ReserveSpace(IDirect3DRMMeshBuilder2 *iface, DWORD vertex_count, DWORD normal_count, DWORD face_count)
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_builder3_CreateSubMesh(IDirect3DRMMeshBuilder3 *iface, IUnknown **mesh)
void d3drm_object_init(struct d3drm_object *object, const char *classname)
static HRESULT WINAPI d3drm_wrap_SetName(IDirect3DRMWrap *iface, const char *name)
GLint GLint GLint GLint GLint GLint y
#define IDirect3DRMTexture3_QueryInterface(p, a, b)
#define IDirect3DRMMaterial2_SetAmbient(p, a, b, c)
static HRESULT WINAPI d3drm_mesh_builder3_DeleteFace(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFace2 *face)
static HRESULT WINAPI d3drm_mesh_builder2_AddMeshBuilder(IDirect3DRMMeshBuilder2 *iface, IDirect3DRMMeshBuilder *mesh_builder)
static HMODULE MODULEINFO DWORD cb
static HRESULT WINAPI d3drm_mesh_builder3_SetVertex(IDirect3DRMMeshBuilder3 *iface, DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z)
enum _D3DRMXOFFORMAT D3DRMXOFFORMAT
static HRESULT WINAPI d3drm_mesh_builder3_Enable(IDirect3DRMMeshBuilder3 *iface, DWORD index)
static HRESULT WINAPI d3drm_mesh_builder3_Translate(IDirect3DRMMeshBuilder3 *iface, D3DVALUE tx, D3DVALUE ty, D3DVALUE tz)
#define IDirect3DRMTexture3_Release(p)
static DWORD WINAPI d3drm_mesh_builder2_GetAppData(IDirect3DRMMeshBuilder2 *iface)
static int WINAPI d3drm_mesh_builder2_AddVertex(IDirect3DRMMeshBuilder2 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
static const struct IDirect3DRMMeshVtbl d3drm_mesh_vtbl
static HRESULT WINAPI d3drm_wrap_Apply(IDirect3DRMWrap *iface, IDirect3DRMObject *object)
static BOOL WINAPI d3drm_mesh_builder3_GetPerspective(IDirect3DRMMeshBuilder3 *iface)
#define IDirect3DRM_Release(p)
static HRESULT WINAPI d3drm_mesh_builder3_SetColorSource(IDirect3DRMMeshBuilder3 *iface, D3DRMCOLORSOURCE source)
static D3DRMRENDERQUALITY WINAPI d3drm_mesh_builder2_GetQuality(IDirect3DRMMeshBuilder2 *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)
#define wrap(journal, var)
enum _D3DRMWRAPTYPE D3DRMWRAPTYPE
HRESULT(__cdecl * D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture **texture)
static struct d3drm_wrap * impl_from_IDirect3DRMWrap(IDirect3DRMWrap *iface)
static HRESULT WINAPI d3drm_mesh_builder3_SetQuality(IDirect3DRMMeshBuilder3 *iface, D3DRMRENDERQUALITY quality)
static int WINAPI d3drm_mesh_builder2_AddNormal(IDirect3DRMMeshBuilder2 *iface, D3DVALUE x, D3DVALUE y, D3DVALUE z)
#define D3DRMERR_NOTFOUND
GLuint GLuint GLsizei GLenum type
static HRESULT WINAPI d3drm_mesh_SetAppData(IDirect3DRMMesh *iface, DWORD data)
#define CreateFileA(a, b, c, d, e, f, g)
GLboolean GLboolean GLboolean GLboolean a
static int WINAPI d3drm_mesh_builder3_GetNormalCount(IDirect3DRMMeshBuilder3 *iface)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
static D3DRMMAPPING WINAPI d3drm_mesh_GetGroupMapping(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id)
static D3DCOLOR WINAPI d3drm_mesh_GetGroupColor(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id)
static struct d3drm_mesh * impl_from_IDirect3DRMMesh(IDirect3DRMMesh *iface)
#define IDirect3DRMMaterial2_SetPower(p, a)
static HRESULT WINAPI d3drm_mesh_SetGroupColorRGB(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue)
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_GetGroup(IDirect3DRMMesh *iface, D3DRMGROUPINDEX id, unsigned *vertex_count, unsigned *face_count, unsigned *vertex_per_face, DWORD *face_data_size, unsigned *face_data)
IDirect3DRMTexture3 * texture
static HRESULT WINAPI d3drm_mesh_builder3_CreateFace(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMFace2 **face)
static HRESULT WINAPI d3drm_mesh_Scale(IDirect3DRMMesh *iface, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz)
static HRESULT WINAPI d3drm_mesh_builder3_AddMesh(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMesh *mesh)
static HRESULT WINAPI d3drm_mesh_builder3_CreateMesh(IDirect3DRMMeshBuilder3 *iface, IDirect3DRMMesh **mesh)
#define D3DRMLOAD_FROMFILE
#define IDirect3DRMMeshBuilder3_SetName(p, a)
GLenum GLuint GLint GLenum face
static HRESULT WINAPI d3drm_mesh_builder3_Clone(IDirect3DRMMeshBuilder3 *iface, IUnknown *outer, REFIID iid, void **out)
static HRESULT WINAPI d3drm_mesh_builder3_SetAppData(IDirect3DRMMeshBuilder3 *iface, DWORD data)
static HRESULT WINAPI d3drm_mesh_builder3_GetClassName(IDirect3DRMMeshBuilder3 *iface, DWORD *size, char *name)
static int WINAPI d3drm_mesh_builder2_GetVertexCount(IDirect3DRMMeshBuilder2 *iface)
static ULONG WINAPI d3drm_mesh_builder3_Release(IDirect3DRMMeshBuilder3 *iface)
static D3DRMRENDERQUALITY WINAPI d3drm_mesh_builder3_GetQuality(IDirect3DRMMeshBuilder3 *iface)
static BOOL heap_free(void *mem)
static HRESULT WINAPI d3drm_mesh_builder2_QueryInterface(IDirect3DRMMeshBuilder2 *iface, REFIID riid, void **out)
D3DVECTOR *WINAPI D3DRMVectorCrossProduct(D3DVECTOR *d, D3DVECTOR *s1, D3DVECTOR *s2)
HRESULT d3drm_object_set_name(struct d3drm_object *object, const char *name)
#define IDirect3DRMTexture_Release(p)
#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p, a, b)
#define IDirect3DRMTexture_QueryInterface(p, a, b)
#define IDirect3DRMMaterial2_AddRef(p)
#define DXFILELOAD_FROMMEMORY
GLuint const GLchar * name
static HRESULT WINAPI d3drm_mesh_builder2_SetColorRGB(IDirect3DRMMeshBuilder2 *iface, D3DVALUE red, D3DVALUE green, D3DVALUE blue)