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 LPUNKNOWN 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 HMODULE hModule; 359 LPCSTR /*LPCTSTR*/ lpName; 360 LPCSTR /*LPCTSTR*/ lpType; 361} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE; 362 363typedef struct _D3DRMLOADMEMORY { 364 LPVOID lpMemory; 365 DWORD dSize; 366} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY; 367 368#define D3DRMPMESHSTATUS_VALID 0x01 369#define D3DRMPMESHSTATUS_INTERRUPTED 0x02 370#define D3DRMPMESHSTATUS_BASEMESHCOMPLETE 0x04 371#define D3DRMPMESHSTATUS_COMPLETE 0x08 372#define D3DRMPMESHSTATUS_RENDERABLE 0x10 373 374#define D3DRMPMESHEVENT_BASEMESH 0x01 375#define D3DRMPMESHEVENT_COMPLETE 0x02 376 377typedef struct _D3DRMPMESHLOADSTATUS { 378 DWORD dwSize; 379 DWORD dwPMeshSize; 380 DWORD dwBaseMeshSize; 381 DWORD dwBytesLoaded; 382 DWORD dwVerticesLoaded; 383 DWORD dwFacesLoaded; 384 HRESULT dwLoadResult; 385 DWORD dwFlags; 386} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS; 387 388typedef enum _D3DRMUSERVISUALREASON { 389 D3DRMUSERVISUAL_CANSEE, 390 D3DRMUSERVISUAL_RENDER 391} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON; 392 393typedef struct _D3DRMANIMATIONKEY 394{ 395 DWORD dwSize; 396 DWORD dwKeyType; 397 D3DVALUE dvTime; 398 DWORD dwID; 399#if !defined(__cplusplus) || !defined(D3D_OVERLOADS) 400 union 401 { 402 D3DRMQUATERNION dqRotateKey; 403 D3DVECTOR dvScaleKey; 404 D3DVECTOR dvPositionKey; 405 } DUMMYUNIONNAME; 406#else 407 D3DVALUE dvK[4]; 408#endif 409} D3DRMANIMATIONKEY; 410typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY; 411 412#define D3DRMANIMATION_ROTATEKEY 0x01 413#define D3DRMANIMATION_SCALEKEY 0x02 414#define D3DRMANIMATION_POSITIONKEY 0x03 415 416typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING; 417static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1; 418static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2; 419static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4; 420 421typedef struct _D3DRMVERTEX { 422 D3DVECTOR position; 423 D3DVECTOR normal; 424 D3DVALUE tu; 425 D3DVALUE tv; 426 D3DCOLOR color; 427} D3DRMVERTEX, *LPD3DRMVERTEX; 428 429typedef LONG D3DRMGROUPINDEX; 430static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1; 431 432void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D m, D3DRMQUATERNION *q); 433 434D3DRMQUATERNION * WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *x, D3DVECTOR *axis, D3DVALUE theta); 435D3DRMQUATERNION * WINAPI D3DRMQuaternionMultiply(D3DRMQUATERNION *ret, D3DRMQUATERNION *x, D3DRMQUATERNION *y); 436D3DRMQUATERNION * WINAPI D3DRMQuaternionSlerp(D3DRMQUATERNION *ret, 437 D3DRMQUATERNION *x, D3DRMQUATERNION *y, D3DVALUE alpha); 438 439D3DVECTOR * WINAPI D3DRMVectorAdd(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 440D3DVECTOR * WINAPI D3DRMVectorCrossProduct(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 441D3DVALUE WINAPI D3DRMVectorDotProduct(D3DVECTOR *x, D3DVECTOR *y); 442D3DVECTOR * WINAPI D3DRMVectorNormalize(D3DVECTOR *x); 443 444#define D3DRMVectorNormalise D3DRMVectorNormalize 445 446D3DVALUE WINAPI D3DRMVectorModulus(D3DVECTOR *x); 447D3DVECTOR * WINAPI D3DRMVectorRandom(D3DVECTOR *ret); 448D3DVECTOR * WINAPI D3DRMVectorRotate(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *axis, D3DVALUE theta); 449D3DVECTOR * WINAPI D3DRMVectorReflect(D3DVECTOR *ret, D3DVECTOR *ray, D3DVECTOR *normal); 450D3DVECTOR * WINAPI D3DRMVectorScale(D3DVECTOR *ret, D3DVECTOR *x, D3DVALUE scale); 451D3DVECTOR * WINAPI D3DRMVectorSubtract(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 452 453D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE); 454D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE); 455D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR); 456D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR); 457D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR); 458D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR); 459 460#if defined(__cplusplus) 461} 462#endif 463 464#endif 465