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 _D3DRMOBJ_H_
119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define _D3DRMOBJ_H_
129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include <objbase.h> /* Use Windows header files */
149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define VIRTUAL
159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include "d3drmdef.h"
179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include "d3d.h"
189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus
209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern "C" {
219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The methods for IUnknown
259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IUNKNOWN_METHODS(kind) \
279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(QueryInterface)           (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(ULONG, AddRef)           (THIS) kind; \
299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(ULONG, Release)          (THIS) kind
309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The methods for IDirect3DRMObject
339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define IDIRECT3DRMOBJECT_METHODS(kind) \
359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Clone)                    (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) kind; \
369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddDestroyCallback)       (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteDestroyCallback)    (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetAppData)               (THIS_ DWORD data) kind; \
399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetAppData)       (THIS) kind; \
409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetName)                  (THIS_ LPCSTR) kind; \
419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetName)                  (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind; \
429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetClassName)             (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind
439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define WIN_TYPES(itype, ptype) \
469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    typedef interface itype FAR *LP##ptype, FAR **LPLP##ptype
479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMObject, DIRECT3DRMOBJECT);
499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMDevice, DIRECT3DRMDEVICE);
509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMViewport, DIRECT3DRMVIEWPORT);
519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMFrame, DIRECT3DRMFRAME);
529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMVisual, DIRECT3DRMVISUAL);
539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMMesh, DIRECT3DRMMESH);
549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMMeshBuilder, DIRECT3DRMMESHBUILDER);
559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMFace, DIRECT3DRMFACE);
569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMLight, DIRECT3DRMLIGHT);
579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMTexture, DIRECT3DRMTEXTURE);
589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMWrap, DIRECT3DRMWRAP);
599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMMaterial, DIRECT3DRMMATERIAL);
609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMAnimation, DIRECT3DRMANIMATION);
619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMAnimationSet, DIRECT3DRMANIMATIONSET);
629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMUserVisual, DIRECT3DRMUSERVISUAL);
639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMShadow, DIRECT3DRMSHADOW);
649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMArray, DIRECT3DRMOBJECTARRAY);
659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMDeviceArray, DIRECT3DRMDEVICEARRAY);
669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMFaceArray, DIRECT3DRMFACEARRAY);
679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMViewportArray, DIRECT3DRMVIEWPORTARRAY);
689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMFrameArray, DIRECT3DRMFRAMEARRAY);
699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMVisualArray, DIRECT3DRMVISUALARRAY);
709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMPickedArray, DIRECT3DRMPICKEDARRAY);
719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamWIN_TYPES(IDirect3DRMLightArray, DIRECT3DRMLIGHTARRAY);
729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Direct3DRM Object classes
759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMDevice,        0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMViewport,      0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMFrame,         0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMMesh,          0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMMeshBuilder,   0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMFace,          0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMLight,         0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMTexture,       0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMWrap,          0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMMaterial,      0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMAnimation,     0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMAnimationSet,  0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMUserVisual,    0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(CLSID_CDirect3DRMShadow,        0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Direct3DRM Object interfaces
939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMObject,          0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMDevice,          0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMViewport,        0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMFrame,           0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMVisual,          0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMMesh,            0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMMeshBuilder,     0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMFace,            0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMLight,           0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMTexture,         0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMWrap,            0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMMaterial,        0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMAnimation,       0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMAnimationSet,    0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMDeviceArray,     0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMViewportArray,   0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMFrameArray,      0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMVisualArray,     0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMLightArray,      0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMPickedArray,     0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMFaceArray,       0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMUserVisual,      0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDEFINE_GUID(IID_IDirect3DRMShadow,          0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef void (*D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef void (*D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef void (*D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef int (*D3DRMUSERVISUALCALLBACK)(LPDIRECT3DRMUSERVISUAL obj, LPVOID arg,
1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                                    D3DRMUSERVISUALREASON reason,
1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                                    LPDIRECT3DRMDEVICE dev,
1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                                    LPDIRECT3DRMVIEWPORT view);
1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef HRESULT (*D3DRMLOADTEXTURECALLBACK)
1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (char *tex_name, void *arg, LPDIRECT3DRMTEXTURE *);
1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef void (*D3DRMLOADCALLBACK)
1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     (LPDIRECT3DRMOBJECT object, REFIID objectguid, LPVOID arg);
1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRMPICKDESC
1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ULONG       ulFaceIdx;
1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    LONG        lGroupIdx;
1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DVECTOR   vPosition;
1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRMPICKDESC, *LPD3DRMPICKDESC;
1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMObject
1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Base class
1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMObject, IUnknown)
1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMVisual
1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMVisual, IDirect3DRMObject)
1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMDevice
1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMDevice, IDirect3DRMObject)
1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
1689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
1709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMDevice methods
1719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
1729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
1739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InitFromD3D)(THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev) PURE;
1749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InitFromClipper)(THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID, int width, int height) PURE;
1759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Update)(THIS) PURE;
1779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
1789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK, LPVOID arg) PURE;
1799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
1809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
1819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDither)(THIS_ BOOL) PURE;
1839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
1849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
1859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
1869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetViewports)(THIS_ LPDIRECT3DRMVIEWPORTARRAY *return_views) PURE;
1889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(BOOL, GetDither)(THIS) PURE;
1909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
1919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
1929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
1939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
1949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
1959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
1969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
1979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
1989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetDirect3DDevice)(THIS_ LPDIRECT3DDEVICE *) PURE;
1999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
2009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
2029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMViewport
2039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMViewport, IDirect3DRMObject)
2059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
2069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
2079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
2089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
2109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMViewport methods
2119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
2129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Init)
2139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECT3DRMDEVICE dev, LPDIRECT3DRMFRAME camera,
2149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        DWORD xpos, DWORD ypos, DWORD width, DWORD height
2159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
2169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Clear)(THIS) PURE;
2179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Render)(THIS_ LPDIRECT3DRMFRAME) PURE;
2189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
2209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
2219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
2229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetUniformScaling)(THIS_ BOOL) PURE;
2239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetCamera)(THIS_ LPDIRECT3DRMFRAME) PURE;
2249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
2259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
2269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
2279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
2289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
2299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
2309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetCamera)(THIS_ LPDIRECT3DRMFRAME *) PURE;
2329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetDevice)(THIS_ LPDIRECT3DRMDEVICE *) PURE;
2339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
2349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Pick)(THIS_ LONG x, LONG y, LPDIRECT3DRMPICKEDARRAY *return_visuals) PURE;
2359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(BOOL, GetUniformScaling)(THIS) PURE;
2379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(LONG, GetX)(THIS) PURE;
2389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(LONG, GetY)(THIS) PURE;
2399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
2409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
2419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
2429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
2439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
2449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
2459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetDirect3DViewport)(THIS_ LPDIRECT3DVIEWPORT *) PURE;
2469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
2479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
2499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMFrame
2509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMFrame, IDirect3DRMVisual)
2529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
2539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
2549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
2559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
2579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMFrame methods
2589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
2599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddChild)(THIS_ LPDIRECT3DRMFRAME child) PURE;
2609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
2619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
2629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
2639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
2649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
2659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
2669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
2679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetChildren)(THIS_ LPDIRECT3DRMFRAMEARRAY *children) PURE;
2689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
2699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetLights)(THIS_ LPDIRECT3DRMLIGHTARRAY *lights) PURE;
2709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
2719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetParent)(THIS_ LPDIRECT3DRMFRAME *) PURE;
2729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetPosition)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_position) PURE;
2739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetRotation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR axis, LPD3DVALUE return_theta) PURE;
2749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetScene)(THIS_ LPDIRECT3DRMFRAME *) PURE;
2759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
2769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
2779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
2789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR return_velocity, BOOL with_rotation) PURE;
2799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetOrientation)(THIS_ LPDIRECT3DRMFRAME reference, LPD3DVECTOR dir, LPD3DVECTOR up) PURE;
2809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetVisuals)(THIS_ LPDIRECT3DRMVISUALARRAY *visuals) PURE;
2819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
2829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
2839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg)PURE;
2849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(LookAt)(THIS_ LPDIRECT3DRMFRAME target, LPDIRECT3DRMFRAME reference, D3DRMFRAMECONSTRAINT) PURE;
2859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
2869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteChild)(THIS_ LPDIRECT3DRMFRAME) PURE;
2879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteLight)(THIS_ LPDIRECT3DRMLIGHT) PURE;
2889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
2899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteVisual)(THIS_ LPDIRECT3DRMVISUAL) PURE;
2909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
2919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE *) PURE;
2929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
2939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(BOOL, GetSceneFogEnable)(THIS) PURE;
2949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
2959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
2969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
2979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
2989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneBackgroundDepth)(THIS_ LPDIRECTDRAWSURFACE) PURE;
2999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneBackgroundImage)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
3009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneFogEnable)(THIS_ BOOL) PURE;
3019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
3029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
3039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
3049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
3059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
3069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
3079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
3089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetOrientation)
3099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECT3DRMFRAME reference,
3109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
3119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz
3129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
3139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetPosition)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
3149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetRotation)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
3159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
3169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
3179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
3189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetVelocity)(THIS_ LPDIRECT3DRMFRAME reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, BOOL with_rotation) PURE;
3199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
3209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
3219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
3229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
3249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMMesh
3259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMMesh, IDirect3DRMVisual)
3279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
3299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
3309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
3329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMMesh methods
3339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
3349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
3359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
3369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
3379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData, D3DRMGROUPINDEX *returnId) PURE;
3389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count, D3DRMVERTEX *values) PURE;
3399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
3409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
3419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
3429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
3439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL value) PURE;
3449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE value) PURE;
3459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
3479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace, DWORD *fDataSize, unsigned *fData) PURE;
3489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
3499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
3509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
3519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
3529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMMATERIAL *returnPtr) PURE;
3539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, LPDIRECT3DRMTEXTURE *returnPtr) PURE;
3549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
3559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
3579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMShadow
3589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMShadow, IDirect3DRMVisual)
3609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
3629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
3639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
3659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMShadow methods
3669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
3679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Init)
3689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ LPDIRECT3DRMVISUAL visual, LPDIRECT3DRMLIGHT light,
3699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE px, D3DVALUE py, D3DVALUE pz,
3709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE nx, D3DVALUE ny, D3DVALUE nz
3719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
3729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
3739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
3759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMFace
3769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMFace, IDirect3DRMObject)
3789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
3799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
3809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
3819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
3839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMFace methods
3849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
3859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
3869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
3879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
3889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
3899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
3909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
3919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
3929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
3939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
3949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
3959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
3969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
3979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetTextureTopology)(THIS_ BOOL *wrap_u, BOOL *wrap_v) PURE;
3989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
3999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetTexture)(THIS_ LPDIRECT3DRMTEXTURE *) PURE;
4009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD(GetMaterial)(THIS_ LPDIRECT3DRMMATERIAL *) PURE;
4019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD_(int, GetVertexCount)(THIS) PURE;
4039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
4049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
4059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
4069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
4079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
4099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMMeshBuilder
4109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMMeshBuilder, IDirect3DRMVisual)
4129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
4139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
4149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
4159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
4179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMMeshBuilder methods
4189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
4199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg) PURE;
4209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
4219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
4229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
4239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
4249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
4259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GenerateNormals)(THIS) PURE;
4269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
4279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddMesh)(THIS_ LPDIRECT3DRMMESH) PURE;
4299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER) PURE;
4309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
4319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddFace)(THIS_ LPDIRECT3DRMFACE) PURE;
4329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddFaces)
4339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ DWORD vcount, D3DVECTOR *vertices, DWORD ncount, D3DVECTOR *normals,
4349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        DWORD *data, LPDIRECT3DRMFACEARRAY*
4359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
4369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
4379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
4389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
4399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTexture)(THIS_ LPDIRECT3DRMTEXTURE) PURE;
4409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetMaterial)(THIS_ LPDIRECT3DRMMATERIAL) PURE;
4419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTextureTopology)(THIS_ BOOL wrap_u, BOOL wrap_v) PURE;
4429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
4439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetPerspective)(THIS_ BOOL) PURE;
4449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
4459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
4469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
4479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
4489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
4499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetFaces)(THIS_ LPDIRECT3DRMFACEARRAY*) PURE;
4519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetVertices)
4529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals, DWORD *face_data_size, DWORD *face_data
4539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
4549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
4559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
4579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
4589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateFace)(THIS_ LPDIRECT3DRMFACE*) PURE;
4599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
4609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(BOOL, GetPerspective)(THIS) PURE;
4619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(int, GetFaceCount)(THIS) PURE;
4629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(int, GetVertexCount)(THIS) PURE;
4639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
4649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(CreateMesh)(THIS_ LPDIRECT3DRMMESH*) PURE;
4669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
4679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
4699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMLight
4709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMLight, IDirect3DRMObject)
4729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
4739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
4749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
4759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
4779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMLight methods
4789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
4799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetType)(THIS_ D3DRMLIGHTTYPE) PURE;
4809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
4819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
4829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetRange)(THIS_ D3DVALUE) PURE;
4839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetUmbra)(THIS_ D3DVALUE) PURE;
4849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetPenumbra)(THIS_ D3DVALUE) PURE;
4859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetConstantAttenuation)(THIS_ D3DVALUE) PURE;
4869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetLinearAttenuation)(THIS_ D3DVALUE) PURE;
4879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetQuadraticAttenuation)(THIS_ D3DVALUE) PURE;
4889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetRange)(THIS) PURE;
4909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetUmbra)(THIS) PURE;
4919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetPenumbra)(THIS) PURE;
4929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetConstantAttenuation)(THIS) PURE;
4939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetLinearAttenuation)(THIS) PURE;
4949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetQuadraticAttenuation)(THIS) PURE;
4959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
4969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMLIGHTTYPE, GetType)(THIS) PURE;
4979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
4989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetEnableFrame)(THIS_ LPDIRECT3DRMFRAME) PURE;
4999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetEnableFrame)(THIS_ LPDIRECT3DRMFRAME*) PURE;
5009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
5019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
5039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMTexture
5049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
5069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
5079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
5089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
5099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
5119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMTexture methods
5129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
5139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
5149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InitFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS) PURE;
5159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
5169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Changed)(THIS_ BOOL pixels, BOOL palette) PURE;
5179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetColors)(THIS_ DWORD) PURE;
5199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetShades)(THIS_ DWORD) PURE;
5209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
5219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
5229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
5239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDecalTransparency)(THIS_ BOOL) PURE;
5249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
5259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
5279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
5289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
5309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetShades)(THIS) PURE;
5319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetColors)(THIS) PURE;
5329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
5339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(BOOL, GetDecalTransparency)(THIS) PURE;
5349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
5359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
5369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
5389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMWrap
5399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
5419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
5429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
5439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
5449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
5469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMWrap methods
5479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
5489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Init)
5499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    (   THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME ref,
5509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
5519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
5529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
5539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE ou, D3DVALUE ov,
5549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream        D3DVALUE su, D3DVALUE sv
5559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    ) PURE;
5569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Apply)(THIS_ LPDIRECT3DRMOBJECT) PURE;
5579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(ApplyRelative)(THIS_ LPDIRECT3DRMFRAME frame, LPDIRECT3DRMOBJECT) PURE;
5589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
5599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
5619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMMaterial
5629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
5649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
5659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
5669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
5679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
5699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMMaterial methods
5709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
5719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
5729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
5739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
5749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
5769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
5779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
5789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
5799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
5819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMAnimation
5829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
5849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
5859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
5869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
5879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
5899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMAnimation methods
5909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
5919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
5929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
5939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
5949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
5959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
5969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetFrame)(THIS_ LPDIRECT3DRMFRAME frame) PURE;
5979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
5989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
5999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
6009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMAnimationSet
6049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
6069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
6099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
6119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMAnimationSet methods
6129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
6139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(AddAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
6149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Load)(THIS_ LPVOID filename, LPVOID name, D3DRMLOADOPTIONS loadflags, D3DRMLOADTEXTURECALLBACK, LPVOID lpArg, LPDIRECT3DRMFRAME parent)PURE;
6159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(DeleteAnimation)(THIS_ LPDIRECT3DRMANIMATION aid) PURE;
6169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
6179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMUserVisual
6219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
6239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IDIRECT3DRMOBJECT_METHODS(PURE);
6269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /*
6289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * IDirect3DRMUserVisual methods
6299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
6309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
6319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMArray
6359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
6379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
6419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    /* No GetElement method as it would get overloaded
6429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * in derived classes, and overloading is
6439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     * a no-no in COM
6449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream     */
6459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMDeviceArray
6499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
6519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
6559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMDEVICE *) PURE;
6569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMFrameArray
6609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
6629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
6669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFRAME *) PURE;
6679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMViewportArray
6719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
6739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
6779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVIEWPORT *) PURE;
6789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMVisualArray
6829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
6849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
6889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *) PURE;
6899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
6909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
6929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMPickedArray
6939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
6959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
6969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
6979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
6989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
6999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetPick)(THIS_ DWORD index, LPDIRECT3DRMVISUAL *, LPDIRECT3DRMFRAMEARRAY *, LPD3DRMPICKDESC) PURE;
7009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
7019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
7039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMLightArray
7049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
7069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
7079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
7089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
7109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMLIGHT *) PURE;
7119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
7129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#undef INTERFACE
7149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define INTERFACE IDirect3DRMFaceArray
7159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamDECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
7179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{
7189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    IUNKNOWN_METHODS(PURE);
7199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD_(DWORD, GetSize)(THIS) PURE;
7219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    STDMETHOD(GetElement)(THIS_ DWORD index, LPDIRECT3DRMFACE *) PURE;
7229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
7239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
7249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifdef __cplusplus
7259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream};
7269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif
7279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif /* _D3DRMOBJ_H_ */
728