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) 28 extern "C" { 29 #endif 30 31 typedef struct _D3DRMVECTOR4D 32 { 33 D3DVALUE x; 34 D3DVALUE y; 35 D3DVALUE z; 36 D3DVALUE w; 37 } D3DRMVECTOR4D, *LPD3DRMVECTOR4D; 38 39 typedef D3DVALUE D3DRMMATRIX4D[4][4]; 40 41 typedef struct _D3DRMQUATERNION { 42 D3DVALUE s; 43 D3DVECTOR v; 44 } D3DRMQUATERNION, *LPD3DRMQUATERNION; 45 46 typedef struct _D3DRMRAY { 47 D3DVECTOR dvDir; 48 D3DVECTOR dvPos; 49 } D3DRMRAY, *LPD3DRMRAY; 50 51 typedef struct _D3DRMBOX { 52 D3DVECTOR min; 53 D3DVECTOR max; 54 } D3DRMBOX, *LPD3DRMBOX; 55 56 typedef void (*D3DRMWRAPCALLBACK)(D3DVECTOR *vec, int *u, int *v, D3DVECTOR *a, D3DVECTOR *b, void *ctx); 57 58 typedef enum _D3DRMLIGHTTYPE { 59 D3DRMLIGHT_AMBIENT, 60 D3DRMLIGHT_POINT, 61 D3DRMLIGHT_SPOT, 62 D3DRMLIGHT_DIRECTIONAL, 63 D3DRMLIGHT_PARALLELPOINT 64 } D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE; 65 66 typedef 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 74 typedef 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 81 typedef 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 89 typedef 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 103 typedef 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 124 typedef enum _D3DRMCOMBINETYPE { 125 D3DRMCOMBINE_REPLACE, 126 D3DRMCOMBINE_BEFORE, 127 D3DRMCOMBINE_AFTER 128 } D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE; 129 130 typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL; 131 132 typedef enum _D3DRMPALETTEFLAGS 133 { 134 D3DRMPALETTE_FREE, 135 D3DRMPALETTE_READONLY, 136 D3DRMPALETTE_RESERVED 137 } D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS; 138 139 typedef struct _D3DRMPALETTEENTRY { 140 unsigned char red; 141 unsigned char green; 142 unsigned char blue; 143 unsigned char flags; 144 } D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY; 145 146 typedef 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 164 typedef 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 176 typedef 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 187 typedef enum _D3DRMXOFFORMAT { 188 D3DRMXOF_BINARY, 189 D3DRMXOF_COMPRESSED, 190 D3DRMXOF_TEXT 191 } D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT; 192 193 typedef 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 202 typedef enum _D3DRMCOLORSOURCE { 203 D3DRMCOLOR_FROMFACE, 204 D3DRMCOLOR_FROMVERTEX 205 } D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE; 206 207 typedef enum _D3DRMFRAMECONSTRAINT { 208 D3DRMCONSTRAIN_Z, 209 D3DRMCONSTRAIN_Y, 210 D3DRMCONSTRAIN_X 211 } D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT; 212 213 typedef enum _D3DRMMATERIALMODE { 214 D3DRMMATERIAL_FROMMESH, 215 D3DRMMATERIAL_FROMPARENT, 216 D3DRMMATERIAL_FROMFRAME 217 } D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE; 218 219 typedef enum _D3DRMFOGMODE { 220 D3DRMFOG_LINEAR, 221 D3DRMFOG_EXPONENTIAL, 222 D3DRMFOG_EXPONENTIALSQUARED 223 } D3DRMFOGMODE, *LPD3DRMFOGMODE; 224 225 typedef enum _D3DRMZBUFFERMODE { 226 D3DRMZBUFFER_FROMPARENT, 227 D3DRMZBUFFER_ENABLE, 228 D3DRMZBUFFER_DISABLE 229 } D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE; 230 231 typedef enum _D3DRMSORTMODE { 232 D3DRMSORT_FROMPARENT, 233 D3DRMSORT_NONE, 234 D3DRMSORT_FRONTTOBACK, 235 D3DRMSORT_BACKTOFRONT 236 } D3DRMSORTMODE, *LPD3DRMSORTMODE; 237 238 typedef 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 322 typedef 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 330 typedef 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 339 typedef 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 357 typedef struct _D3DRMLOADRESOURCE { 358 HMODULE hModule; 359 LPCSTR /*LPCTSTR*/ lpName; 360 LPCSTR /*LPCTSTR*/ lpType; 361 } D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE; 362 363 typedef 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 377 typedef 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 388 typedef enum _D3DRMUSERVISUALREASON { 389 D3DRMUSERVISUAL_CANSEE, 390 D3DRMUSERVISUAL_RENDER 391 } D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON; 392 393 typedef 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; 410 typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY; 411 412 #define D3DRMANIMATION_ROTATEKEY 0x01 413 #define D3DRMANIMATION_SCALEKEY 0x02 414 #define D3DRMANIMATION_POSITIONKEY 0x03 415 416 typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING; 417 static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1; 418 static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2; 419 static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4; 420 421 typedef struct _D3DRMVERTEX { 422 D3DVECTOR position; 423 D3DVECTOR normal; 424 D3DVALUE tu; 425 D3DVALUE tv; 426 D3DCOLOR color; 427 } D3DRMVERTEX, *LPD3DRMVERTEX; 428 429 typedef LONG D3DRMGROUPINDEX; 430 static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1; 431 432 void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D m, D3DRMQUATERNION *q); 433 434 D3DRMQUATERNION * WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *x, D3DVECTOR *axis, D3DVALUE theta); 435 D3DRMQUATERNION * WINAPI D3DRMQuaternionMultiply(D3DRMQUATERNION *ret, D3DRMQUATERNION *x, D3DRMQUATERNION *y); 436 D3DRMQUATERNION * WINAPI D3DRMQuaternionSlerp(D3DRMQUATERNION *ret, 437 D3DRMQUATERNION *x, D3DRMQUATERNION *y, D3DVALUE alpha); 438 439 D3DVECTOR * WINAPI D3DRMVectorAdd(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 440 D3DVECTOR * WINAPI D3DRMVectorCrossProduct(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 441 D3DVALUE WINAPI D3DRMVectorDotProduct(D3DVECTOR *x, D3DVECTOR *y); 442 D3DVECTOR * WINAPI D3DRMVectorNormalize(D3DVECTOR *x); 443 444 #define D3DRMVectorNormalise D3DRMVectorNormalize 445 446 D3DVALUE WINAPI D3DRMVectorModulus(D3DVECTOR *x); 447 D3DVECTOR * WINAPI D3DRMVectorRandom(D3DVECTOR *ret); 448 D3DVECTOR * WINAPI D3DRMVectorRotate(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *axis, D3DVALUE theta); 449 D3DVECTOR * WINAPI D3DRMVectorReflect(D3DVECTOR *ret, D3DVECTOR *ray, D3DVECTOR *normal); 450 D3DVECTOR * WINAPI D3DRMVectorScale(D3DVECTOR *ret, D3DVECTOR *x, D3DVALUE scale); 451 D3DVECTOR * WINAPI D3DRMVectorSubtract(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 452 453 D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE); 454 D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE); 455 D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR); 456 D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR); 457 D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR); 458 D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR); 459 460 #if defined(__cplusplus) 461 } 462 #endif 463 464 #endif 465