include: Undefine the nameless union/struct macros to avoid conflicts with mingw.
[wine] / include / rmxftmpl.x
1 xof 0302txt 0064
2 // Copyright (C) 2011 Dylan Smith
3 //
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 //
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17
18 template Header
19 {
20     <3D82AB43-62DA-11CF-AB39-0020AF71E433>
21     WORD major;
22     WORD minor;
23     DWORD flags;
24 }
25
26 template Vector
27 {
28     <3D82AB5E-62DA-11CF-AB39-0020AF71E433>
29     FLOAT x;
30     FLOAT y;
31     FLOAT z;
32 }
33
34 template Coords2d
35 {
36     <F6F23F44-7686-11CF-8F52-0040333594A3>
37     FLOAT u;
38     FLOAT v;
39 }
40
41 template Matrix4x4
42 {
43     <F6F23F45-7686-11CF-8F52-0040333594A3>
44     array FLOAT matrix[16];
45 }
46
47 template ColorRGBA
48 {
49     <35FF44E0-6C7C-11CF-8F52-0040333594A3>
50     FLOAT red;
51     FLOAT green;
52     FLOAT blue;
53     FLOAT alpha;
54 }
55
56 template ColorRGB
57 {
58     <D3E16E81-7835-11CF-8F52-0040333594A3>
59     FLOAT red;
60     FLOAT green;
61     FLOAT blue;
62 }
63
64 template IndexedColor
65 {
66     <1630B820-7842-11CF-8F52-0040333594A3>
67     DWORD index;
68     ColorRGBA indexColor;
69 }
70
71 template Boolean
72 {
73     <537DA6A0-CA37-11D0-941C-0080C80CFA7B>
74     DWORD truefalse;
75 }
76
77 template Boolean2d
78 {
79     <4885AE63-78E8-11CF-8F52-0040333594A3>
80     Boolean u;
81     Boolean v;
82 }
83
84 template MaterialWrap
85 {
86     <4885AE60-78E8-11CF-8F52-0040333594A3>
87     Boolean u;
88     Boolean v;
89 }
90
91 template TextureFilename
92 {
93     <A42790E1-7810-11CF-8F52-0040333594A3>
94     STRING filename;
95 }
96
97 template Material
98 {
99     <3D82AB4D-62DA-11CF-AB39-0020AF71E433>
100     ColorRGBA faceColor;
101     FLOAT power;
102     ColorRGB specularColor;
103     ColorRGB emissiveColor;
104     [ ... ]
105 }
106
107 template MeshFace
108 {
109     <3D82AB5F-62DA-11CF-AB39-0020AF71E433>
110     DWORD nFaceVertexIndices;
111     array DWORD faceVertexIndices[nFaceVertexIndices];
112 }
113
114 template MeshFaceWraps
115 {
116     <ED1EC5C0-C0A8-11D0-941C-0080C80CFA7B>
117     DWORD nFaceWrapValues;
118     array Boolean2d faceWrapValues[nFaceWrapValues];
119 }
120
121 template MeshTextureCoords
122 {
123     <F6F23F40-7686-11CF-8F52-0040333594A3>
124     DWORD nTextureCoords;
125     array Coords2d textureCoords[nTextureCoords];
126 }
127
128 template MeshMaterialList
129 {
130     <F6F23F42-7686-11CF-8F52-0040333594A3>
131     DWORD nMaterials;
132     DWORD nFaceIndexes;
133     array DWORD faceIndexes[nFaceIndexes];
134     [ Material ]
135 }
136
137 template MeshNormals
138 {
139     <F6F23F43-7686-11CF-8F52-0040333594A3>
140     DWORD nNormals;
141     array Vector normals[nNormals];
142     DWORD nFaceNormals;
143     array MeshFace faceNormals[nFaceNormals];
144 }
145
146 template MeshVertexColors
147 {
148     <1630B821-7842-11CF-8F52-0040333594A3>
149     DWORD nVertexColors;
150     array IndexedColor vertexColors[nVertexColors];
151 }
152
153 template Mesh
154 {
155     <3D82AB44-62DA-11CF-AB39-0020AF71E433>
156     DWORD nVertices;
157     array Vector vertices[nVertices];
158     DWORD nFaces;
159     array MeshFace faces[nFaces];
160     [ ... ]
161 }
162
163 template FrameTransformMatrix
164 {
165     <F6F23F41-7686-11CF-8F52-0040333594A3>
166     Matrix4x4 frameMatrix;
167 }
168
169 template Frame
170 {
171     <3D82AB46-62DA-11CF-AB39-0020AF71E433>
172     [ ... ]
173 }
174
175 template FloatKeys
176 {
177     <10DD46A9-775B-11CF-8F52-0040333594A3>
178     DWORD nValues;
179     array FLOAT values[nValues];
180 }
181
182 template TimedFloatKeys
183 {
184     <F406B180-7B3B-11CF-8F52-0040333594A3>
185     DWORD time;
186     FloatKeys tfkeys;
187 }
188
189 template AnimationKey
190 {
191     <10DD46A8-775B-11CF-8F52-0040333594A3>
192     DWORD keyType;
193     DWORD nKeys;
194     array TimedFloatKeys keys[nKeys];
195 }
196
197 template AnimationOptions
198 {
199     <E2BF56C0-840F-11CF-8F52-0040333594A3>
200     DWORD openclosed;
201     DWORD positionquality;
202 }
203
204 template Animation
205 {
206     <3D82AB4F-62DA-11CF-AB39-0020AF71E433>
207     [ ... ]
208 }
209
210 template AnimationSet
211 {
212     <3D82AB50-62DA-11CF-AB39-0020AF71E433>
213     [ Animation ]
214 }
215
216 template InlineData
217 {
218     <3A23EEA0-94B1-11D0-AB39-0020AF71E433>
219     [ BINARY ]
220 }
221
222 template Url
223 {
224     <3A23EEA1-94B1-11D0-AB39-0020AF71E433>
225     DWORD nUrls;
226     array STRING urls[nUrls];
227 }
228
229 template ProgressiveMesh
230 {
231     <8A63C360-997D-11D0-941C-0080C80CFA7B>
232     [ Url, InlineData ]
233 }
234
235 template Guid
236 {
237     <A42790E0-7810-11CF-8F52-0040333594A3>
238     DWORD data1;
239     WORD data2;
240     WORD data3;
241     array UCHAR data4[8];
242 }
243
244 template StringProperty
245 {
246     <7F0F21E0-BFE1-11D1-82C0-00A0C9697271>
247     STRING key;
248     STRING value;
249 }
250
251 template PropertyBag
252 {
253     <7F0F21E1-BFE1-11D1-82C0-00A0C9697271>
254     [ StringProperty ]
255 }
256
257 template ExternalVisual
258 {
259     <98116AA0-BDBA-11D1-82C0-00A0C9697271>
260     Guid guidExternalVisual;
261     [ ... ]
262 }
263
264 template RightHanded
265 {
266     <7F5D5EA0-D53A-11D1-82C0-00A0C9697271>
267     DWORD bRightHanded;
268 }