master
  1/*
  2 * Copyright 2007,2010 Vijay Kiran Kamuju
  3 * Copyright 2007 David ADAM
  4 * Copyright 2010 Christian Costa
  5 *
  6 * This library is free software; you can redistribute it and/or
  7 * modify it under the terms of the GNU Lesser General Public
  8 * License as published by the Free Software Foundation; either
  9 * version 2.1 of the License, or (at your option) any later version.
 10 *
 11 * This library is distributed in the hope that it will be useful,
 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14 * Lesser General Public License for more details.
 15 *
 16 * You should have received a copy of the GNU Lesser General Public
 17 * License along with this library; if not, write to the Free Software
 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 19 */
 20
 21#ifndef __D3DRMDEFS_H__
 22#define __D3DRMDEFS_H__
 23
 24#include <stddef.h>
 25#include <d3dtypes.h>
 26
 27#if defined(__cplusplus)
 28extern "C" {
 29#endif
 30
 31typedef struct _D3DRMVECTOR4D
 32{
 33    D3DVALUE x;
 34    D3DVALUE y;
 35    D3DVALUE z;
 36    D3DVALUE w;
 37} D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
 38
 39typedef D3DVALUE D3DRMMATRIX4D[4][4];
 40
 41typedef struct _D3DRMQUATERNION {
 42    D3DVALUE s;
 43    D3DVECTOR v;
 44} D3DRMQUATERNION, *LPD3DRMQUATERNION;
 45
 46typedef struct _D3DRMRAY {
 47    D3DVECTOR dvDir;
 48    D3DVECTOR dvPos;
 49} D3DRMRAY, *LPD3DRMRAY;
 50
 51typedef struct _D3DRMBOX {
 52    D3DVECTOR min;
 53    D3DVECTOR max;
 54} D3DRMBOX, *LPD3DRMBOX;
 55
 56typedef void (*D3DRMWRAPCALLBACK)(D3DVECTOR *vec, int *u, int *v, D3DVECTOR *a, D3DVECTOR *b, void *ctx);
 57
 58typedef enum _D3DRMLIGHTTYPE {
 59    D3DRMLIGHT_AMBIENT,
 60    D3DRMLIGHT_POINT,
 61    D3DRMLIGHT_SPOT,
 62    D3DRMLIGHT_DIRECTIONAL,
 63    D3DRMLIGHT_PARALLELPOINT
 64} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE;
 65
 66typedef enum _D3DRMSHADEMODE {
 67    D3DRMSHADE_FLAT     = 0,
 68    D3DRMSHADE_GOURAUD  = 1,
 69    D3DRMSHADE_PHONG    = 2,
 70    D3DRMSHADE_MASK     = 7,
 71    D3DRMSHADE_MAX      = 8
 72} D3DRMSHADEMODE, *LPD3DRMSHADEMODE;
 73
 74typedef enum _D3DRMLIGHTMODE {
 75    D3DRMLIGHT_OFF      = 0 * D3DRMSHADE_MAX,
 76    D3DRMLIGHT_ON       = 1 * D3DRMSHADE_MAX,
 77    D3DRMLIGHT_MASK     = 7 * D3DRMSHADE_MAX,
 78    D3DRMLIGHT_MAX      = 8 * D3DRMSHADE_MAX
 79} D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE;
 80
 81typedef enum _D3DRMFILLMODE {
 82    D3DRMFILL_POINTS    = 0 * D3DRMLIGHT_MAX,
 83    D3DRMFILL_WIREFRAME	= 1 * D3DRMLIGHT_MAX,
 84    D3DRMFILL_SOLID     = 2 * D3DRMLIGHT_MAX,
 85    D3DRMFILL_MASK      = 7 * D3DRMLIGHT_MAX,
 86    D3DRMFILL_MAX       = 8 * D3DRMLIGHT_MAX
 87} D3DRMFILLMODE, *LPD3DRMFILLMODE;
 88
 89typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY;
 90
 91#define D3DRMRENDER_WIREFRAME   (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME)
 92#define D3DRMRENDER_UNLITFLAT   (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID)
 93#define D3DRMRENDER_FLAT        (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
 94#define D3DRMRENDER_GOURAUD     (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
 95#define D3DRMRENDER_PHONG       (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
 96
 97#define D3DRMRENDERMODE_BLENDEDTRANSPARENCY       1
 98#define D3DRMRENDERMODE_SORTEDTRANSPARENCY        2
 99#define D3DRMRENDERMODE_LIGHTINMODELSPACE         8
100#define D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR    16
101#define D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE 32
102
103typedef enum _D3DRMTEXTUREQUALITY {
104    D3DRMTEXTURE_NEAREST,
105    D3DRMTEXTURE_LINEAR,
106    D3DRMTEXTURE_MIPNEAREST,
107    D3DRMTEXTURE_MIPLINEAR,
108    D3DRMTEXTURE_LINEARMIPNEAREST,
109    D3DRMTEXTURE_LINEARMIPLINEAR
110} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY;
111
112#define D3DRMTEXTURE_FORCERESIDENT          0x00000001
113#define D3DRMTEXTURE_STATIC                 0x00000002
114#define D3DRMTEXTURE_DOWNSAMPLEPOINT        0x00000004
115#define D3DRMTEXTURE_DOWNSAMPLEBILINEAR	    0x00000008
116#define D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH  0x00000010
117#define D3DRMTEXTURE_DOWNSAMPLENONE         0x00000020
118#define D3DRMTEXTURE_CHANGEDPIXELS          0x00000040
119#define D3DRMTEXTURE_CHANGEDPALETTE         0x00000080
120#define D3DRMTEXTURE_INVALIDATEONLY         0x00000100
121
122#define D3DRMSHADOW_TRUEALPHA               0x00000001
123
124typedef enum _D3DRMCOMBINETYPE {
125    D3DRMCOMBINE_REPLACE,
126    D3DRMCOMBINE_BEFORE,
127    D3DRMCOMBINE_AFTER
128} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE;
129
130typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL;
131
132typedef enum _D3DRMPALETTEFLAGS
133{
134    D3DRMPALETTE_FREE,
135    D3DRMPALETTE_READONLY,
136    D3DRMPALETTE_RESERVED
137} D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS;
138
139typedef struct _D3DRMPALETTEENTRY {
140    unsigned char red;
141    unsigned char green;
142    unsigned char blue;
143    unsigned char flags;
144} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
145
146typedef struct _D3DRMIMAGE {
147    int width;
148    int height;
149    int aspectx;
150    int aspecty;
151    int depth;
152    int rgb;
153    int bytes_per_line;
154    void* buffer1;
155    void* buffer2;
156    ULONG red_mask;
157    ULONG green_mask;
158    ULONG blue_mask;
159    ULONG alpha_mask;
160    int palette_size;
161    D3DRMPALETTEENTRY* palette;
162} D3DRMIMAGE, *LPD3DRMIMAGE;
163
164typedef enum _D3DRMWRAPTYPE {
165    D3DRMWRAP_FLAT,
166    D3DRMWRAP_CYLINDER,
167    D3DRMWRAP_SPHERE,
168    D3DRMWRAP_CHROME,
169    D3DRMWRAP_SHEET,
170    D3DRMWRAP_BOX
171} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE;
172
173#define D3DRMWIREFRAME_CULL             1
174#define D3DRMWIREFRAME_HIDDENLINE       2
175
176typedef enum _D3DRMPROJECTIONTYPE
177{
178    D3DRMPROJECT_PERSPECTIVE,
179    D3DRMPROJECT_ORTHOGRAPHIC,
180    D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
181    D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
182} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE;
183
184#define D3DRMOPTIONS_LEFTHANDED  0x00000001
185#define D3DRMOPTIONS_RIGHTHANDED 0x00000002
186
187typedef enum _D3DRMXOFFORMAT {
188    D3DRMXOF_BINARY,
189    D3DRMXOF_COMPRESSED,
190    D3DRMXOF_TEXT
191} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT;
192
193typedef DWORD D3DRMSAVEOPTIONS;
194#define D3DRMXOFSAVE_NORMALS             1
195#define D3DRMXOFSAVE_TEXTURECOORDINATES  2
196#define D3DRMXOFSAVE_MATERIALS           4
197#define D3DRMXOFSAVE_TEXTURENAMES        8
198#define D3DRMXOFSAVE_ALL                15
199#define D3DRMXOFSAVE_TEMPLATES          16
200#define D3DRMXOFSAVE_TEXTURETOPOLOGY    32
201
202typedef enum _D3DRMCOLORSOURCE {
203    D3DRMCOLOR_FROMFACE,
204    D3DRMCOLOR_FROMVERTEX
205} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE;
206
207typedef enum _D3DRMFRAMECONSTRAINT {
208    D3DRMCONSTRAIN_Z,
209    D3DRMCONSTRAIN_Y,
210    D3DRMCONSTRAIN_X
211} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT;
212
213typedef enum _D3DRMMATERIALMODE {
214    D3DRMMATERIAL_FROMMESH,
215    D3DRMMATERIAL_FROMPARENT,
216    D3DRMMATERIAL_FROMFRAME
217} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE;
218
219typedef enum _D3DRMFOGMODE {
220    D3DRMFOG_LINEAR,
221    D3DRMFOG_EXPONENTIAL,
222    D3DRMFOG_EXPONENTIALSQUARED
223} D3DRMFOGMODE, *LPD3DRMFOGMODE;
224
225typedef enum _D3DRMZBUFFERMODE {
226    D3DRMZBUFFER_FROMPARENT,
227    D3DRMZBUFFER_ENABLE,
228    D3DRMZBUFFER_DISABLE
229} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE;
230
231typedef enum _D3DRMSORTMODE {
232    D3DRMSORT_FROMPARENT,
233    D3DRMSORT_NONE,
234    D3DRMSORT_FRONTTOBACK,
235    D3DRMSORT_BACKTOFRONT
236} D3DRMSORTMODE, *LPD3DRMSORTMODE;
237
238typedef struct _D3DRMMATERIALOVERRIDE {
239    DWORD         dwSize;
240    DWORD         dwFlags;
241    D3DCOLORVALUE dcDiffuse;
242    D3DCOLORVALUE dcAmbient;
243    D3DCOLORVALUE dcEmissive;
244    D3DCOLORVALUE dcSpecular;
245    D3DVALUE      dvPower;
246    IUnknown *lpD3DRMTex;
247} D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
248
249#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY     0x00000001
250#define D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY       0x00000002
251#define D3DRMMATERIALOVERRIDE_DIFFUSE               0x00000003
252#define D3DRMMATERIALOVERRIDE_AMBIENT               0x00000004
253#define D3DRMMATERIALOVERRIDE_EMISSIVE              0x00000008
254#define D3DRMMATERIALOVERRIDE_SPECULAR              0x00000010
255#define D3DRMMATERIALOVERRIDE_POWER                 0x00000020
256#define D3DRMMATERIALOVERRIDE_TEXTURE               0x00000040
257#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY 0x00000080
258#define D3DRMMATERIALOVERRIDE_ALL                   0x000000FF
259
260#define D3DRMFPTF_ALPHA                             0x00000001
261#define D3DRMFPTF_NOALPHA                           0x00000002
262#define D3DRMFPTF_PALETTIZED                        0x00000004
263#define D3DRMFPTF_NOTPALETTIZED                     0x00000008
264
265#define D3DRMSTATECHANGE_UPDATEONLY                0x000000001
266#define D3DRMSTATECHANGE_VOLATILE                  0x000000002
267#define D3DRMSTATECHANGE_NONVOLATILE               0x000000004
268#define D3DRMSTATECHANGE_RENDER                    0x000000020
269#define D3DRMSTATECHANGE_LIGHT                     0x000000040
270
271#define D3DRMDEVICE_NOZBUFFER           0x00000001
272
273#define D3DRMCALLBACK_PREORDER		0
274#define D3DRMCALLBACK_POSTORDER		1
275
276#define D3DRMRAYPICK_ONLYBOUNDINGBOXES          0x01
277#define D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES    0x02
278#define D3DRMRAYPICK_INTERPOLATEUV              0x04
279#define D3DRMRAYPICK_INTERPOLATECOLOR           0x08
280#define D3DRMRAYPICK_INTERPOLATENORMAL          0x10
281
282#define D3DRMADDFACES_VERTICESONLY              1
283
284#define D3DRMGENERATENORMALS_PRECOMPACT         1
285#define D3DRMGENERATENORMALS_USECREASEANGLE     2
286
287#define D3DRMMESHBUILDER_DIRECTPARENT           1
288#define D3DRMMESHBUILDER_ROOTMESH               2
289
290#define D3DRMMESHBUILDER_RENDERENABLE   0x00000001
291#define D3DRMMESHBUILDER_PICKENABLE     0x00000002
292
293#define D3DRMADDMESHBUILDER_DONTCOPYAPPDATA     1
294#define D3DRMADDMESHBUILDER_FLATTENSUBMESHES    2
295#define D3DRMADDMESHBUILDER_NOSUBMESHES         4
296
297#define D3DRMMESHBUILDERAGE_GEOMETRY    0x00000001
298#define D3DRMMESHBUILDERAGE_MATERIALS   0x00000002
299#define D3DRMMESHBUILDERAGE_TEXTURES    0x00000004
300
301#define D3DRMFVF_TYPE                   0x00000001
302#define D3DRMFVF_NORMAL                 0x00000002
303#define D3DRMFVF_COLOR                  0x00000004
304#define D3DRMFVF_TEXTURECOORDS          0x00000008
305
306#define D3DRMVERTEX_STRIP               0x00000001
307#define D3DRMVERTEX_FAN                 0x00000002
308#define D3DRMVERTEX_LIST                0x00000004
309
310#define D3DRMCLEAR_TARGET               0x00000001
311#define D3DRMCLEAR_ZBUFFER              0x00000002
312#define D3DRMCLEAR_DIRTYRECTS           0x00000004
313#define D3DRMCLEAR_ALL                  (D3DRMCLEAR_TARGET | D3DRMCLEAR_ZBUFFER | D3DRMCLEAR_DIRTYRECTS)
314
315#define D3DRMFOGMETHOD_VERTEX           0x00000001
316#define D3DRMFOGMETHOD_TABLE            0x00000002
317#define D3DRMFOGMETHOD_ANY              0x00000004
318
319#define D3DRMFRAME_RENDERENABLE         0x00000001
320#define D3DRMFRAME_PICKENABLE           0x00000002
321
322typedef DWORD D3DRMANIMATIONOPTIONS;
323#define D3DRMANIMATION_OPEN             0x00000001
324#define D3DRMANIMATION_CLOSED           0x00000002
325#define D3DRMANIMATION_LINEARPOSITION   0x00000004
326#define D3DRMANIMATION_SPLINEPOSITION   0x00000008
327#define D3DRMANIMATION_SCALEANDROTATION 0x00000010
328#define D3DRMANIMATION_POSITION         0x00000020
329
330typedef DWORD D3DRMINTERPOLATIONOPTIONS;
331#define D3DRMINTERPOLATION_OPEN         0x0001
332#define D3DRMINTERPOLATION_CLOSED       0x0002
333#define D3DRMINTERPOLATION_NEAREST      0x0100
334#define D3DRMINTERPOLATION_LINEAR       0x0004
335#define D3DRMINTERPOLATION_SPLINE       0x0008
336#define D3DRMINTERPOLATION_VERTEXCOLOR  0x0040
337#define D3DRMINTERPOLATION_SLERPNORMALS 0x0080
338
339typedef DWORD D3DRMLOADOPTIONS;
340
341#define D3DRMLOAD_FROMFILE             __MSABI_LONG(0x000)
342#define D3DRMLOAD_FROMRESOURCE         __MSABI_LONG(0x001)
343#define D3DRMLOAD_FROMMEMORY           __MSABI_LONG(0x002)
344#define D3DRMLOAD_FROMSTREAM           __MSABI_LONG(0x004)
345#define D3DRMLOAD_FROMURL              __MSABI_LONG(0x008)
346
347#define D3DRMLOAD_BYNAME               __MSABI_LONG(0x010)
348#define D3DRMLOAD_BYPOSITION           __MSABI_LONG(0x020)
349#define D3DRMLOAD_BYGUID               __MSABI_LONG(0x040)
350#define D3DRMLOAD_FIRST                __MSABI_LONG(0x080)
351
352#define D3DRMLOAD_INSTANCEBYREFERENCE  __MSABI_LONG(0x100)
353#define D3DRMLOAD_INSTANCEBYCOPYING    __MSABI_LONG(0x200)
354
355#define D3DRMLOAD_ASYNCHRONOUS         __MSABI_LONG(0x400)
356
357typedef struct _D3DRMLOADRESOURCE
358{
359    HMODULE hModule;
360    const char *lpName;
361    const char *lpType;
362} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
363
364typedef struct _D3DRMLOADMEMORY
365{
366    void *lpMemory;
367    DWORD dSize;
368} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
369
370#define D3DRMPMESHSTATUS_VALID            0x01
371#define D3DRMPMESHSTATUS_INTERRUPTED      0x02
372#define D3DRMPMESHSTATUS_BASEMESHCOMPLETE 0x04
373#define D3DRMPMESHSTATUS_COMPLETE         0x08
374#define D3DRMPMESHSTATUS_RENDERABLE       0x10
375
376#define D3DRMPMESHEVENT_BASEMESH          0x01
377#define D3DRMPMESHEVENT_COMPLETE          0x02
378
379typedef struct _D3DRMPMESHLOADSTATUS {
380    DWORD dwSize;
381    DWORD dwPMeshSize;
382    DWORD dwBaseMeshSize;
383    DWORD dwBytesLoaded;
384    DWORD dwVerticesLoaded;
385    DWORD dwFacesLoaded;
386    HRESULT dwLoadResult;
387    DWORD dwFlags;
388} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS;
389
390typedef enum _D3DRMUSERVISUALREASON {
391    D3DRMUSERVISUAL_CANSEE,
392    D3DRMUSERVISUAL_RENDER
393} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON;
394
395typedef struct _D3DRMANIMATIONKEY
396{
397    DWORD dwSize;
398    DWORD dwKeyType;
399    D3DVALUE dvTime;
400    DWORD dwID;
401#if !defined(__cplusplus) || !defined(D3D_OVERLOADS)
402    union
403    {
404	D3DRMQUATERNION dqRotateKey;
405	D3DVECTOR dvScaleKey;
406	D3DVECTOR dvPositionKey;
407    } DUMMYUNIONNAME;
408#else
409    D3DVALUE dvK[4];
410#endif
411} D3DRMANIMATIONKEY;
412typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY;
413
414#define D3DRMANIMATION_ROTATEKEY   0x01
415#define D3DRMANIMATION_SCALEKEY    0x02
416#define D3DRMANIMATION_POSITIONKEY 0x03
417
418typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING;
419static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU        = 1;
420static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV        = 2;
421static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4;
422
423typedef struct _D3DRMVERTEX {
424    D3DVECTOR position;
425    D3DVECTOR normal;
426    D3DVALUE  tu;
427    D3DVALUE  tv;
428    D3DCOLOR  color;
429} D3DRMVERTEX, *LPD3DRMVERTEX;
430
431typedef LONG D3DRMGROUPINDEX;
432static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1;
433
434void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D m, D3DRMQUATERNION *q);
435
436D3DRMQUATERNION * WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *x, D3DVECTOR *axis, D3DVALUE theta);
437D3DRMQUATERNION * WINAPI D3DRMQuaternionMultiply(D3DRMQUATERNION *ret, D3DRMQUATERNION *x, D3DRMQUATERNION *y);
438D3DRMQUATERNION * WINAPI D3DRMQuaternionSlerp(D3DRMQUATERNION *ret,
439        D3DRMQUATERNION *x, D3DRMQUATERNION *y, D3DVALUE alpha);
440
441D3DVECTOR * WINAPI D3DRMVectorAdd(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
442D3DVECTOR * WINAPI D3DRMVectorCrossProduct(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
443D3DVALUE WINAPI D3DRMVectorDotProduct(D3DVECTOR *x, D3DVECTOR *y);
444D3DVECTOR * WINAPI D3DRMVectorNormalize(D3DVECTOR *x);
445
446#define D3DRMVectorNormalise D3DRMVectorNormalize
447
448D3DVALUE WINAPI D3DRMVectorModulus(D3DVECTOR *x);
449D3DVECTOR * WINAPI D3DRMVectorRandom(D3DVECTOR *ret);
450D3DVECTOR * WINAPI D3DRMVectorRotate(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *axis, D3DVALUE theta);
451D3DVECTOR * WINAPI D3DRMVectorReflect(D3DVECTOR *ret, D3DVECTOR *ray, D3DVECTOR *normal);
452D3DVECTOR * WINAPI D3DRMVectorScale(D3DVECTOR *ret, D3DVECTOR *x, D3DVALUE scale);
453D3DVECTOR * WINAPI D3DRMVectorSubtract(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
454
455D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE);
456D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE);
457D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR);
458D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR);
459D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR);
460D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR);
461
462#if defined(__cplusplus)
463}
464#endif
465
466#endif