mirror of
https://github.com/kevinbentley/Descent3.git
synced 2025-01-22 19:55:23 +00:00
1302 lines
63 KiB
C
1302 lines
63 KiB
C
/*
|
|
* Descent 3
|
|
* Copyright (C) 2024 Parallax Software
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/*---------------------------------------------------------------------------
|
|
*
|
|
* A3D COM Interface Header File.
|
|
*
|
|
*---------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef _IA3DAPI_H_
|
|
#define _IA3DAPI_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// A3D 1.0 Class ID {D8F1EEE0-F634-11cf-8700-00A0245D918B}
|
|
DEFINE_GUID(CLSID_A3d, 0xd8f1eee0, 0xf634, 0x11cf, 0x87, 0x0, 0x0, 0xa0, 0x24, 0x5d, 0x91, 0x8b);
|
|
|
|
// A3D 2.0 Class ID {92FA2C24-253C-11d2-90FB-006008A1F441}
|
|
DEFINE_GUID(CLSID_A3dApi, 0x92fa2c24, 0x253c, 0x11d2, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
//===================================================================
|
|
// A3D 2.0 Interfaces
|
|
//===================================================================
|
|
|
|
// Forward declaration of COM interfaces
|
|
#ifdef __cplusplus
|
|
// 'struct' not 'class' per the way DECLARE_INTERFACE_ is defined
|
|
struct IA3d3;
|
|
struct IA3dGeom;
|
|
struct IA3dSource;
|
|
struct IA3dListener;
|
|
struct IA3dList;
|
|
struct IA3dMaterial;
|
|
struct IA3dEnvironment;
|
|
#endif // __cplusplus
|
|
|
|
typedef struct IA3d3 *LPA3D3;
|
|
typedef struct IA3d4 *LPA3D4;
|
|
typedef struct IA3dGeom *LPA3DGEOM;
|
|
typedef struct IA3dSource *LPA3DSOURCE;
|
|
typedef struct IA3dListener *LPA3DLISTENER;
|
|
typedef struct IA3dList *LPA3DLIST;
|
|
typedef struct IA3dMaterial *LPA3DMATERIAL;
|
|
typedef struct IA3dEnvironment *LPA3DENVIRONMENT;
|
|
|
|
//===================================================================
|
|
// Defined values
|
|
//===================================================================
|
|
|
|
// Feature flags
|
|
#define A3D_1ST_REFLECTIONS 0x00000002
|
|
#define A3D_DIRECT_PATH_A3D 0x00000008
|
|
#define A3D_DIRECT_PATH_GENERIC 0x00000020
|
|
#define A3D_OCCLUSIONS 0x00000040
|
|
#define A3D_DISABLE_SPLASHSCREEN 0x00000080
|
|
|
|
// Rendering modes
|
|
#define A3D_FASTEST 0x00000001
|
|
#define A3D_QUICK 0x00000002
|
|
#define A3D_NICEST 0x00000004
|
|
|
|
// Primitive input modes
|
|
#define A3D_INVALID_INPUTMODE -1
|
|
|
|
#define A3D_LINES 0x00000002
|
|
#define A3D_TRIANGLES 0x00000003
|
|
#define A3D_QUADS 0x00000004
|
|
#define A3D_MATERIAL 0x00000005
|
|
|
|
#define A3D_SUBFACE 0x80000000
|
|
#define A3D_VERTEX_MASK 0x0000000F
|
|
|
|
#define A3D_SUB_LINES (A3D_LINES | A3D_SUBFACE)
|
|
#define A3D_SUB_TRIANGLES (A3D_TRIANGLES | A3D_SUBFACE)
|
|
#define A3D_SUB_QUADS (A3D_QUADS | A3D_SUBFACE)
|
|
|
|
// Wall flags
|
|
#define A3D_SHELL_WALL 0x00000001
|
|
#define A3D_TRANSPARENT_WALL 0x00000002
|
|
|
|
// Data types
|
|
typedef float A3DVAL, *LPA3DVAL;
|
|
|
|
typedef A3DVAL A3DVECTOR[4];
|
|
typedef A3DVAL A3DVERTEX[4];
|
|
|
|
/*
|
|
* NOTE: A3D matrices are column major. Indices are like this:
|
|
*
|
|
* | 0 4 8 12 |
|
|
* | 1 5 9 13 |
|
|
* | 2 6 10 14 |
|
|
* | 3 7 11 15 |
|
|
*
|
|
* Indexing is (column*4)+row.
|
|
*
|
|
*/
|
|
typedef A3DVAL A3DMATRIX[16];
|
|
|
|
#define A3D_TRUE 1
|
|
#define A3D_FALSE 0
|
|
|
|
// Epsilon good as zero gets
|
|
#define A3D_EPSILON (1.0e-6f)
|
|
#define A3D_EPSILON_SQUARED (1.0e-12f)
|
|
|
|
#define A3D_DEFAULT 0
|
|
|
|
// Play options
|
|
#define A3D_SINGLE 0
|
|
#define A3D_LOOPED 1
|
|
|
|
// Scene Types
|
|
#define A3D_SCENE_2D 2
|
|
#define A3D_SCENE_3D 3
|
|
|
|
#define A3DSTATUS_PLAYING 0x00000001
|
|
#define A3DSTATUS_BUFFERLOST 0x00000002
|
|
#define A3DSTATUS_LOOPING 0x00000004
|
|
#define A3DSTATUS_WAITING_FOR_FLUSH 0x00001000
|
|
|
|
// Coordinate system
|
|
#define A3D_RIGHT_HANDED_CS 0x00000000
|
|
#define A3D_LEFT_HANDED_CS 0x00000001
|
|
|
|
// Cooperative Level
|
|
#define A3D_CL_NORMAL 0x00000001
|
|
#define A3D_CL_EXCLUSIVE 0x00000003
|
|
|
|
// MaxMinDistance flags
|
|
#define A3D_AUDIBLE 0x00000000
|
|
#define A3D_MUTE 0x00000001
|
|
|
|
#define A3DRENDERPREFS_A3D 0x00000000
|
|
#define A3DRENDERPREFS_DEFAULT A3DRENDERPREFS_A3D
|
|
|
|
#define A3DSOURCE_TRANSFORMMODE_NORMAL 0x00000000
|
|
#define A3DSOURCE_TRANSFORMMODE_HEADRELATIVE 0x00000001
|
|
|
|
#define A3DSOURCE_RENDERMODE_A3D 0x00000000
|
|
#define A3DSOURCE_RENDERMODE_MONO 0x00000001
|
|
#define A3DSOURCE_RENDERMODE_1ST_REFLECTIONS 0x00000004
|
|
#define A3DSOURCE_RENDERMODE_OCCLUSIONS 0x00000008
|
|
#define A3DSOURCE_RENDERMODE_NATIVE 0x00000020
|
|
#define A3DSOURCE_RENDERMODE_DEFAULT \
|
|
(A3DSOURCE_RENDERMODE_A3D | A3DSOURCE_RENDERMODE_1ST_REFLECTIONS | A3DSOURCE_RENDERMODE_OCCLUSIONS)
|
|
|
|
// Notification
|
|
#define A3DSOURCE_WAVEEVENT_STOP 0xFFFFFFFF
|
|
|
|
// Polygon render mode
|
|
#define A3DPOLY_RENDERMODE_1ST_REFLECTIONS 0x00000002
|
|
#define A3DPOLY_RENDERMODE_OCCLUSIONS 0x00000040
|
|
|
|
#define A3DSOURCE_INITIAL_RENDERMODE_A3D 0x00000000
|
|
#define A3DSOURCE_INITIAL_RENDERMODE_NATIVE 0x00000001
|
|
#define A3DSOURCE_TYPEUNMANAGED 0x00000002
|
|
#define A3DSOURCE_TYPESTREAMED 0x00000004
|
|
#define A3DSOURCE_TYPEDEFAULT A3DSOURCE_INITIAL_RENDERMODE_A3D
|
|
|
|
// Values for bOutputMode
|
|
#define OUTPUT_MODE_STEREO 0x00000001
|
|
#define OUTPUT_MODE_QUAD 0x00000002
|
|
|
|
// Values for FrontXtalkMode and bRearXtalkMode
|
|
#define OUTPUT_HEADPHONES 0x00000001
|
|
#define OUTPUT_SPEAKERS_WIDE 0x00000002
|
|
#define OUTPUT_SPEAKERS_NARROW 0x00000003
|
|
|
|
// Values for Resource Management Mode
|
|
#define A3D_RESOURCE_MODE_OFF 0x00000000
|
|
#define A3D_RESOURCE_MODE_NOTIFY 0x00000001
|
|
#define A3D_RESOURCE_MODE_DYNAMIC 0x00000002
|
|
#define A3D_RESOURCE_MODE_DYNAMIC_LOOPERS 0x00000003
|
|
#define A3D_RESOURCE_MODE_LAST A3D_RESOURCE_MODE_DYNAMIC_LOOPERS
|
|
|
|
// A3d Source Lock modes
|
|
#define A3D_FROMWRITECURSOR 0x00000001
|
|
#define A3D_ENTIREBUFFER 0x00000002
|
|
|
|
// Version Definitions for A3DCAPS
|
|
#define A3D_CURRENT_VERSION IA3DVERSION_RELEASE20
|
|
|
|
#define IA3DVERSION_RELEASE10 10
|
|
#define IA3DVERSION_RELEASE12 12
|
|
#define IA3DVERSION_RELEASE20 20
|
|
|
|
// A3d Caps structure for A3d2 interface
|
|
// If Fail to get IA3d2 interface, version of DLL is IA3DVERSION_PRE12
|
|
|
|
typedef struct __A3DCAPS_SOFTWARE {
|
|
DWORD dwSize; // Use for internal version control
|
|
DWORD dwVersion; // For Backwards capablities purposes
|
|
DWORD dwFlags;
|
|
DWORD dwReserved;
|
|
DWORD dwReserved2;
|
|
DWORD dwOutputChannels;
|
|
DWORD dwMinSampleRate;
|
|
DWORD dwMaxSampleRate;
|
|
DWORD dwMax2DBuffers;
|
|
DWORD dwMax3DBuffers;
|
|
} A3DCAPS_SOFTWARE, *LPA3DCAPS_SOFTWARE;
|
|
|
|
typedef struct __A3DCAPS_HARDWARE {
|
|
DWORD dwSize; // Use for internal version control
|
|
DWORD dwFlags;
|
|
DWORD dwReserved;
|
|
DWORD dwReserved2;
|
|
DWORD dwOutputChannels;
|
|
DWORD dwMinSampleRate;
|
|
DWORD dwMaxSampleRate;
|
|
DWORD dwMax2DBuffers;
|
|
DWORD dwMax3DBuffers;
|
|
} A3DCAPS_HARDWARE, *LPA3DCAPS_HARDWARE;
|
|
|
|
//===================================================================
|
|
// IA3d
|
|
//
|
|
// The original IA3d interface.
|
|
//===================================================================
|
|
|
|
// {D8F1EEE1-F634-11cf-8700-00A0245D918B}
|
|
DEFINE_GUID(IID_IA3d, 0xd8f1eee1, 0xf634, 0x11cf, 0x87, 0x0, 0x0, 0xa0, 0x24, 0x5d, 0x91, 0x8b);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3d
|
|
|
|
typedef struct IA3d *LPIA3D;
|
|
|
|
DECLARE_INTERFACE_(IA3d, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3d Methods.
|
|
STDMETHOD(SetOutputMode)(THIS_ DWORD, DWORD, DWORD) PURE;
|
|
STDMETHOD(GetOutputMode)(THIS_ LPDWORD, LPDWORD, LPDWORD) PURE;
|
|
STDMETHOD(SetResourceManagerMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetResourceManagerMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetHFAbsorbFactor)(THIS_ FLOAT) PURE;
|
|
STDMETHOD(GetHFAbsorbFactor)(THIS_ FLOAT *) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3d_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3d_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3d_SetOutputMode(p, a, b, c) (p)->lpVtbl->SetOutputMode(p, a, b, c)
|
|
#define IA3d_GetOutputMode(p, a, b, c) (p)->lpVtbl->GetOutputMode(p, a, b, c)
|
|
#define IA3d_SetResourceManagerMode(p, a) (p)->lpVtbl->SetResourceManagerMode(p, a)
|
|
#define IA3d_GetResourceManagerMode(p, a) (p)->lpVtbl->GetResourceManagerMode(p, a)
|
|
#define IA3d_SetHFAbsorbFactor(p, a) (p)->lpVtbl->SetHFAbsorbFactor(p, a)
|
|
#define IA3d_GetHFAbsorbFactor(p, a) (p)->lpVtbl->GetHFAbsorbFactor(p, a)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3d_AddRef(p) (p)->AddRef()
|
|
#define IA3d_Release(p) (p)->Release()
|
|
#define IA3d_SetOutputMode(p, a, b, c) (p)->SetOutputMode(a, b, c)
|
|
#define IA3d_GetOutputMode(p, a, b, c) (p)->GetOutputMode(a, b, c)
|
|
#define IA3d_SetResourceManagerMode(p, a) (p)->SetResourceManagerMode(a)
|
|
#define IA3d_GetResourceManagerMode(p, a) (p)->GetResourceManagerMode(a)
|
|
#define IA3d_SetHFAbsorbFactor(p, a) (p)->SetHFAbsorbFactor(a)
|
|
#define IA3d_GetHFAbsorbFactor(p, a) (p)->GetHFAbsorbFactor(a)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3d2
|
|
//
|
|
// IA3d2 Interface definition.
|
|
//===================================================================
|
|
|
|
// {fb80d1e0-98d3-11d1-90fb-006008a1f441}
|
|
DEFINE_GUID(IID_IA3d2, 0xfb80d1e0, 0x98d3, 0x11d1, 0x90, 0xfb, 0x00, 0x60, 0x08, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3d2
|
|
|
|
typedef struct IA3d2 *LPIA3D2;
|
|
|
|
DECLARE_INTERFACE_(IA3d2, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3d Methods.
|
|
STDMETHOD(SetOutputMode)(THIS_ DWORD, DWORD, DWORD) PURE;
|
|
STDMETHOD(GetOutputMode)(THIS_ LPDWORD, LPDWORD, LPDWORD) PURE;
|
|
STDMETHOD(SetResourceManagerMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetResourceManagerMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetHFAbsorbFactor)(THIS_ FLOAT) PURE;
|
|
STDMETHOD(GetHFAbsorbFactor)(THIS_ FLOAT *) PURE;
|
|
|
|
// IA3d2 Methods.
|
|
STDMETHOD(RegisterVersion)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetSoftwareCaps)(THIS_ LPA3DCAPS_SOFTWARE) PURE;
|
|
STDMETHOD(GetHardwareCaps)(THIS_ LPA3DCAPS_HARDWARE) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3d2_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3d2_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3d2_SetOutputMode(p, a, b, c) (p)->lpVtbl->SetOutputMode(p, a, b, c)
|
|
#define IA3d2_GetOutputMode(p, a, b, c) (p)->lpVtbl->GetOutputMode(p, a, b, c)
|
|
#define IA3d2_SetResourceManagerMode(p, a) (p)->lpVtbl->SetResourceManagerMode(p, a)
|
|
#define IA3d2_GetResourceManagerMode(p, a) (p)->lpVtbl->GetResourceManagerMode(p, a)
|
|
#define IA3d2_SetHFAbsorbFactor(p, a) (p)->lpVtbl->SetHFAbsorbFactor(p, a)
|
|
#define IA3d2_GetHFAbsorbFactor(p, a) (p)->lpVtbl->GetHFAbsorbFactor(p, a)
|
|
#define IA3d2_RegisterVersion(p, a) (p)->lpVtbl->RegisterVersion(p, a)
|
|
#define IA3d2_GetSoftwareCaps(p, a) (p)->lpVtbl->GetSoftwareCaps(p, a)
|
|
#define IA3d2_GetHardwareCaps(p, a) (p)->lpVtbl->GetHardwareCaps(p, a)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d2_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3d2_AddRef(p) (p)->AddRef()
|
|
#define IA3d2_Release(p) (p)->Release()
|
|
#define IA3d2_SetOutputMode(p, a, b, c) (p)->SetOutputMode(a, b, c)
|
|
#define IA3d2_GetOutputMode(p, a, b, c) (p)->GetOutputMode(a, b, c)
|
|
#define IA3d2_SetResourceManagerMode(p, a) (p)->SetResourceManagerMode(a)
|
|
#define IA3d2_GetResourceManagerMode(p, a) (p)->GetResourceManagerMode(a)
|
|
#define IA3d2_SetHFAbsorbFactor(p, a) (p)->SetHFAbsorbFactor(a)
|
|
#define IA3d2_GetHFAbsorbFactor(p, a) (p)->GetHFAbsorbFactor(a)
|
|
#define IA3d2_RegisterVersion(p, a) (p)->RegisterVersion(a)
|
|
#define IA3d2_GetSoftwareCaps(p, a) (p)->GetSoftwareCaps(a)
|
|
#define IA3d2_GetHardwareCaps(p, a) (p)->GetHardwareCaps(a)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3d3
|
|
//
|
|
// The root object in A3D.
|
|
//===================================================================
|
|
|
|
// {C398E560-D90B-11d1-90FB-006008A1F441}
|
|
DEFINE_GUID(IID_IA3d3, 0xc398e560, 0xd90b, 0x11d1, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3d3
|
|
|
|
typedef struct IA3d3 *LPIA3D3;
|
|
|
|
DECLARE_INTERFACE_(IA3d3, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3d Methods.
|
|
STDMETHOD(SetOutputMode)(THIS_ DWORD, DWORD, DWORD) PURE;
|
|
STDMETHOD(GetOutputMode)(THIS_ LPDWORD, LPDWORD, LPDWORD) PURE;
|
|
STDMETHOD(SetResourceManagerMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetResourceManagerMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetHFAbsorbFactor)(THIS_ FLOAT) PURE;
|
|
STDMETHOD(GetHFAbsorbFactor)(THIS_ FLOAT *) PURE;
|
|
|
|
// IA3d2 Methods.
|
|
STDMETHOD(RegisterVersion)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetSoftwareCaps)(THIS_ LPA3DCAPS_SOFTWARE) PURE;
|
|
STDMETHOD(GetHardwareCaps)(THIS_ LPA3DCAPS_HARDWARE) PURE;
|
|
|
|
// IA3d3 Methods.
|
|
STDMETHOD(Clear)(THIS) PURE;
|
|
STDMETHOD(Flush)(THIS) PURE;
|
|
STDMETHOD(Compat)(THIS_ DWORD, DWORD) PURE;
|
|
STDMETHOD(Init)(THIS_ LPGUID, DWORD, DWORD) PURE;
|
|
STDMETHOD(IsFeatureAvailable)(THIS_ DWORD) PURE;
|
|
STDMETHOD(NewSource)(THIS_ DWORD, LPA3DSOURCE *) PURE;
|
|
STDMETHOD(DuplicateSource)(THIS_ LPA3DSOURCE, LPA3DSOURCE *) PURE;
|
|
STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
|
|
STDMETHOD(GetCooperativeLevel)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetMaxReflectionDelayTime)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetMaxReflectionDelayTime)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetCoordinateSystem)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetCoordinateSystem)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetOutputGain)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetOutputGain)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetNumFallbackSources)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetNumFallbackSources)(THIS_ LPDWORD) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d3_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3d3_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3d3_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3d3_SetOutputMode(p, a, b, c) (p)->lpVtbl->SetOutputMode(p, a, b, c)
|
|
#define IA3d3_GetOutputMode(p, a, b, c) (p)->lpVtbl->GetOutputMode(p, a, b, c)
|
|
#define IA3d3_SetResourceManagerMode(p, a) (p)->lpVtbl->SetResourceManagerMode(p, a)
|
|
#define IA3d3_GetResourceManagerMode(p, a) (p)->lpVtbl->GetResourceManagerMode(p, a)
|
|
#define IA3d3_SetHFAbsorbFactor(p, a) (p)->lpVtbl->SetHFAbsorbFactor(p, a)
|
|
#define IA3d3_GetHFAbsorbFactor(p, a) (p)->lpVtbl->GetHFAbsorbFactor(p, a)
|
|
#define IA3d3_RegisterVersion(p, a) (p)->lpVtbl->RegisterVersion(p, a)
|
|
#define IA3d3_GetSoftwareCaps(p, a) (p)->lpVtbl->GetSoftwareCaps(p, a)
|
|
#define IA3d3_GetHardwareCaps(p, a) (p)->lpVtbl->GetHardwareCaps(p, a)
|
|
#define IA3d3_Clear(p) (p)->lpVtbl->Clear(p)
|
|
#define IA3d3_Flush(p) (p)->lpVtbl->Flush(p)
|
|
#define IA3d3_Compat(p, a, b) (p)->lpVtbl->Compat(p, a, b)
|
|
#define IA3d3_Init(p, a, b, c) (p)->lpVtbl->Init(p, a, b, c)
|
|
#define IA3d3_IsFeatureAvailable(p, a) (p)->lpVtbl->IsFeatureAvailable(p, a)
|
|
#define IA3d3_NewSource(p, a, b) (p)->lpVtbl->NewSource(p, a, b)
|
|
#define IA3d3_DuplicateSource(p, a, b) (p)->lpVtbl->DuplicateSource(p, a, b)
|
|
#define IA3d3_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b)
|
|
#define IA3d3_GetCooperativeLevel(p, a) (p)->lpVtbl->GetCooperativeLevel(p, a)
|
|
#define IA3d3_SetMaxReflectionDelayTime(p, a) (p)->lpVtbl->SetMaxReflectionDelayTime(p, a)
|
|
#define IA3d3_GetMaxReflectionDelayTime(p, a) (p)->lpVtbl->GetMaxReflectionDelayTime(p, a)
|
|
#define IA3d3_SetCoordinateSystem(p, a) (p)->lpVtbl->SetCoordinateSystem(p, a)
|
|
#define IA3d3_GetCoordinateSystem(p, a) (p)->lpVtbl->GetCoordinateSystem(p, a)
|
|
#define IA3d3_SetOutputGain(p, a) (p)->lpVtbl->SetOutputGain(p, a)
|
|
#define IA3d3_GetOutputGain(p, a) (p)->lpVtbl->GetOutputGain(p, a)
|
|
#define IA3d3_SetNumFallbackSources(p, a) (p)->lpVtbl->SetNumFallbackSources(p, a)
|
|
#define IA3d3_GetNumFallbackSources(p, a) (p)->lpVtbl->GetNumFallbackSources(p, a)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d3_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3d3_AddRef(p) (p)->AddRef()
|
|
#define IA3d3_Release(p) (p)->Release()
|
|
#define IA3d3_SetOutputMode(p, a, b, c) (p)->SetOutputMode(a, b, c)
|
|
#define IA3d3_GetOutputMode(p, a, b, c) (p)->GetOutputMode(a, b, c)
|
|
#define IA3d3_SetResourceManagerMode(p, a) (p)->SetResourceManagerMode(a)
|
|
#define IA3d3_GetResourceManagerMode(p, a) (p)->GetResourceManagerMode(a)
|
|
#define IA3d3_SetHFAbsorbFactor(p, a) (p)->SetHFAbsorbFactor(a)
|
|
#define IA3d3_GetHFAbsorbFactor(p, a) (p)->GetHFAbsorbFactor(a)
|
|
#define IA3d3_RegisterVersion(p, a) (p)->RegisterVersion(a)
|
|
#define IA3d3_GetSoftwareCaps(p, a) (p)->GetSoftwareCaps(a)
|
|
#define IA3d3_GetHardwareCaps(p, a) (p)->GetHardwareCaps(a)
|
|
#define IA3d3_Clear(p) (p)->Clear()
|
|
#define IA3d3_Flush(p) (p)->Flush()
|
|
#define IA3d3_Compat(p, a, b) (p)->Compat(a, b)
|
|
#define IA3d3_Init(p, a, b, c) (p)->Init(a, b, c)
|
|
#define IA3d3_IsFeatureAvailable(p, a) (p)->IsFeatureAvailable(a)
|
|
#define IA3d3_NewSource(p, a, b) (p)->NewSource(a, b)
|
|
#define IA3d3_DuplicateSource(p, a, b) (p)->DuplicateSource(a, b)
|
|
#define IA3d3_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b)
|
|
#define IA3d3_GetCooperativeLevel(p, a) (p)->GetCooperativeLevel(a)
|
|
#define IA3d3_SetMaxReflectionDelayTime(p, a) (p)->SetMaxReflectionDelayTime(a)
|
|
#define IA3d3_GetMaxReflectionDelayTime(p, a) (p)->GetMaxReflectionDelayTime(a)
|
|
#define IA3d3_SetCoordinateSystem(p, a) (p)->SetCoordinateSystem(a)
|
|
#define IA3d3_GetCoordinateSystem(p, a) (p)->GetCoordinateSystem(a)
|
|
#define IA3d3_SetOutputGain(p, a) (p)->SetOutputGain(a)
|
|
#define IA3d3_GetOutputGain(p, a) (p)->GetOutputGain(a)
|
|
#define IA3d3_SetNumFallbackSources(p, a) (p)->SetNumFallbackSources(a)
|
|
#define IA3d3_GetNumFallbackSources(p, a) (p)->GetNumFallbackSources(a)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3d4
|
|
//
|
|
// The root object in A3D.
|
|
//===================================================================
|
|
|
|
// {E4C40280-CCBA-11d2-9DCF-00500411582F}
|
|
DEFINE_GUID(IID_IA3d4, 0xe4c40280, 0xccba, 0x11d2, 0x9d, 0xcf, 0x0, 0x50, 0x4, 0x11, 0x58, 0x2f);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3d4
|
|
|
|
DECLARE_INTERFACE_(IA3d4, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3d Methods.
|
|
STDMETHOD(SetOutputMode)(THIS_ DWORD, DWORD, DWORD) PURE;
|
|
STDMETHOD(GetOutputMode)(THIS_ LPDWORD, LPDWORD, LPDWORD) PURE;
|
|
STDMETHOD(SetResourceManagerMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetResourceManagerMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetHFAbsorbFactor)(THIS_ FLOAT) PURE;
|
|
STDMETHOD(GetHFAbsorbFactor)(THIS_ FLOAT *) PURE;
|
|
|
|
// IA3d2 Methods.
|
|
STDMETHOD(RegisterVersion)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetSoftwareCaps)(THIS_ LPA3DCAPS_SOFTWARE) PURE;
|
|
STDMETHOD(GetHardwareCaps)(THIS_ LPA3DCAPS_HARDWARE) PURE;
|
|
|
|
// IA3d3 Methods.
|
|
STDMETHOD(Clear)(THIS) PURE;
|
|
STDMETHOD(Flush)(THIS) PURE;
|
|
STDMETHOD(Compat)(THIS_ DWORD, DWORD) PURE;
|
|
STDMETHOD(Init)(THIS_ LPGUID, DWORD, DWORD) PURE;
|
|
STDMETHOD(IsFeatureAvailable)(THIS_ DWORD) PURE;
|
|
STDMETHOD(NewSource)(THIS_ DWORD, LPA3DSOURCE *) PURE;
|
|
STDMETHOD(DuplicateSource)(THIS_ LPA3DSOURCE, LPA3DSOURCE *) PURE;
|
|
STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE;
|
|
STDMETHOD(GetCooperativeLevel)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetMaxReflectionDelayTime)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetMaxReflectionDelayTime)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetCoordinateSystem)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetCoordinateSystem)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetOutputGain)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetOutputGain)(THIS_ LPA3DVAL) PURE;
|
|
|
|
// IA3d4 Methods
|
|
STDMETHOD(SetNumFallbackSources)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetNumFallbackSources)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetRMPriorityBias)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetRMPriorityBias)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(DisableViewer)(THIS) PURE;
|
|
STDMETHOD(SetUnitsPerMeter)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetUnitsPerMeter)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetDopplerScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetDopplerScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetDistanceModelScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetDistanceModelScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetEq)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetEq)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(Shutdown)(THIS) PURE;
|
|
STDMETHOD(RegisterApp)(THIS_ REFIID) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d4_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3d4_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3d4_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3d4_SetOutputMode(p, a, b, c) (p)->lpVtbl->SetOutputMode(p, a, b, c)
|
|
#define IA3d4_GetOutputMode(p, a, b, c) (p)->lpVtbl->GetOutputMode(p, a, b, c)
|
|
#define IA3d4_SetResourceManagerMode(p, a) (p)->lpVtbl->SetResourceManagerMode(p, a)
|
|
#define IA3d4_GetResourceManagerMode(p, a) (p)->lpVtbl->GetResourceManagerMode(p, a)
|
|
#define IA3d4_SetHFAbsorbFactor(p, a) (p)->lpVtbl->SetHFAbsorbFactor(p, a)
|
|
#define IA3d4_GetHFAbsorbFactor(p, a) (p)->lpVtbl->GetHFAbsorbFactor(p, a)
|
|
#define IA3d4_RegisterVersion(p, a) (p)->lpVtbl->RegisterVersion(p, a)
|
|
#define IA3d4_GetSoftwareCaps(p, a) (p)->lpVtbl->GetSoftwareCaps(p, a)
|
|
#define IA3d4_GetHardwareCaps(p, a) (p)->lpVtbl->GetHardwareCaps(p, a)
|
|
#define IA3d4_Clear(p) (p)->lpVtbl->Clear(p)
|
|
#define IA3d4_Flush(p) (p)->lpVtbl->Flush(p)
|
|
#define IA3d4_Compat(p, a, b) (p)->lpVtbl->Compat(p, a, b)
|
|
#define IA3d4_Init(p, a, b, c) (p)->lpVtbl->Init(p, a, b, c)
|
|
#define IA3d4_IsFeatureAvailable(p, a) (p)->lpVtbl->IsFeatureAvailable(p, a)
|
|
#define IA3d4_NewSource(p, a, b) (p)->lpVtbl->NewSource(p, a, b)
|
|
#define IA3d4_DuplicateSource(p, a, b) (p)->lpVtbl->DuplicateSource(p, a, b)
|
|
#define IA3d4_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b)
|
|
#define IA3d4_GetCooperativeLevel(p, a) (p)->lpVtbl->GetCooperativeLevel(p, a)
|
|
#define IA3d4_SetMaxReflectionDelayTime(p, a) (p)->lpVtbl->SetMaxReflectionDelayTime(p, a)
|
|
#define IA3d4_GetMaxReflectionDelayTime(p, a) (p)->lpVtbl->GetMaxReflectionDelayTime(p, a)
|
|
#define IA3d4_SetCoordinateSystem(p, a) (p)->lpVtbl->SetCoordinateSystem(p, a)
|
|
#define IA3d4_GetCoordinateSystem(p, a) (p)->lpVtbl->GetCoordinateSystem(p, a)
|
|
#define IA3d4_SetOutputGain(p, a) (p)->lpVtbl->SetOutputGain(p, a)
|
|
#define IA3d4_GetOutputGain(p, a) (p)->lpVtbl->GetOutputGain(p, a)
|
|
#define IA3d4_SetNumFallbackSources(p, a) (p)->lpVtbl->SetNumFallbackSources(p, a)
|
|
#define IA3d4_GetNumFallbackSources(p, a) (p)->lpVtbl->GetNumFallbackSources(p, a)
|
|
#define IA3d4_SetRMPriorityBias(p, a) (p)->lpVtbl->SetRMPriorityBias(p, a)
|
|
#define IA3d4_GetRMPriorityBias(p, a) (p)->lpVtbl->GetRMPriorityBias(p, a)
|
|
#define IA3d4_DisableViewer(p) (p)->lpVtbl->DisableViewer(p)
|
|
#define IA3d4_SetUnitsPerMeter(p, a) (p)->lpVtbl->SetUnitsPerMeter(p, a)
|
|
#define IA3d4_GetUnitsPerMeter(p, a) (p)->lpVtbl->GetUnitsPerMeter(p, a)
|
|
#define IA3d4_SetDopplerScale(p, a) (p)->lpVtbl->SetDopplerScale(p, a)
|
|
#define IA3d4_GetDopplerScale(p, a) (p)->lpVtbl->GetDopplerScale(p, a)
|
|
#define IA3d4_SetDistanceModelScale(p, a) (p)->lpVtbl->SetDistanceModelScale(p, a)
|
|
#define IA3d4_GetDistanceModelScale(p, a) (p)->lpVtbl->GetDistanceModelScale(p, a)
|
|
#define IA3d4_SetEq(p, a) (p)->lpVtbl->SetEq(p, a)
|
|
#define IA3d4_GetEq(p, a) (p)->lpVtbl->GetEq(p, a)
|
|
#define IA3d4_Shutdown(p) (p)->lpVtbl->Shutdown(p)
|
|
#define IA3d4_RegisterApp(p, a) (p)->lpVtbl->RegisterApp(p, a)
|
|
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3d4_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3d4_AddRef(p) (p)->AddRef()
|
|
#define IA3d4_Release(p) (p)->Release()
|
|
#define IA3d4_SetOutputMode(p, a, b, c) (p)->SetOutputMode(a, b, c)
|
|
#define IA3d4_GetOutputMode(p, a, b, c) (p)->GetOutputMode(a, b, c)
|
|
#define IA3d4_SetResourceManagerMode(p, a) (p)->SetResourceManagerMode(a)
|
|
#define IA3d4_GetResourceManagerMode(p, a) (p)->GetResourceManagerMode(a)
|
|
#define IA3d4_SetHFAbsorbFactor(p, a) (p)->SetHFAbsorbFactor(a)
|
|
#define IA3d4_GetHFAbsorbFactor(p, a) (p)->GetHFAbsorbFactor(a)
|
|
#define IA3d4_RegisterVersion(p, a) (p)->RegisterVersion(a)
|
|
#define IA3d4_GetSoftwareCaps(p, a) (p)->GetSoftwareCaps(a)
|
|
#define IA3d4_GetHardwareCaps(p, a) (p)->GetHardwareCaps(a)
|
|
#define IA3d4_Clear(p) (p)->Clear()
|
|
#define IA3d4_Flush(p) (p)->Flush()
|
|
#define IA3d4_Compat(p, a, b) (p)->Compat(a, b)
|
|
#define IA3d4_Init(p, a, b, c) (p)->Init(a, b, c)
|
|
#define IA3d4_IsFeatureAvailable(p, a) (p)->IsFeatureAvailable(a)
|
|
#define IA3d4_NewSource(p, a, b) (p)->NewSource(a, b)
|
|
#define IA3d4_DuplicateSource(p, a, b) (p)->DuplicateSource(a, b)
|
|
#define IA3d4_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b)
|
|
#define IA3d4_GetCooperativeLevel(p, a) (p)->GetCooperativeLevel(a)
|
|
#define IA3d4_SetMaxReflectionDelayTime(p, a) (p)->SetMaxReflectionDelayTime(a)
|
|
#define IA3d4_GetMaxReflectionDelayTime(p, a) (p)->GetMaxReflectionDelayTime(a)
|
|
#define IA3d4_SetCoordinateSystem(p, a) (p)->SetCoordinateSystem(a)
|
|
#define IA3d4_GetCoordinateSystem(p, a) (p)->GetCoordinateSystem(a)
|
|
#define IA3d4_SetOutputGain(p, a) (p)->SetOutputGain(a)
|
|
#define IA3d4_GetOutputGain(p, a) (p)->GetOutputGain(a)
|
|
#define IA3d4_SetNumFallbackSources(p, a) (p)->SetNumFallbackSources(a)
|
|
#define IA3d4_GetNumFallbackSources(p, a) (p)->GetNumFallbackSources(a)
|
|
#define IA3d4_SetRMPriorityBias(p, a) (p)->SetRMPriorityBias(a)
|
|
#define IA3d4_GetRMPriorityBias(p, a) (p)->GetRMPriorityBias(a)
|
|
#define IA3d4_DisableViewer(p) (p)->DisableViewer()
|
|
#define IA3d4_SetUnitsPerMeter(p, a) (p)->SetUnitsPerMeter(a)
|
|
#define IA3d4_GetUnitsPerMeter(p, a) (p)->GetUnitsPerMeter(a)
|
|
#define IA3d4_SetDopplerScale(p, a) (p)->SetDopplerScale(a)
|
|
#define IA3d4_GetDopplerScale(p, a) (p)->GetDopplerScale(a)
|
|
#define IA3d4_SetDistanceModelScale(p, a) (p)->SetDistanceModelScale(a)
|
|
#define IA3d4_GetDistanceModelScale(p, a) (p)->GetDistanceModelScale(a)
|
|
#define IA3d4_SetEq(p, a) (p)->SetEq(a)
|
|
#define IA3d4_GetEq(p, a) (p)->GetEq(a)
|
|
#define IA3d4_Shutdown(p) (p)->Shutdown()
|
|
#define IA3d4_RegisterApp(p, a) (p)->RegisterApp(a)
|
|
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3dGeom
|
|
//
|
|
// The low level geometry renderer.
|
|
//===================================================================
|
|
|
|
// {C398E561-D90B-11d1-90FB-006008A1F441}
|
|
DEFINE_GUID(IID_IA3dGeom, 0xc398e561, 0xd90b, 0x11d1, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3dGeom
|
|
|
|
DECLARE_INTERFACE_(IA3dGeom, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3dGeom Methods.
|
|
STDMETHOD(Enable)(THIS_ DWORD) PURE;
|
|
STDMETHOD(Disable)(THIS_ DWORD) PURE;
|
|
STDMETHOD_(BOOL, IsEnabled)(THIS_ DWORD) PURE;
|
|
STDMETHOD(SetOcclusionMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetOcclusionMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetReflectionMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetReflectionMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetReflectionGainScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetReflectionGainScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetReflectionDelayScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetReflectionDelayScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD_(ULONG, PushMatrix)(THIS) PURE;
|
|
STDMETHOD_(ULONG, PopMatrix)(THIS) PURE;
|
|
STDMETHOD(LoadIdentity)(THIS) PURE;
|
|
STDMETHOD(LoadMatrix)(THIS_ A3DMATRIX) PURE;
|
|
STDMETHOD(GetMatrix)(THIS_ A3DMATRIX) PURE;
|
|
STDMETHOD(MultMatrix)(THIS_ A3DMATRIX) PURE;
|
|
STDMETHOD(Translate3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(Translate3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(Rotate3f)(THIS_ A3DVAL, A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(Rotate3fv)(THIS_ A3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(Scale3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(Scale3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(Begin)(THIS_ DWORD) PURE;
|
|
STDMETHOD(End)(THIS) PURE;
|
|
STDMETHOD(Vertex3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(Vertex3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(Normal3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(Normal3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(Tag)(THIS_ DWORD) PURE;
|
|
STDMETHOD(SetOpeningFactorf)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(SetOpeningFactorfv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(NewMaterial)(THIS_ LPA3DMATERIAL *) PURE;
|
|
STDMETHOD(BindMaterial)(THIS_ LPA3DMATERIAL) PURE;
|
|
STDMETHOD(NewList)(THIS_ LPA3DLIST *) PURE;
|
|
STDMETHOD(BindListener)(THIS) PURE;
|
|
STDMETHOD(BindSource)(THIS_ LPA3DSOURCE) PURE;
|
|
STDMETHOD(NewEnvironment)(THIS_ LPA3DENVIRONMENT *) PURE;
|
|
STDMETHOD(BindEnvironment)(THIS_ LPA3DENVIRONMENT) PURE;
|
|
STDMETHOD(SetRenderMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetRenderMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetPolygonBloatFactor)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetPolygonBloatFactor)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetReflectionUpdateInterval)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetReflectionUpdateInterval)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetOcclusionUpdateInterval)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetOcclusionUpdateInterval)(THIS_ LPDWORD) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dGeom_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3dGeom_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3dGeom_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3dGeom_Enable(p, a) (p)->lpVtbl->Enable(p, a)
|
|
#define IA3dGeom_Disable(p, a) (p)->lpVtbl->Disable(p, a)
|
|
#define IA3dGeom_IsEnabled(p, a) (p)->lpVtbl->IsEnabled(p, a)
|
|
#define IA3dGeom_SetOcclusionMode(p, a) (p)->lpVtbl->SetOcclusionMode(p, a)
|
|
#define IA3dGeom_GetOcclusionMode(p, a) (p)->lpVtbl->GetOcclusionMode(p, a)
|
|
#define IA3dGeom_SetReflectionMode(p, a) (p)->lpVtbl->SetReflectionMode(p, a)
|
|
#define IA3dGeom_GetReflectionMode(p, a) (p)->lpVtbl->GetReflectionMode(p, a)
|
|
#define IA3dGeom_SetReflectionGainScale(p, a) (p)->lpVtbl->SetReflectionGainScale(p, a)
|
|
#define IA3dGeom_GetReflectionGainScale(p, a) (p)->lpVtbl->GetReflectionGainScale(p, a)
|
|
#define IA3dGeom_SetReflectionDelayScale(p, a) (p)->lpVtbl->SetReflectionDelayScale(p, a)
|
|
#define IA3dGeom_GetReflectionDelayScale(p, a) (p)->lpVtbl->GetReflectionDelayScale(p, a)
|
|
#define IA3dGeom_PushMatrix(p) (p)->lpVtbl->PushMatrix(p)
|
|
#define IA3dGeom_PopMatrix(p) (p)->lpVtbl->PopMatrix(p)
|
|
#define IA3dGeom_LoadIdentity(p) (p)->lpVtbl->LoadIdentity(p)
|
|
#define IA3dGeom_LoadMatrix(p, a) (p)->lpVtbl->LoadMatrix(p, a)
|
|
#define IA3dGeom_GetMatrix(p, a) (p)->lpVtbl->GetMatrix(p, a)
|
|
#define IA3dGeom_MultMatrix(p, a) (p)->lpVtbl->MultMatrix(p, a)
|
|
#define IA3dGeom_Translate3f(p, a, b, c) (p)->lpVtbl->Translate3f(p, a, b, c)
|
|
#define IA3dGeom_Translate3fv(p, a) (p)->lpVtbl->Translate3fv(p, a)
|
|
#define IA3dGeom_Rotate3f(p, a, b, c, d) (p)->lpVtbl->Rotate3f(p, a, b, c, d)
|
|
#define IA3dGeom_Rotate3fv(p, a, b) (p)->lpVtbl->Rotate3fv(p, a, b)
|
|
#define IA3dGeom_Scale3f(p, a, b, c) (p)->lpVtbl->Scale3f(p, a, b, c)
|
|
#define IA3dGeom_Scale3fv(p, a) (p)->lpVtbl->Scale3fv(p, a)
|
|
#define IA3dGeom_Begin(p, a) (p)->lpVtbl->Begin(p, a)
|
|
#define IA3dGeom_End(p) (p)->lpVtbl->End(p)
|
|
#define IA3dGeom_Vertex3f(p, a, b, c) (p)->lpVtbl->Vertex3f(p, a, b, c)
|
|
#define IA3dGeom_Vertex3fv(p, a) (p)->lpVtbl->Vertex3fv(p, a)
|
|
#define IA3dGeom_Normal3f(p, a, b, c) (p)->lpVtbl->Normal3f(p, a, b, c)
|
|
#define IA3dGeom_Normal3fv(p, a) (p)->lpVtbl->Normal3fv(p, a)
|
|
#define IA3dGeom_Tag(p, a) (p)->lpVtbl->Tag(p, a)
|
|
#define IA3dGeom_SetOpeningFactorf(p, a) (p)->lpVtbl->SetOpeningFactorf(p, a)
|
|
#define IA3dGeom_SetOpeningFactorfv(p, a) (p)->lpVtbl->SetOpeningFactorfv(p, a)
|
|
#define IA3dGeom_NewMaterial(p, a) (p)->lpVtbl->NewMaterial(p, a)
|
|
#define IA3dGeom_BindMaterial(p, a) (p)->lpVtbl->BindMaterial(p, a)
|
|
#define IA3dGeom_NewList(p, a) (p)->lpVtbl->NewList(p, a)
|
|
#define IA3dGeom_BindListener(p) (p)->lpVtbl->BindListener(p)
|
|
#define IA3dGeom_BindSource(p, a) (p)->lpVtbl->BindSource(p, a)
|
|
#define IA3dGeom_NewEnvironment(p, a) (p)->lpVtbl->NewEnvironment(p, a)
|
|
#define IA3dGeom_BindEnvironment(p, a) (p)->lpVtbl->BindEnvironment(p, a)
|
|
#define IA3dGeom_SetRenderMode(p, a) (p)->lpVtbl->SetRenderMode(p, a)
|
|
#define IA3dGeom_GetRenderMode(p, a) (p)->lpVtbl->GetRenderMode(p, a)
|
|
#define IA3dGeom_SetPolygonBloatFactor(p, a) (p)->lpVtbl->SetPolygonBloatFactor(p, a)
|
|
#define IA3dGeom_GetPolygonBloatFactor(p, a) (p)->lpVtbl->GetPolygonBloatFactor(p, a)
|
|
#define IA3dGeom_SetReflectionUpdateInterval(p, a) (p)->lpVtbl->SetReflectionUpdateInterval(p, a)
|
|
#define IA3dGeom_GetReflectionUpdateInterval(p, a) (p)->lpVtbl->GetReflectionUpdateInterval(p, a)
|
|
#define IA3dGeom_SetOcclusionUpdateInterval(p, a) (p)->lpVtbl->SetOcclusionUpdateInterval(p, a)
|
|
#define IA3dGeom_GetOcclusionUpdateInterval(p, a) (p)->lpVtbl->GetOcclusionUpdateInterval(p, a)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dGeom_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3dGeom_AddRef(p) (p)->AddRef()
|
|
#define IA3dGeom_Release(p) (p)->Release()
|
|
#define IA3dGeom_Enable(p, a) (p)->Enable(a)
|
|
#define IA3dGeom_Disable(p, a) (p)->Disable(a)
|
|
#define IA3dGeom_IsEnabled(p, a) (p)->IsEnabled(a)
|
|
#define IA3dGeom_SetOcclusionMode(p, a) (p)->SetOcclusionMode(a)
|
|
#define IA3dGeom_GetOcclusionMode(p, a) (p)->GetOcclusionMode(a)
|
|
#define IA3dGeom_SetReflectionMode(p, a) (p)->SetReflectionMode(a)
|
|
#define IA3dGeom_GetReflectionMode(p, a) (p)->GetReflectionMode(a)
|
|
#define IA3dGeom_SetReflectionGainScale(p, a) (p)->SetReflectionGainScale(a)
|
|
#define IA3dGeom_GetReflectionGainScale(p, a) (p)->GetReflectionGainScale(a)
|
|
#define IA3dGeom_SetReflectionDelayScale(p, a) (p)->SetReflectionDelayScale(a)
|
|
#define IA3dGeom_GetReflectionDelayScale(p, a) (p)->GetReflectionDelayScale(a)
|
|
#define IA3dGeom_PushMatrix(p) (p)->PushMatrix()
|
|
#define IA3dGeom_PopMatrix(p) (p)->PopMatrix()
|
|
#define IA3dGeom_LoadIdentity(p) (p)->LoadIdentity()
|
|
#define IA3dGeom_LoadMatrix(p, a) (p)->LoadMatrix(a)
|
|
#define IA3dGeom_GetMatrix(p, a) (p)->GetMatrix(a)
|
|
#define IA3dGeom_MultMatrix(p, a) (p)->MultMatrix(a)
|
|
#define IA3dGeom_Translate3f(p, a, b, c) (p)->Translate3f(a, b, c)
|
|
#define IA3dGeom_Translate3fv(p, a) (p)->Translate3fv(a)
|
|
#define IA3dGeom_Rotate3f(p, a, b, c, d) (p)->Rotate3f(a, b, c, d)
|
|
#define IA3dGeom_Rotate3fv(p, a, b) (p)->Rotate3fv(a, b)
|
|
#define IA3dGeom_Scale3f(p, a, b, c) (p)->Scale3f(a, b, c)
|
|
#define IA3dGeom_Scale3fv(p, a) (p)->Scale3fv(a)
|
|
#define IA3dGeom_Begin(p, a) (p)->Begin(a)
|
|
#define IA3dGeom_End(p) (p)->End()
|
|
#define IA3dGeom_Vertex3f(p, a, b, c) (p)->Vertex3f(a, b, c)
|
|
#define IA3dGeom_Vertex3fv(p, a) (p)->Vertex3fv(a)
|
|
#define IA3dGeom_Normal3f(p, a, b, c) (p)->Normal3f(a, b, c)
|
|
#define IA3dGeom_Normal3fv(p, a) (p)->Normal3fv(a)
|
|
#define IA3dGeom_Tag(p, a) (p)->Tag(a)
|
|
#define IA3dGeom_SetOpeningFactorf(p, a) (p)->SetOpeningFactorf(p, a)
|
|
#define IA3dGeom_SetOpeningFactorfv(p, a) (p)->SetOpeningFactorfv(p, a)
|
|
#define IA3dGeom_NewMaterial(p, a) (p)->NewMaterial(a)
|
|
#define IA3dGeom_BindMaterial(p, a) (p)->BindMaterial(a)
|
|
#define IA3dGeom_NewList(p, a) (p)->NewList(a)
|
|
#define IA3dGeom_BindListener(p) (p)->BindListener()
|
|
#define IA3dGeom_BindSource(p, a) (p)->BindSource(a)
|
|
#define IA3dGeom_NewEnvironment(p, a) (p)->NewEnvironment(a)
|
|
#define IA3dGeom_BindEnvironment(p, a) (p)->BindEnvironment(a)
|
|
#define IA3dGeom_SetRenderMode(p, a) (p)->SetRenderMode(a)
|
|
#define IA3dGeom_GetRenderMode(p, a) (p)->GetRenderMode(a)
|
|
#define IA3dGeom_SetPolygonBloatFactor(p, a) (p)->SetPolygonBloatFactor(a)
|
|
#define IA3dGeom_GetPolygonBloatFactor(p, a) (p)->GetPolygonBloatFactor(a)
|
|
#define IA3dGeom_SetReflectionUpdateInterval(p, a) (p)->SetReflectionUpdateInterval(a)
|
|
#define IA3dGeom_GetReflectionUpdateInterval(p, a) (p)->GetReflectionUpdateInterval(a)
|
|
#define IA3dGeom_SetOcclusionUpdateInterval(p, a) (p)->SetOcclusionUpdateInterval(a)
|
|
#define IA3dGeom_GetOcclusionUpdateInterval(p, a) (p)->GetOcclusionUpdateInterval(a)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3dSource
|
|
//
|
|
// A sound source.
|
|
//===================================================================
|
|
|
|
// {C398E562-D90B-11d1-90FB-006008A1F441}
|
|
DEFINE_GUID(IID_IA3dSource, 0xc398e562, 0xd90b, 0x11d1, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3dSource
|
|
|
|
DECLARE_INTERFACE_(IA3dSource, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3dSource Methods.
|
|
STDMETHOD(LoadWaveFile)(THIS_ LPSTR) PURE;
|
|
STDMETHOD(LoadWaveData)(THIS_ LPVOID, DWORD) PURE;
|
|
STDMETHOD(AllocateWaveData)(THIS_ INT) PURE;
|
|
STDMETHOD(FreeWaveData)(THIS) PURE;
|
|
STDMETHOD(SetWaveFormat)(THIS_ LPVOID) PURE;
|
|
STDMETHOD(GetWaveFormat)(THIS_ LPVOID) PURE;
|
|
STDMETHOD(GetWaveSize)(THIS) PURE;
|
|
STDMETHOD(GetType)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(Lock)(THIS_ DWORD, DWORD, LPVOID *, LPDWORD, LPVOID *, LPDWORD, DWORD) PURE;
|
|
STDMETHOD(Unlock)(THIS_ LPVOID, DWORD, LPVOID, DWORD) PURE;
|
|
STDMETHOD(Play)(THIS_ INT) PURE;
|
|
STDMETHOD(Stop)(THIS) PURE;
|
|
STDMETHOD(Rewind)(THIS) PURE;
|
|
STDMETHOD(SetWaveTime)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetWaveTime)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetWavePosition)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetWavePosition)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetPosition3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetPosition3f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetPosition3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetPosition3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientationAngles3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetOrientationAngles3f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientationAngles3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetOrientationAngles3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientation6f)(THIS_ A3DVAL, A3DVAL, A3DVAL, A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetOrientation6f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL, LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientation6fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetOrientation6fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetVelocity3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetVelocity3f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetVelocity3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetVelocity3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetCone)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetCone)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetMinMaxDistance)(THIS_ A3DVAL, A3DVAL, DWORD) PURE;
|
|
STDMETHOD(GetMinMaxDistance)(THIS_ LPA3DVAL, LPA3DVAL, LPDWORD) PURE;
|
|
STDMETHOD(SetGain)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetGain)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetPitch)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetPitch)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetDopplerScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetDopplerScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetDistanceModelScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetDistanceModelScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetEq)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetEq)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetPriority)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetPriority)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetRenderMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetRenderMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(GetAudibility)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetOcclusionFactor)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetStatus)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetPanValues)(THIS_ DWORD, LPA3DVAL) PURE;
|
|
STDMETHOD(GetPanValues)(THIS_ DWORD, LPA3DVAL) PURE;
|
|
STDMETHOD(SetWaveEvent)(THIS_ DWORD, HANDLE) PURE;
|
|
STDMETHOD(ClearWaveEvents)(THIS) PURE;
|
|
STDMETHOD(SetTransformMode)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetTransformMode)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetReflectionDelayScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetReflectionDelayScale)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetReflectionGainScale)(THIS_ A3DVAL) PURE;
|
|
STDMETHOD(GetReflectionGainScale)(THIS_ LPA3DVAL) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dSource_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3dSource_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3dSource_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3dSource_LoadWaveFile(p, a) (p)->lpVtbl->LoadWaveFile(p, a)
|
|
#define IA3dSource_LoadWaveData(p, a, b) (p)->lpVtbl->LoadWaveData(p, a, b)
|
|
#define IA3dSource_AllocateWaveData(p, a) (p)->lpVtbl->AllocateWaveData(p, a)
|
|
#define IA3dSource_FreeWaveData(p) (p)->lpVtbl->FreeWaveData(p)
|
|
#define IA3dSource_SetWaveFormat(p, a) (p)->lpVtbl->SetWaveFormat(p, a)
|
|
#define IA3dSource_GetWaveFormat(p, a) (p)->lpVtbl->GetWaveFormat(p, a)
|
|
#define IA3dSource_GetWaveSize(p) (p)->lpVtbl->GetWaveSize(p)
|
|
#define IA3dSource_GetType(p, a) (p)->lpVtbl->GetType(p, a)
|
|
#define IA3dSource_Lock(p, a, b, c, d, e, f, g) (p)->lpVtbl->Lock(p, a, b, c, d, e, f, g)
|
|
#define IA3dSource_Unlock(p, a, b, c, d) (p)->lpVtbl->Unlock(p, a, b, c, d)
|
|
#define IA3dSource_Play(p, a) (p)->lpVtbl->Play(p, a)
|
|
#define IA3dSource_Stop(p) (p)->lpVtbl->Stop(p)
|
|
#define IA3dSource_Rewind(p) (p)->lpVtbl->Rewind(p)
|
|
#define IA3dSource_SetWaveTime(p, a) (p)->lpVtbl->SetWaveTime(p, a)
|
|
#define IA3dSource_GetWaveTime(p, a) (p)->lpVtbl->GetWaveTime(p, a)
|
|
#define IA3dSource_SetWavePosition(p, a) (p)->lpVtbl->SetWavePosition(p, a)
|
|
#define IA3dSource_GetWavePosition(p, a) (p)->lpVtbl->GetWavePosition(p, a)
|
|
#define IA3dSource_SetPosition3f(p, a, b, c) (p)->lpVtbl->SetPosition3f(p, a, b, c)
|
|
#define IA3dSource_GetPosition3f(p, a, b, c) (p)->lpVtbl->GetPosition3f(p, a, b, c)
|
|
#define IA3dSource_SetPosition3fv(p, a) (p)->lpVtbl->SetPosition3fv(p, a)
|
|
#define IA3dSource_GetPosition3fv(p, a) (p)->lpVtbl->GetPosition3fv(p, a)
|
|
#define IA3dSource_SetOrientationAngles3f(p, a, b, c) (p)->lpVtbl->SetOrientationAngles3f(p, a, b, c)
|
|
#define IA3dSource_GetOrientationAngles3f(p, a, b, c) (p)->lpVtbl->GetOrientationAngles3f(p, a, b, c)
|
|
#define IA3dSource_SetOrientationAngles3fv(p, a) (p)->lpVtbl->SetOrientationAngles3fv(p, a)
|
|
#define IA3dSource_GetOrientationAngles3fv(p, a) (p)->lpVtbl->GetOrientationAngles3fv(p, a)
|
|
#define IA3dSource_SetOrientation6f(p, a, b, c, d, e, f) (p)->lpVtbl->SetOrientation6f(p, a, b, c, d, e, f)
|
|
#define IA3dSource_GetOrientation6f(p, a, b, c, d, e, f) (p)->lpVtbl->GetOrientation6f(p, a, b, c, d, e, f)
|
|
#define IA3dSource_SetOrientation6fv(p, a) (p)->lpVtbl->SetOrientation6fv(p, a)
|
|
#define IA3dSource_GetOrientation6fv(p, a) (p)->lpVtbl->GetOrientation6fv(p, a)
|
|
#define IA3dSource_SetVelocity3f(p, a, b, c) (p)->lpVtbl->SetVelocity3f(p, a, b, c)
|
|
#define IA3dSource_GetVelocity3f(p, a, b, c) (p)->lpVtbl->GetVelocity3f(p, a, b, c)
|
|
#define IA3dSource_SetVelocity3fv(p, a) (p)->lpVtbl->SetVelocity3fv(p, a)
|
|
#define IA3dSource_GetVelocity3fv(p, a) (p)->lpVtbl->GetVelocity3fv(p, a)
|
|
#define IA3dSource_SetCone(p, a, b, c) (p)->lpVtbl->SetCone(p, a, b, c)
|
|
#define IA3dSource_GetCone(p, a, b, c) (p)->lpVtbl->GetCone(p, a, b, c)
|
|
#define IA3dSource_SetMinMaxDistance(p, a, b, c) (p)->lpVtbl->SetMinMaxDistance(p, a, b, c)
|
|
#define IA3dSource_GetMinMaxDistance(p, a, b, c) (p)->lpVtbl->GetMinMaxDistance(p, a, b, c)
|
|
#define IA3dSource_SetGain(p, a) (p)->lpVtbl->SetGain(p, a)
|
|
#define IA3dSource_GetGain(p, a) (p)->lpVtbl->GetGain(p, a)
|
|
#define IA3dSource_SetPitch(p, a) (p)->lpVtbl->SetPitch(p, a)
|
|
#define IA3dSource_GetPitch(p, a) (p)->lpVtbl->GetPitch(p, a)
|
|
#define IA3dSource_SetDopplerScale(p, a) (p)->lpVtbl->SetDopplerScale(p, a)
|
|
#define IA3dSource_GetDopplerScale(p, a) (p)->lpVtbl->GetDopplerScale(p, a)
|
|
#define IA3dSource_SetDistanceModelScale(p, a) (p)->lpVtbl->SetDistanceModelScale(p, a)
|
|
#define IA3dSource_GetDistanceModelScale(p, a) (p)->lpVtbl->GetDistanceModelScale(p, a)
|
|
#define IA3dSource_SetEq(p, a) (p)->lpVtbl->SetEq(p, a)
|
|
#define IA3dSource_GetEq(p, a) (p)->lpVtbl->GetEq(p, a)
|
|
#define IA3dSource_SetPriority(p, a) (p)->lpVtbl->SetPriority(p, a)
|
|
#define IA3dSource_GetPriority(p, a) (p)->lpVtbl->GetPriority(p, a)
|
|
#define IA3dSource_SetRenderMode(p, a) (p)->lpVtbl->SetRenderMode(p, a)
|
|
#define IA3dSource_GetRenderMode(p, a) (p)->lpVtbl->GetRenderMode(p, a)
|
|
#define IA3dSource_GetAudibility(p, a) (p)->lpVtbl->GetAudibility(p, a)
|
|
#define IA3dSource_GetOcclusionFactor(p, a) (p)->lpVtbl->GetOcclusionFactor(p, a)
|
|
#define IA3dSource_GetStatus(p, a) (p)->lpVtbl->GetStatus(p, a)
|
|
#define IA3dSource_SetPanValues(p, a, b) (p)->lpVtbl->SetPanValues(p, a, b)
|
|
#define IA3dSource_GetPanValues(p, a, b) (p)->lpVtbl->GetPanValues(p, a, b)
|
|
#define IA3dSource_SetWaveEvent(p, a, b) (p)->lpVtbl->SetWaveEvent(p, a, b)
|
|
#define IA3dSource_ClearWaveEvents(p) (p)->lpVtbl->ClearWaveEvents(p)
|
|
#define IA3dSource_SetTransformMode(p, a) (p)->lpVtbl->SetTransformMode(p, a)
|
|
#define IA3dSource_GetTransformMode(p, a) (p)->lpVtbl->GetTransformMode(p, a)
|
|
#define IA3dSource_SetReflectionDelayScale(p, a) (p)->lpVtbl->SetReflectionDelayScale(p, a)
|
|
#define IA3dSource_GetReflectionDelayScale(p, a) (p)->lpVtbl->GetReflectionDelayScale(p, a)
|
|
#define IA3dSource_SetReflectionGainScale(p, a) (p)->lpVtbl->SetReflectionGainScale(p, a)
|
|
#define IA3dSource_GetReflectionGainScale(p, a) (p)->lpVtbl->GetReflectionGainScale(p, a)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dSource_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3dSource_AddRef(p) (p)->AddRef()
|
|
#define IA3dSource_Release(p) (p)->Release()
|
|
#define IA3dSource_LoadWaveFile(p, a) (p)->LoadWaveFile(a)
|
|
#define IA3dSource_LoadWaveData(p, a, b) (p)->LoadWaveData(a, b)
|
|
#define IA3dSource_AllocateWaveData(p, a) (p)->AllocateWaveData(a)
|
|
#define IA3dSource_FreeWaveData(p) (p)->FreeWaveData()
|
|
#define IA3dSource_SetWaveFormat(p, a) (p)->SetWaveFormat(a)
|
|
#define IA3dSource_GetWaveFormat(p, a) (p)->GetWaveFormat(a)
|
|
#define IA3dSource_GetWaveSize(p) (p)->GetWaveSize()
|
|
#define IA3dSource_GetType(p, a) (p)->GetType(a)
|
|
#define IA3dSource_Lock(p, a, b, c, d, e, f, g) (p)->Lock(a, b, c, d, e, f, g)
|
|
#define IA3dSource_Unlock(p, a, b, c, d) (p)->Unlock(a, b, c, d)
|
|
#define IA3dSource_Play(p, a) (p)->Play(a)
|
|
#define IA3dSource_Stop(p) (p)->Stop()
|
|
#define IA3dSource_Rewind(p) (p)->Rewind()
|
|
#define IA3dSource_SetWaveTime(p, a) (p)->SetWaveTime(a)
|
|
#define IA3dSource_GetWaveTime(p, a) (p)->GetWaveTime(a)
|
|
#define IA3dSource_SetWavePosition(p, a) (p)->SetWavePosition(a)
|
|
#define IA3dSource_GetWavePosition(p, a) (p)->GetWavePosition(a)
|
|
#define IA3dSource_SetPosition3f(p, a, b, c) (p)->SetPosition3f(a, b, c)
|
|
#define IA3dSource_GetPosition3f(p, a, b, c) (p)->GetPosition3f(a, b, c)
|
|
#define IA3dSource_SetPosition3fv(p, a) (p)->SetPosition3fv(a)
|
|
#define IA3dSource_GetPosition3fv(p, a) (p)->GetPosition3fv(a)
|
|
#define IA3dSource_SetOrientationAngles3f(p, a, b, c) (p)->SetOrientationAngles3f(a, b, c)
|
|
#define IA3dSource_GetOrientationAngles3f(p, a, b, c) (p)->GetOrientationAngles3f(a, b, c)
|
|
#define IA3dSource_SetOrientationAngles3fv(p, a) (p)->SetOrientationAngles3fv(a)
|
|
#define IA3dSource_GetOrientationAngles3fv(p, a) (p)->GetOrientationAngles3fv(a)
|
|
#define IA3dSource_SetOrientation6f(p, a, b, c, d, e, f) (p)->SetOrientation6f(a, b, c, d, e, f)
|
|
#define IA3dSource_GetOrientation6f(p, a, b, c, d, e, f) (p)->GetOrientation6f(a, b, c, d, e, f)
|
|
#define IA3dSource_SetOrientation6fv(p, a) (p)->SetOrientation6fv(a)
|
|
#define IA3dSource_GetOrientation6fv(p, a) (p)->GetOrientation6fv(a)
|
|
#define IA3dSource_SetVelocity3f(p, a, b, c) (p)->SetVelocity3f(a, b, c)
|
|
#define IA3dSource_GetVelocity3f(p, a, b, c) (p)->GetVelocity3f(a, b, c)
|
|
#define IA3dSource_SetVelocity3fv(p, a) (p)->SetVelocity3fv(a)
|
|
#define IA3dSource_GetVelocity3fv(p, a) (p)->GetVelocity3fv(a)
|
|
#define IA3dSource_SetCone(p, a, b, c) (p)->SetCone(a, b, c)
|
|
#define IA3dSource_GetCone(p, a, b, c) (p)->GetCone(a, b, c)
|
|
#define IA3dSource_SetMinMaxDistance(p, a, b, c) (p)->SetMinMaxDistance(a, b, c)
|
|
#define IA3dSource_GetMinMaxDistance(p, a, b, c) (p)->GetMinMaxDistance(a, b, c)
|
|
#define IA3dSource_SetGain(p, a) (p)->SetGain(a)
|
|
#define IA3dSource_GetGain(p, a) (p)->GetGain(a)
|
|
#define IA3dSource_SetPitch(p, a) (p)->SetPitch(a)
|
|
#define IA3dSource_GetPitch(p, a) (p)->GetPitch(a)
|
|
#define IA3dSource_SetDopplerScale(p, a) (p)->SetDopplerScale(a)
|
|
#define IA3dSource_GetDopplerScale(p, a) (p)->GetDopplerScale(a)
|
|
#define IA3dSource_SetDistanceModelScale(p, a) (p)->SetDistanceModelScale(a)
|
|
#define IA3dSource_GetDistanceModelScale(p, a) (p)->GetDistanceModelScale(a)
|
|
#define IA3dSource_SetEq(p, a) (p)->SetEq(a)
|
|
#define IA3dSource_GetEq(p, a) (p)->GetEq(a)
|
|
#define IA3dSource_SetPriority(p, a) (p)->SetPriority(a)
|
|
#define IA3dSource_GetPriority(p, a) (p)->GetPriority(a)
|
|
#define IA3dSource_SetRenderMode(p, a) (p)->SetRenderMode(a)
|
|
#define IA3dSource_GetRenderMode(p, a) (p)->GetRenderMode(a)
|
|
#define IA3dSource_GetAudibility(p, a) (p)->GetAudibility(a)
|
|
#define IA3dSource_GetOcclusionFactor(p, a) (p)->GetOcclusionFactor(a)
|
|
#define IA3dSource_GetStatus(p, a) (p)->GetStatus(a)
|
|
#define IA3dSource_SetPanValues(p, a, b) (p)->SetPanValues(a, b)
|
|
#define IA3dSource_GetPanValues(p, a, b) (p)->GetPanValues(a, b)
|
|
#define IA3dSource_SetWaveEvent(p, a, b) (p)->SetWaveEvent(a, b)
|
|
#define IA3dSource_ClearWaveEvents(p) (p)->ClearWaveEvents()
|
|
#define IA3dSource_SetTransformMode(p, a) (p)->SetTransformMode(a)
|
|
#define IA3dSource_GetTransformMode(p, a) (p)->GetTransformMode(a)
|
|
#define IA3dSource_SetReflectionDelayScale(p, a) (p)->SetReflectionDelayScale(a)
|
|
#define IA3dSource_GetReflectionDelayScale(p, a) (p)->GetReflectionDelayScale(a)
|
|
#define IA3dSource_SetReflectionGainScale(p, a) (p)->SetReflectionGainScale(a)
|
|
#define IA3dSource_GetReflectionGainScale(p, a) (p)->GetReflectionGainScale(a)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3dListener
|
|
//
|
|
// There is only one listener in A3D.
|
|
//===================================================================
|
|
|
|
// {C398E563-D90B-11d1-90FB-006008A1F441}
|
|
DEFINE_GUID(IID_IA3dListener, 0xc398e563, 0xd90b, 0x11d1, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3dListener
|
|
|
|
DECLARE_INTERFACE_(IA3dListener, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3dListener Methods.
|
|
STDMETHOD(SetPosition3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetPosition3f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetPosition3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetPosition3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientationAngles3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetOrientationAngles3f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientationAngles3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetOrientationAngles3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientation6f)(THIS_ A3DVAL, A3DVAL, A3DVAL, A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetOrientation6f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL, LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetOrientation6fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetOrientation6fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(SetVelocity3f)(THIS_ A3DVAL, A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetVelocity3f)(THIS_ LPA3DVAL, LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetVelocity3fv)(THIS_ LPA3DVAL) PURE;
|
|
STDMETHOD(GetVelocity3fv)(THIS_ LPA3DVAL) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dListener_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3dListener_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3dListener_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3dListener_SetPosition3f(p, a, b, c) (p)->lpVtbl->SetPosition3f(p, a, b, c)
|
|
#define IA3dListener_GetPosition3f(p, a, b, c) (p)->lpVtbl->GetPosition3f(p, a, b, c)
|
|
#define IA3dListener_SetPosition3fv(p, a) (p)->lpVtbl->SetPosition3fv(p, a)
|
|
#define IA3dListener_GetPosition3fv(p, a) (p)->lpVtbl->GetPosition3fv(p, a)
|
|
#define IA3dListener_SetOrientationAngles3f(p, a, b, c) (p)->lpVtbl->SetOrientationAngles3f(p, a, b, c)
|
|
#define IA3dListener_GetOrientationAngles3f(p, a, b, c) (p)->lpVtbl->GetOrientationAngles3f(p, a, b, c)
|
|
#define IA3dListener_SetOrientationAngles3fv(p, a) (p)->lpVtbl->SetOrientationAngles3fv(p, a)
|
|
#define IA3dListener_GetOrientationAngles3fv(p, a) (p)->lpVtbl->GetOrientationAngles3fv(p, a)
|
|
#define IA3dListener_SetOrientation6f(p, a, b, c, d, e, f) (p)->lpVtbl->SetOrientation6f(p, a, b, c, d, e, f)
|
|
#define IA3dListener_GetOrientation6f(p, a, b, c, d, e, f) (p)->lpVtbl->GetOrientation6f(p, a, b, c, d, e, f)
|
|
#define IA3dListener_SetOrientation6fv(p, a) (p)->lpVtbl->SetOrientation6fv(p, a)
|
|
#define IA3dListener_GetOrientation6fv(p, a) (p)->lpVtbl->GetOrientation6fv(p, a)
|
|
#define IA3dListener_SetVelocity3f(p, a, b, c) (p)->lpVtbl->SetVelocity3f(p, a, b, c)
|
|
#define IA3dListener_GetVelocity3f(p, a, b, c) (p)->lpVtbl->GetVelocity3f(p, a, b, c)
|
|
#define IA3dListener_SetVelocity3fv(p, a) (p)->lpVtbl->SetVelocity3fv(p, a)
|
|
#define IA3dListener_GetVelocity3fv(p, a) (p)->lpVtbl->GetVelocity3fv(p, a)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dListener_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3dListener_AddRef(p) (p)->AddRef()
|
|
#define IA3dListener_Release(p) (p)->Release()
|
|
#define IA3dListener_SetPosition3f(p, a, b, c) (p)->SetPosition3f(a, b, c)
|
|
#define IA3dListener_GetPosition3f(p, a, b, c) (p)->GetPosition3f(a, b, c)
|
|
#define IA3dListener_SetPosition3fv(p, a) (p)->SetPosition3fv(a)
|
|
#define IA3dListener_GetPosition3fv(p, a) (p)->GetPosition3fv(a)
|
|
#define IA3dListener_SetOrientationAngles3f(p, a, b, c) (p)->SetOrientationAngles3f(a, b, c)
|
|
#define IA3dListener_GetOrientationAngles3f(p, a, b, c) (p)->GetOrientationAngles3f(a, b, c)
|
|
#define IA3dListener_SetOrientationAngles3fv(p, a) (p)->SetOrientationAngles3fv(a)
|
|
#define IA3dListener_GetOrientationAngles3fv(p, a) (p)->GetOrientationAngles3fv(a)
|
|
#define IA3dListener_SetOrientation6f(p, a, b, c, d, e, f) (p)->SetOrientation6f(a, b, c, d, e, f)
|
|
#define IA3dListener_GetOrientation6f(p, a, b, c, d, e, f) (p)->GetOrientation6f(a, b, c, d, e, f)
|
|
#define IA3dListener_SetOrientation6fv(p, a) (p)->SetOrientation6fv(a)
|
|
#define IA3dListener_GetOrientation6fv(p, a) (p)->GetOrientation6fv(a)
|
|
#define IA3dListener_SetVelocity3f(p, a, b, c) (p)->SetVelocity3f(a, b, c)
|
|
#define IA3dListener_GetVelocity3f(p, a, b, c) (p)->GetVelocity3f(a, b, c)
|
|
#define IA3dListener_SetVelocity3fv(p, a) (p)->SetVelocity3fv(a)
|
|
#define IA3dListener_GetVelocity3fv(p, a) (p)->GetVelocity3fv(a)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3dList
|
|
//
|
|
// List of geometry and state data for IA3dGeom.
|
|
//===================================================================
|
|
|
|
// {C398E564-D90B-11d1-90FB-006008A1F441}
|
|
DEFINE_GUID(IID_IA3dList, 0xc398e564, 0xd90b, 0x11d1, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3dList
|
|
|
|
DECLARE_INTERFACE_(IA3dList, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3dList Methods.
|
|
STDMETHOD(Begin)(THIS) PURE;
|
|
STDMETHOD(End)(THIS) PURE;
|
|
STDMETHOD(Call)(THIS) PURE;
|
|
STDMETHOD(EnableBoundingVol)(THIS) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dList_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3dList_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3dList_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3dList_Begin(p) (p)->lpVtbl->Begin(p)
|
|
#define IA3dList_End(p) (p)->lpVtbl->End(p)
|
|
#define IA3dList_Call(p) (p)->lpVtbl->Call(p)
|
|
#define IA3dList_EnableBoundingVol(p) (p)->lpVtbl->EnableBoundingVol(p)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dList_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3dList_AddRef(p) (p)->AddRef()
|
|
#define IA3dList_Release(p) (p)->Release()
|
|
#define IA3dList_Begin(p) (p)->Begin()
|
|
#define IA3dList_End(p) (p)->End()
|
|
#define IA3dList_Call(p) (p)->Call()
|
|
#define IA3dList_EnableBoundingVol(p) (p)->EnableBoundingVol()
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// IA3dMaterial
|
|
//
|
|
// A material builder.
|
|
//===================================================================
|
|
|
|
// {C398E565-D90B-11d1-90FB-006008A1F441}
|
|
DEFINE_GUID(IID_IA3dMaterial, 0xc398e565, 0xd90b, 0x11d1, 0x90, 0xfb, 0x0, 0x60, 0x8, 0xa1, 0xf4, 0x41);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IA3dMaterial
|
|
|
|
DECLARE_INTERFACE_(IA3dMaterial, IUnknown) {
|
|
// IUnknown Methods.
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID FAR *) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IA3dMaterial Methods.
|
|
STDMETHOD(Load)(THIS_ LPSTR) PURE;
|
|
STDMETHOD(Save)(THIS_ LPSTR) PURE;
|
|
STDMETHOD(UnSerialize)(THIS_ LPVOID, UINT) PURE;
|
|
STDMETHOD(Serialize)(THIS_ LPVOID *, UINT *) PURE;
|
|
STDMETHOD(Duplicate)(THIS_ LPA3DMATERIAL *) PURE;
|
|
STDMETHOD(SetNameID)(THIS_ LPSTR) PURE;
|
|
STDMETHOD(GetNameID)(THIS_ LPSTR, INT) PURE;
|
|
STDMETHOD(SelectPreset)(THIS_ DWORD) PURE;
|
|
STDMETHOD(GetClosestPreset)(THIS_ LPDWORD) PURE;
|
|
STDMETHOD(SetReflectance)(THIS_ A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetReflectance)(THIS_ LPA3DVAL, LPA3DVAL) PURE;
|
|
STDMETHOD(SetTransmittance)(THIS_ A3DVAL, A3DVAL) PURE;
|
|
STDMETHOD(GetTransmittance)(THIS_ LPA3DVAL, LPA3DVAL) PURE;
|
|
};
|
|
|
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dMaterial_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b)
|
|
#define IA3dMaterial_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IA3dMaterial_Release(p) (p)->lpVtbl->Release(p)
|
|
#define IA3dMaterial_Load(p, a) (p)->lpVtbl->Load(p, a)
|
|
#define IA3dMaterial_Save(p, a) (p)->lpVtbl->Save(p, a)
|
|
#define IA3dMaterial_UnSerialize(p, a, b) (p)->lpVtbl->UnSerialize(p, a, b)
|
|
#define IA3dMaterial_Serialize(p, a, b) (p)->lpVtbl->Serialize(p, a, b)
|
|
#define IA3dMaterial_Duplicate(p, a) (p)->lpVtbl->Duplicate(p, a)
|
|
#define IA3dMaterial_SetNameID(p, a) (p)->lpVtbl->SetNameID(p, a)
|
|
#define IA3dMaterial_GetNameID(p, a, b) (p)->lpVtbl->GetNameID(p, a, b)
|
|
#define IA3dMaterial_SelectPreset(p, a) (p)->lpVtbl->SelectPreset(p, a)
|
|
#define IA3dMaterial_GetClosestPreset(p, a) (p)->lpVtbl->GetClosestPreset(p, a)
|
|
#define IA3dMaterial_SetReflectance(p, a, b) (p)->lpVtbl->SetReflectance(p, a, b)
|
|
#define IA3dMaterial_GetReflectance(p, a, b) (p)->lpVtbl->GetReflectance(p, a, b)
|
|
#define IA3dMaterial_SetTransmittance(p, a, b) (p)->lpVtbl->SetTransmittance(p, a, b)
|
|
#define IA3dMaterial_GetTransmittance(p, a, b) (p)->lpVtbl->GetTransmittance(p, a, b)
|
|
#else // !defined(__cplusplus) || defined(CINTERFACE)
|
|
#define IA3dMaterial_QueryInterface(p, a, b) (p)->QueryInterface(a, b)
|
|
#define IA3dMaterial_AddRef(p) (p)->AddRef()
|
|
#define IA3dMaterial_Release(p) (p)->Release()
|
|
#define IA3dMaterial_Load(p, a) (p)->Load(a)
|
|
#define IA3dMaterial_Save(p, a) (p)->Save(a)
|
|
#define IA3dMaterial_UnSerialize(p, a, b) (p)->UnSerialize(a, b)
|
|
#define IA3dMaterial_Serialize(p, a, b) (p)->Serialize(a, b)
|
|
#define IA3dMaterial_Duplicate(p, a) (p)->Duplicate(a)
|
|
#define IA3dMaterial_SetNameID(p, a) (p)->SetNameID(a)
|
|
#define IA3dMaterial_GetNameID(p, a, b) (p)->GetNameID(a, b)
|
|
#define IA3dMaterial_SelectPreset(p, a) (p)->SelectPreset(a)
|
|
#define IA3dMaterial_GetClosestPreset(p, a) (p)->GetClosestPreset(a)
|
|
#define IA3dMaterial_SetReflectance(p, a, b) (p)->SetReflectance(a, b)
|
|
#define IA3dMaterial_GetReflectance(p, a, b) (p)->GetReflectance(a, b)
|
|
#define IA3dMaterial_SetTransmittance(p, a, b) (p)->SetTransmittance(a, b)
|
|
#define IA3dMaterial_GetTransmittance(p, a, b) (p)->GetTransmittance(a, b)
|
|
#endif // !defined(__cplusplus) || defined(CINTERFACE)
|
|
|
|
//===================================================================
|
|
// Error Codes
|
|
//
|
|
// Use macros A3DERROR_CODE(code) for errors and A3DSUCCESS_CODE(code)
|
|
// for success codes or predefined universal COM success and failure
|
|
// code.
|
|
//
|
|
// All success codes should be mutally exclusive to all other success other.
|
|
//
|
|
// All error codes should be mutually exclusive to all other error codes.
|
|
//
|
|
//===================================================================
|
|
|
|
#define A3DERROR_CODE(code) MAKE_HRESULT(1, FACILITY_ITF, code)
|
|
#define A3DSUCCESS_CODE(code) MAKE_HRESULT(0, FACILITY_ITF, code)
|
|
|
|
#define A3DERROR_MEMORY_ALLOCATION A3DERROR_CODE(1)
|
|
#define A3DERROR_FAILED_CREATE_PRIMARY_BUFFER A3DERROR_CODE(2)
|
|
#define A3DERROR_FAILED_CREATE_SECONDARY_BUFFER A3DERROR_CODE(3)
|
|
#define A3DERROR_FAILED_INIT_A3D_DRIVER A3DERROR_CODE(4)
|
|
#define A3DERROR_FAILED_QUERY_DIRECTSOUND A3DERROR_CODE(5)
|
|
#define A3DERROR_FAILED_QUERY_A3D3 A3DERROR_CODE(6)
|
|
#define A3DERROR_FAILED_INIT_A3D3 A3DERROR_CODE(7)
|
|
#define A3DERROR_FAILED_QUERY_A3D2 A3DERROR_CODE(8)
|
|
#define A3DERROR_FAILED_FILE_OPEN A3DERROR_CODE(9)
|
|
#define A3DERROR_FAILED_CREATE_SOUNDBUFFER A3DERROR_CODE(10)
|
|
#define A3DERROR_FAILED_QUERY_3DINTERFACE A3DERROR_CODE(11)
|
|
#define A3DERROR_FAILED_LOCK_BUFFER A3DERROR_CODE(12)
|
|
#define A3DERROR_FAILED_UNLOCK_BUFFER A3DERROR_CODE(13)
|
|
#define A3DERROR_UNRECOGNIZED_FORMAT A3DERROR_CODE(14)
|
|
#define A3DERROR_NO_WAVE_DATA A3DERROR_CODE(15)
|
|
#define A3DERROR_UNKNOWN_PLAYMODE A3DERROR_CODE(16)
|
|
#define A3DERROR_FAILED_PLAY A3DERROR_CODE(17)
|
|
#define A3DERROR_FAILED_STOP A3DERROR_CODE(18)
|
|
#define A3DERROR_NEEDS_FORMAT_INFORMATION A3DERROR_CODE(19)
|
|
#define A3DERROR_FAILED_ALLOCATE_WAVEDATA A3DERROR_CODE(20)
|
|
#define A3DERROR_NOT_VALID_SOURCE A3DERROR_CODE(21)
|
|
#define A3DERROR_FAILED_DUPLICATION A3DERROR_CODE(22)
|
|
#define A3DERROR_FAILED_INIT A3DERROR_CODE(23)
|
|
#define A3DERROR_FAILED_SETCOOPERATIVE_LEVEL A3DERROR_CODE(24)
|
|
#define A3DERROR_FAILED_INIT_QUERIED_INTERFACE A3DERROR_CODE(25)
|
|
#define A3DERROR_GEOMETRY_INPUT_OUTSIDE_BEGIN_END_BLOCK A3DERROR_CODE(26)
|
|
#define A3DERROR_INVALID_NORMAL A3DERROR_CODE(27)
|
|
#define A3DERROR_END_BEFORE_VALID_BEGIN_BLOCK A3DERROR_CODE(28)
|
|
#define A3DERROR_INVALID_BEGIN_MODE A3DERROR_CODE(29)
|
|
#define A3DERROR_INVALID_ARGUMENT A3DERROR_CODE(30)
|
|
#define A3DERROR_INVALID_INDEX A3DERROR_CODE(31)
|
|
#define A3DERROR_INVALID_VERTEX_INDEX A3DERROR_CODE(32)
|
|
#define A3DERROR_INVALID_PRIMITIVE_INDEX A3DERROR_CODE(33)
|
|
#define A3DERROR_MIXING_2D_AND_3D_MODES A3DERROR_CODE(34)
|
|
#define A3DERROR_2DWALL_REQUIRES_EXACTLY_ONE_LINE A3DERROR_CODE(35)
|
|
#define A3DERROR_NO_PRIMITIVES_DEFINED A3DERROR_CODE(36)
|
|
#define A3DERROR_PRIMITIVES_NON_PLANAR A3DERROR_CODE(37)
|
|
#define A3DERROR_PRIMITIVES_OVERLAPPING A3DERROR_CODE(38)
|
|
#define A3DERROR_PRIMITIVES_NOT_ADJACENT A3DERROR_CODE(39)
|
|
#define A3DERROR_OBJECT_NOT_FOUND A3DERROR_CODE(40)
|
|
#define A3DERROR_ROOM_HAS_NO_SHELL_WALLS A3DERROR_CODE(41)
|
|
#define A3DERROR_WALLS_DO_NOT_ENCLOSE_ROOM A3DERROR_CODE(42)
|
|
#define A3DERROR_INVALID_WALL A3DERROR_CODE(43)
|
|
#define A3DERROR_ROOM_HAS_LESS_THAN_4SHELL_WALLS A3DERROR_CODE(44)
|
|
#define A3DERROR_ROOM_HAS_LESS_THAN_3UNIQUE_NORMALS A3DERROR_CODE(45)
|
|
#define A3DERROR_INTERSECTING_WALL_EDGES A3DERROR_CODE(46)
|
|
#define A3DERROR_INVALID_ROOM A3DERROR_CODE(47)
|
|
#define A3DERROR_SCENE_HAS_ROOMS_INSIDE_ANOTHER_ROOMS A3DERROR_CODE(48)
|
|
#define A3DERROR_SCENE_HAS_OVERLAPPING_STATIC_ROOMS A3DERROR_CODE(49)
|
|
#define A3DERROR_DYNAMIC_OBJ_UNSUPPORTED A3DERROR_CODE(50)
|
|
#define A3DERROR_DIR_AND_UP_VECTORS_NOT_PERPENDICULAR A3DERROR_CODE(51)
|
|
#define A3DERROR_INVALID_ROOM_INDEX A3DERROR_CODE(52)
|
|
#define A3DERROR_INVALID_WALL_INDEX A3DERROR_CODE(53)
|
|
#define A3DERROR_SCENE_INVALID A3DERROR_CODE(54)
|
|
#define A3DERROR_UNIMPLEMENTED_FUNCTION A3DERROR_CODE(55)
|
|
#define A3DERROR_NO_ROOMS_IN_SCENE A3DERROR_CODE(56)
|
|
#define A3DERROR_2D_GEOMETRY_UNIMPLEMENTED A3DERROR_CODE(57)
|
|
#define A3DERROR_OPENING_NOT_WALL_COPLANAR A3DERROR_CODE(58)
|
|
#define A3DERROR_OPENING_NOT_VALID A3DERROR_CODE(59)
|
|
#define A3DERROR_INVALID_OPENING_INDEX A3DERROR_CODE(60)
|
|
#define A3DERROR_FEATURE_NOT_REQUESTED A3DERROR_CODE(61)
|
|
#define A3DERROR_FEATURE_NOT_SUPPORTED A3DERROR_CODE(62)
|
|
#define A3DERROR_FUNCTION_NOT_VALID_BEFORE_INIT A3DERROR_CODE(63)
|
|
#define A3DERROR_INVALID_NUMBER_OF_CHANNELS A3DERROR_CODE(64)
|
|
#define A3DERROR_SOURCE_IN_NATIVE_MODE A3DERROR_CODE(65)
|
|
#define A3DERROR_SOURCE_IN_A3D_MODE A3DERROR_CODE(66)
|
|
#define A3DERROR_BBOX_CANNOT_ENABLE_AFTER_BEGIN_LIST_CALL A3DERROR_CODE(67)
|
|
#define A3DERROR_CANNOT_CHANGE_FORMAT_FOR_ALLOCATED_BUFFER A3DERROR_CODE(68)
|
|
#define A3DERROR_FAILED_QUERY_DIRECTSOUNDNOTIFY A3DERROR_CODE(69)
|
|
#define A3DERROR_DIRECTSOUNDNOTIFY_FAILED A3DERROR_CODE(70)
|
|
#define A3DERROR_RESOURCE_MANAGER_ALWAYS_ON A3DERROR_CODE(71)
|
|
#define A3DERROR_CLOSED_LIST_CANNOT_BE_CHANGED A3DERROR_CODE(72)
|
|
#define A3DERROR_END_CALLED_BEFORE_BEGIN A3DERROR_CODE(73)
|
|
#define A3DERROR_UNMANAGED_BUFFER A3DERROR_CODE(74)
|
|
#define A3DERROR_COORD_SYSTEM_CAN_ONLY_BE_SET_ONCE A3DERROR_CODE(75)
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif // #ifndef _IA3DAPI_H_
|