19fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*==========================================================================; 29fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 39fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Copyright (C) 1995-1996 Microsoft Corporation. All Rights Reserved. 49fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 59fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * File: d3drm.h 69fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Content: Direct3DRM include file 79fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 89fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ***************************************************************************/ 99fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef __D3DRMDEFS_H__ 119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define __D3DRMDEFS_H__ 129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include <stddef.h> 149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include "d3dtypes.h" 159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef WIN32 179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMAPI __stdcall 189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#else 199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMAPI 209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if defined(__cplusplus) 239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern "C" { 249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef TRUE 279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define FALSE 0 289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define TRUE 1 299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMVECTOR4D 329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DVALUE x, y, z, w; 339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMVECTOR4D, *LPD3DRMVECTOR4D; 349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef D3DVALUE D3DRMMATRIX4D[4][4]; 369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMQUATERNION 389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DVALUE s; 399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVECTOR v; 409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMQUATERNION, *LPD3DRMQUATERNION; 419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMBOX 439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DVECTOR min, max; 449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMBOX, *LPD3DRMBOX; 459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef void (*D3DRMWRAPCALLBACK) 479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream (LPD3DVECTOR, int* u, int* v, LPD3DVECTOR a, LPD3DVECTOR b, LPVOID); 489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMLIGHTTYPE 509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMLIGHT_AMBIENT, 519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_POINT, 529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_SPOT, 539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_DIRECTIONAL, 549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_PARALLELPOINT 559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE; 569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMSHADEMODE { 589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSHADE_FLAT = 0, 599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSHADE_GOURAUD = 1, 609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSHADE_PHONG = 2, 619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSHADE_MASK = 7, 639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSHADE_MAX = 8 649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMSHADEMODE, *LPD3DRMSHADEMODE; 659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMLIGHTMODE { 679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX, 689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX, 699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX, 719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX 729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE; 739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMFILLMODE { 759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX, 769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX, 779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX, 789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX, 809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX 819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMFILLMODE, *LPD3DRMFILLMODE; 829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY; 849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMRENDER_WIREFRAME (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME) 869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMRENDER_UNLITFLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID) 879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMRENDER_FLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID) 889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMRENDER_GOURAUD (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID) 899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMRENDER_PHONG (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID) 909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMTEXTUREQUALITY 929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMTEXTURE_NEAREST, /* choose nearest texel */ 939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMTEXTURE_LINEAR, /* interpolate 4 texels */ 949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMTEXTURE_MIPNEAREST, /* nearest texel in nearest mipmap */ 959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMTEXTURE_MIPLINEAR, /* interpolate 2 texels from 2 mipmaps */ 969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMTEXTURE_LINEARMIPNEAREST, /* interpolate 4 texels in nearest mipmap */ 979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMTEXTURE_LINEARMIPLINEAR /* interpolate 8 texels from 2 mipmaps */ 989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY; 999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMCOMBINETYPE 1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMCOMBINE_REPLACE, 1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMCOMBINE_BEFORE, 1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMCOMBINE_AFTER 1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE; 1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL; 1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMPALETTEFLAGS 1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMPALETTE_FREE, /* renderer may use this entry freely */ 1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMPALETTE_READONLY, /* fixed but may be used by renderer */ 1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMPALETTE_RESERVED /* may not be used by renderer */ 1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS; 1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMPALETTEENTRY 1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ unsigned char red; /* 0 .. 255 */ 1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned char green; /* 0 .. 255 */ 1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned char blue; /* 0 .. 255 */ 1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned char flags; /* one of D3DRMPALETTEFLAGS */ 1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY; 1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMIMAGE 1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ int width, height; /* width and height in pixels */ 1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream int aspectx, aspecty; /* aspect ratio for non-square pixels */ 1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream int depth; /* bits per pixel */ 1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream int rgb; /* if false, pixels are indices into a 1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream palette otherwise, pixels encode 1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream RGB values. */ 1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream int bytes_per_line; /* number of bytes of memory for a 1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream scanline. This must be a multiple 1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream of 4. */ 1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream void* buffer1; /* memory to render into (first buffer). */ 1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream void* buffer2; /* second rendering buffer for double 1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream buffering, set to NULL for single 1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream buffering. */ 1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned long red_mask; 1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned long green_mask; 1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned long blue_mask; 1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream unsigned long alpha_mask; /* if rgb is true, these are masks for 1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream the red, green and blue parts of a 1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream pixel. Otherwise, these are masks 1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream for the significant bits of the 1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream red, green and blue elements in the 1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream palette. For instance, most SVGA 1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream displays use 64 intensities of red, 1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream green and blue, so the masks should 1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream all be set to 0xfc. */ 1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream int palette_size; /* number of entries in palette */ 1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMPALETTEENTRY* palette; /* description of the palette (only if 1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream rgb is false). Must be (1<<depth) 1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream elements. */ 1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMIMAGE, *LPD3DRMIMAGE; 1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMWRAPTYPE 1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMWRAP_FLAT, 1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMWRAP_CYLINDER, 1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMWRAP_SPHERE, 1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMWRAP_CHROME 1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE; 1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMWIREFRAME_CULL 1 /* cull backfaces */ 1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMWIREFRAME_HIDDENLINE 2 /* lines are obscured by closer objects */ 1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMPROJECTIONTYPE 1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMPROJECT_PERSPECTIVE, 1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMPROJECT_ORTHOGRAPHIC 1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE; 1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMXOFFORMAT 1699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMXOF_BINARY, 1709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMXOF_COMPRESSED, 1719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMXOF_TEXT 1729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT; 1739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DRMSAVEOPTIONS; 1759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMXOFSAVE_NORMALS 1 1769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMXOFSAVE_TEXTURECOORDINATES 2 1779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMXOFSAVE_MATERIALS 4 1789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMXOFSAVE_TEXTURENAMES 8 1799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMXOFSAVE_ALL 15 1809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMCOLORSOURCE 1829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMCOLOR_FROMFACE, 1839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMCOLOR_FROMVERTEX 1849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE; 1859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMFRAMECONSTRAINT 1879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMCONSTRAIN_Z, /* use only X and Y rotations */ 1889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMCONSTRAIN_Y, /* use only X and Z rotations */ 1899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMCONSTRAIN_X /* use only Y and Z rotations */ 1909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT; 1919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMMATERIALMODE 1939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMMATERIAL_FROMMESH, 1949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMMATERIAL_FROMPARENT, 1959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMMATERIAL_FROMFRAME 1969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE; 1979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMFOGMODE 1999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DRMFOG_LINEAR, /* linear between start and end */ 2009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFOG_EXPONENTIAL, /* density * exp(-distance) */ 2019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMFOG_EXPONENTIALSQUARED /* density * exp(-distance*distance) */ 2029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMFOGMODE, *LPD3DRMFOGMODE; 2039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMZBUFFERMODE { 2059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMZBUFFER_FROMPARENT, /* default */ 2069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMZBUFFER_ENABLE, /* enable zbuffering */ 2079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMZBUFFER_DISABLE /* disable zbuffering */ 2089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE; 2099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMSORTMODE { 2119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSORT_FROMPARENT, /* default */ 2129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSORT_NONE, /* don't sort child frames */ 2139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSORT_FRONTTOBACK, /* sort child frames front-to-back */ 2149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMSORT_BACKTOFRONT /* sort child frames back-to-front */ 2159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMSORTMODE, *LPD3DRMSORTMODE; 2169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DRMANIMATIONOPTIONS; 2189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMANIMATION_OPEN 0x01L 2199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMANIMATION_CLOSED 0x02L 2209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMANIMATION_LINEARPOSITION 0x04L 2219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMANIMATION_SPLINEPOSITION 0x08L 2229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMANIMATION_SCALEANDROTATION 0x00000010L 2239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMANIMATION_POSITION 0x00000020L 2249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DRMLOADOPTIONS; 2269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_FROMFILE 0x00L 2289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_FROMRESOURCE 0x01L 2299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_FROMMEMORY 0x02L 2309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_FROMSTREAM 0x04L 2319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_BYNAME 0x10L 2339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_BYPOSITION 0x20L 2349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_BYGUID 0x40L 2359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_FIRST 0x80L 2369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_INSTANCEBYREFERENCE 0x100L 2389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMLOAD_INSTANCEBYCOPYING 0x200L 2399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMLOADRESOURCE { 2419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream HMODULE hModule; 2429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPCTSTR lpName; 2439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPCTSTR lpType; 2449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE; 2459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMLOADMEMORY { 2479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPVOID lpMemory; 2489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dSize; 2499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY; 2509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRMUSERVISUALREASON { 2529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMUSERVISUAL_CANSEE, 2539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRMUSERVISUAL_RENDER 2549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON; 2559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING; 2589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstatic const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1; 2599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstatic const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2; 2609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstatic const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4; 2619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMVERTEX 2639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ D3DVECTOR position; 2649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVECTOR normal; 2659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tu, tv; 2669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR color; 2679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMVERTEX, *LPD3DRMVERTEX; 2689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef LONG D3DRMGROUPINDEX; /* group indexes begin a 0 */ 2709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstatic const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1; 2719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Create a color from three components in the range 0-1 inclusive. 2749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DCOLOR D3DRMAPI D3DRMCreateColorRGB(D3DVALUE red, 2769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE green, 2779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE blue); 2789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Create a color from four components in the range 0-1 inclusive. 2819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DCOLOR D3DRMAPI D3DRMCreateColorRGBA(D3DVALUE red, 2839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE green, 2849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE blue, 2859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE alpha); 2869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Get the red component of a color. 2899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DVALUE D3DRMAPI D3DRMColorGetRed(D3DCOLOR); 2919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Get the green component of a color. 2949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DVALUE D3DRMAPI D3DRMColorGetGreen(D3DCOLOR); 2969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Get the blue component of a color. 2999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DVALUE D3DRMAPI D3DRMColorGetBlue(D3DCOLOR); 3019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Get the alpha component of a color. 3049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DVALUE D3DRMAPI D3DRMColorGetAlpha(D3DCOLOR); 3069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Add two vectors. Returns its first argument. 3099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorAdd(LPD3DVECTOR d, 3119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s1, 3129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s2); 3139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Subtract two vectors. Returns its first argument. 3169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorSubtract(LPD3DVECTOR d, 3189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s1, 3199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s2); 3209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Reflect a ray about a given normal. Returns its first argument. 3229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorReflect(LPD3DVECTOR d, 3249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR ray, 3259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR norm); 3269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Calculate the vector cross product. Returns its first argument. 3299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorCrossProduct(LPD3DVECTOR d, 3319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s1, 3329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s2); 3339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Return the vector dot product. 3359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DVALUE D3DRMAPI D3DRMVectorDotProduct(LPD3DVECTOR s1, 3379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR s2); 3389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Scale a vector so that its modulus is 1. Returns its argument or 3419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * NULL if there was an error (e.g. a zero vector was passed). 3429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorNormalize(LPD3DVECTOR); 3449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMVectorNormalise D3DRMVectorNormalize 3459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)). 3489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern D3DVALUE D3DRMAPI D3DRMVectorModulus(LPD3DVECTOR v); 3509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Set the rotation part of a matrix to be a rotation of theta radians 3539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * around the given axis. 3549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorRotate(LPD3DVECTOR r, LPD3DVECTOR v, LPD3DVECTOR axis, D3DVALUE theta); 3579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Scale a vector uniformly in all three axes 3609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorScale(LPD3DVECTOR d, LPD3DVECTOR s, D3DVALUE factor); 3629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Return a random unit vector 3659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DVECTOR D3DRMAPI D3DRMVectorRandom(LPD3DVECTOR d); 3679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Returns a unit quaternion that represents a rotation of theta radians 3709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * around the given axis. 3719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionFromRotation(LPD3DRMQUATERNION quat, 3749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DVECTOR v, 3759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE theta); 3769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Calculate the product of two quaternions 3799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionMultiply(LPD3DRMQUATERNION q, 3819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DRMQUATERNION a, 3829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DRMQUATERNION b); 3839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Interpolate between two quaternions 3869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionSlerp(LPD3DRMQUATERNION q, 3889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DRMQUATERNION a, 3899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DRMQUATERNION b, 3909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE alpha); 3919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Calculate the matrix for the rotation that a unit quaternion represents 3949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern void D3DRMAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D dmMat, LPD3DRMQUATERNION lpDqQuat); 3969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if defined(__cplusplus) 3999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}; 4009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 4019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 403