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 __D3DRM_H__
119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define __D3DRM_H__
129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include "d3drmobj.h"
149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus
169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern "C" {
179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamstruct IDirect3DRM;
189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef void (*D3DRMDEVICEPALETTECALLBACK)
229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (LPDIRECT3DRMDEVICE lpDirect3DRMDev, LPVOID lpArg, DWORD dwIndex, LONG red, LONG green, LONG blue);
239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRM,    0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRM, DIRECT3DRM);
269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* Create a Direct3DRM API */
299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSTDAPI Direct3DRMCreate(LPDIRECT3DRM FAR *lplpDirect3DRM);
309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRM
339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRM, IUnknown)
359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateObject)
399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        (THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateFrame)      (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME *) PURE;
419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateMesh)       (THIS_ LPDIRECT3DRMMESH *) PURE;
429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER *) PURE;
439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateFace)       (THIS_ LPDIRECT3DRMFACE *) PURE;
449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateAnimation)  (THIS_ LPDIRECT3DRMANIMATION *) PURE;
459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateTexture)    (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE *) PURE;
479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateLight)      (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateLightRGB)
499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        (THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateMaterial)   (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateDevice)     (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE *) PURE;
529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /* Create a Windows Device using DirectDraw surfaces */
549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateDeviceFromSurface)
559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE *
579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /* Create a Windows Device using D3D objects */
609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateDeviceFromD3D)
619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev,
629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        LPDIRECT3DRMDEVICE *
639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateDeviceFromClipper)
669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        int width, int height, LPDIRECT3DRMDEVICE *) PURE;
689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE *) PURE;
709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateShadow)
729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE px, D3DVALUE py, D3DVALUE pz,
749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        LPDIRECT3DRMVISUAL *
769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateViewport)
789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateWrap)
829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ou, D3DVALUE ov,
879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE su, D3DVALUE sv,
889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        LPDIRECT3DRMWRAP *
899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(LoadTexture)      (THIS_ const char *, LPDIRECT3DRMTEXTURE *) PURE;
929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(LoadTextureFromResource)  (THIS_ HRSRC rs, LPDIRECT3DRMTEXTURE *) PURE;
939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSearchPath)    (THIS_ LPCSTR) PURE;
959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddSearchPath)    (THIS_ LPCSTR) PURE;
969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetSearchPath)    (THIS_ DWORD *size_return, LPSTR path_return);
979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    //STDMETHOD(GetSearchPath)  (THIS_ int *return_count, char ***return_path) PURE;
989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetDevices)       (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetNamedObject)   (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Load)
1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        LPDIRECT3DRMFRAME
1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Tick)             (THIS_ D3DVALUE) PURE;
1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRM_OK                        DD_OK
1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADOBJECT              MAKE_DDHRESULT(781)
1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADTYPE                MAKE_DDHRESULT(782)
1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADALLOC               MAKE_DDHRESULT(783)
1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_FACEUSED               MAKE_DDHRESULT(784)
1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_NOTFOUND               MAKE_DDHRESULT(785)
1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_NOTDONEYET             MAKE_DDHRESULT(786)
1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_FILENOTFOUND           MAKE_DDHRESULT(787)
1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADFILE                MAKE_DDHRESULT(788)
1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADDEVICE              MAKE_DDHRESULT(789)
1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADVALUE               MAKE_DDHRESULT(790)
1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADMAJORVERSION        MAKE_DDHRESULT(791)
1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_BADMINORVERSION        MAKE_DDHRESULT(792)
1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRMERR_UNABLETOEXECUTE        MAKE_DDHRESULT(793)
1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus
1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif /* _D3DRMAPI_H_ */
1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
135