/* $Revision: 1.2 $ */ #ifndef __D3DRMDEFS_H__ #define __D3DRMDEFS_H__ #include #include "d3dtypes.h" #define D3DRMAPI __stdcall #ifndef TRUE #define FALSE 0 #define TRUE 1 #endif typedef struct _D3DRMVECTOR4D { D3DVALUE x, y, z, w; } D3DRMVECTOR4D, *LPD3DRMVECTOR4D; typedef D3DVALUE D3DRMMATRIX4D[4][4]; typedef struct _D3DRMQUATERNION { D3DVALUE s; D3DVECTOR v; } D3DRMQUATERNION, *LPD3DRMQUATERNION; typedef struct _D3DRMBOX { D3DVECTOR min, max; } D3DRMBOX, *LPD3DRMBOX; typedef void (*D3DRMWRAPCALLBACK) (LPD3DVECTOR, int*,int* ,LPD3DVECTOR,LPD3DVECTOR,LPVOID); typedef enum _D3DRMLIGHTTYPE { D3DRMLIGHT_AMBIENT, D3DRMLIGHT_POINT, D3DRMLIGHT_SPOT, D3DRMLIGHT_DIRECTIONAL, D3DRMLIGHT_PARALLELPOINT } D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE; typedef enum _D3DRMSHADEMODE { D3DRMSHADE_FLAT = 0, D3DRMSHADE_GOURAUD = 1, D3DRMSHADE_PHONG = 2, D3DRMSHADE_MASK = 7, D3DRMSHADE_MAX = 8 } D3DRMSHADEMODE, *LPD3DRMSHADEMODE; typedef enum _D3DRMLIGHTMODE { D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX, D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX, D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX, D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX } D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE; typedef enum _D3DRMFILLMODE { D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX, D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX, D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX, D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX, D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX } D3DRMFILLMODE, *LPD3DRMFILLMODE; typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY; #define D3DRMRENDER_WIREFRAME (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME) #define D3DRMRENDER_UNLITFLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID) #define D3DRMRENDER_FLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID) #define D3DRMRENDER_GOURAUD (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID) #define D3DRMRENDER_PHONG (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID) typedef enum _D3DRMTEXTUREQUALITY { D3DRMTEXTURE_NEAREST, D3DRMTEXTURE_LINEAR, D3DRMTEXTURE_MIPNEAREST, D3DRMTEXTURE_MIPLINEAR, D3DRMTEXTURE_LINEARMIPNEAREST, D3DRMTEXTURE_LINEARMIPLINEAR } D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY; typedef enum _D3DRMCOMBINETYPE { D3DRMCOMBINE_REPLACE, D3DRMCOMBINE_BEFORE, D3DRMCOMBINE_AFTER } D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE; typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL; typedef enum _D3DRMPALETTEFLAGS { D3DRMPALETTE_FREE, D3DRMPALETTE_READONLY, D3DRMPALETTE_RESERVED } D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS; typedef struct _D3DRMPALETTEENTRY { unsigned char red; unsigned char green; unsigned char blue; unsigned char flags; } D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY; typedef struct _D3DRMIMAGE { int width, height; int aspectx, aspecty; int depth; int rgb; int bytes_per_line; void* buffer1; void* buffer2; unsigned long red_mask; unsigned long green_mask; unsigned long blue_mask; unsigned long alpha_mask; int palette_size; D3DRMPALETTEENTRY* palette; } D3DRMIMAGE, *LPD3DRMIMAGE; typedef enum _D3DRMWRAPTYPE { D3DRMWRAP_FLAT, D3DRMWRAP_CYLINDER, D3DRMWRAP_SPHERE, D3DRMWRAP_CHROME } D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE; #define D3DRMWIREFRAME_CULL 1 #define D3DRMWIREFRAME_HIDDENLINE 2 typedef enum _D3DRMPROJECTIONTYPE { D3DRMPROJECT_PERSPECTIVE, D3DRMPROJECT_ORTHOGRAPHIC } D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE; typedef enum _D3DRMXOFFORMAT { D3DRMXOF_BINARY, D3DRMXOF_COMPRESSED, D3DRMXOF_TEXT } D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT; typedef DWORD D3DRMSAVEOPTIONS; #define D3DRMXOFSAVE_NORMALS 1 #define D3DRMXOFSAVE_TEXTURECOORDINATES 2 #define D3DRMXOFSAVE_MATERIALS 4 #define D3DRMXOFSAVE_TEXTURENAMES 8 #define D3DRMXOFSAVE_ALL 15 #define D3DRMXOFSAVE_TEMPLATES 16 typedef enum _D3DRMCOLORSOURCE { D3DRMCOLOR_FROMFACE, D3DRMCOLOR_FROMVERTEX } D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE; typedef enum _D3DRMFRAMECONSTRAINT { D3DRMCONSTRAIN_Z, D3DRMCONSTRAIN_Y, D3DRMCONSTRAIN_X } D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT; typedef enum _D3DRMMATERIALMODE { D3DRMMATERIAL_FROMMESH, D3DRMMATERIAL_FROMPARENT, D3DRMMATERIAL_FROMFRAME } D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE; typedef enum _D3DRMFOGMODE { D3DRMFOG_LINEAR, D3DRMFOG_EXPONENTIAL, D3DRMFOG_EXPONENTIALSQUARED } D3DRMFOGMODE, *LPD3DRMFOGMODE; typedef enum _D3DRMZBUFFERMODE { D3DRMZBUFFER_FROMPARENT, D3DRMZBUFFER_ENABLE, D3DRMZBUFFER_DISABLE } D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE; typedef enum _D3DRMSORTMODE { D3DRMSORT_FROMPARENT, D3DRMSORT_NONE, D3DRMSORT_FRONTTOBACK, D3DRMSORT_BACKTOFRONT } D3DRMSORTMODE, *LPD3DRMSORTMODE; typedef DWORD D3DRMANIMATIONOPTIONS; #define D3DRMANIMATION_OPEN 1 #define D3DRMANIMATION_CLOSED 2 #define D3DRMANIMATION_LINEARPOSITION 4 #define D3DRMANIMATION_SPLINEPOSITION 8 #define D3DRMANIMATION_SCALEANDROTATION 16 #define D3DRMANIMATION_POSITION 32 typedef DWORD D3DRMLOADOPTIONS; #define D3DRMLOAD_FROMFILE 0x00L #define D3DRMLOAD_FROMRESOURCE 0x01L #define D3DRMLOAD_FROMMEMORY 0x02L #define D3DRMLOAD_FROMSTREAM 0x04L #define D3DRMLOAD_BYNAME 0x10L #define D3DRMLOAD_BYPOSITION 0x20L #define D3DRMLOAD_BYGUID 0x40L #define D3DRMLOAD_FIRST 0x80L #define D3DRMLOAD_INSTANCEBYREFERENCE 0x100L #define D3DRMLOAD_INSTANCEBYCOPYING 0x200L typedef struct _D3DRMLOADRESOURCE { HMODULE hModule; LPCTSTR lpName; LPCTSTR lpType; } D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE; typedef struct _D3DRMLOADMEMORY { LPVOID lpMemory; DWORD dSize; } D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY; typedef enum _D3DRMUSERVISUALREASON { D3DRMUSERVISUAL_CANSEE, D3DRMUSERVISUAL_RENDER } D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON; typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING; static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1; static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2; static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4; typedef struct _D3DRMVERTEX { D3DVECTOR position; D3DVECTOR normal; D3DVALUE tu, tv; D3DCOLOR color; } D3DRMVERTEX, *LPD3DRMVERTEX; typedef LONG D3DRMGROUPINDEX; static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1; extern D3DCOLOR D3DRMAPI D3DRMCreateColorRGB(D3DVALUE,D3DVALUE,D3DVALUE); extern D3DCOLOR D3DRMAPI D3DRMCreateColorRGBA(D3DVALUE,D3DVALUE,D3DVALUE,D3DVALUE); extern D3DVALUE D3DRMAPI D3DRMColorGetRed(D3DCOLOR); extern D3DVALUE D3DRMAPI D3DRMColorGetGreen(D3DCOLOR); extern D3DVALUE D3DRMAPI D3DRMColorGetBlue(D3DCOLOR); extern D3DVALUE D3DRMAPI D3DRMColorGetAlpha(D3DCOLOR); extern LPD3DVECTOR D3DRMAPI D3DRMVectorAdd(LPD3DVECTOR,LPD3DVECTOR,LPD3DVECTOR); extern LPD3DVECTOR D3DRMAPI D3DRMVectorSubtract(LPD3DVECTOR,LPD3DVECTOR,LPD3DVECTOR); extern LPD3DVECTOR D3DRMAPI D3DRMVectorReflect(LPD3DVECTOR,LPD3DVECTOR,LPD3DVECTOR); extern LPD3DVECTOR D3DRMAPI D3DRMVectorCrossProduct(LPD3DVECTOR,LPD3DVECTOR,LPD3DVECTOR); extern D3DVALUE D3DRMAPI D3DRMVectorDotProduct(LPD3DVECTOR,LPD3DVECTOR); extern LPD3DVECTOR D3DRMAPI D3DRMVectorNormalize(LPD3DVECTOR); #define D3DRMVectorNormalise D3DRMVectorNormalize extern D3DVALUE D3DRMAPI D3DRMVectorModulus(LPD3DVECTOR); extern LPD3DVECTOR D3DRMAPI D3DRMVectorRotate(LPD3DVECTOR,LPD3DVECTOR,LPD3DVECTOR,D3DVALUE); extern LPD3DVECTOR D3DRMAPI D3DRMVectorScale(LPD3DVECTOR,LPD3DVECTOR,D3DVALUE); extern LPD3DVECTOR D3DRMAPI D3DRMVectorRandom(LPD3DVECTOR); extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionFromRotation(LPD3DRMQUATERNION,LPD3DVECTOR,D3DVALUE); extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionMultiply(LPD3DRMQUATERNION,LPD3DRMQUATERNION,LPD3DRMQUATERNION); extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionSlerp(LPD3DRMQUATERNION,LPD3DRMQUATERNION,LPD3DRMQUATERNION,D3DVALUE); extern void D3DRMAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D,LPD3DRMQUATERNION); #endif