822 lines
23 KiB
Plaintext
822 lines
23 KiB
Plaintext
/*
|
|
* Copyright 2017 Fabian Maurer
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#pragma makedep register
|
|
|
|
#include "unknwn.idl"
|
|
|
|
#include "d3d8types.h"
|
|
|
|
interface Direct3DDevice8;
|
|
interface D3DXFont;
|
|
interface D3DXBuffer;
|
|
interface Direct3DSurface8;
|
|
interface Direct3DTexture8;
|
|
interface Direct3DCubeTexture8;
|
|
interface Direct3DVolume8;
|
|
interface D3DXMesh;
|
|
interface D3DXSPMesh;
|
|
interface D3DXPMesh;
|
|
interface D3DXBaseMesh;
|
|
interface D3DXSkinMesh;
|
|
interface D3DXSprite;
|
|
interface D3DXRenderToSurface;
|
|
interface Direct3DBaseTexture8;
|
|
interface DirectSound8;
|
|
interface DirectSoundCapture8;
|
|
interface DirectSoundEnum8;
|
|
interface DirectSoundEnum8;
|
|
interface DirectInput8;
|
|
interface DirectMusicLoader8;
|
|
interface DirectMusicComposer8;
|
|
interface DirectMusicPerformance8;
|
|
interface DirectXEvent8;
|
|
interface DirectPlayVoiceClient8;
|
|
interface DirectPlayVoiceServer8;
|
|
interface DirectPlayVoiceTest8;
|
|
interface DirectXFile;
|
|
interface DirectPlay8Peer;
|
|
interface DirectPlay8Server;
|
|
interface DirectPlay8Client;
|
|
interface DirectPlay8Address;
|
|
interface Direct3D8;
|
|
interface DirectPlay8LobbyClient;
|
|
interface DirectPlay8LobbiedApplication;
|
|
|
|
typedef enum {
|
|
D3DXIFF_BMP = 0,
|
|
D3DXIFF_JPG = 1,
|
|
D3DXIFF_TGA = 2,
|
|
D3DXIFF_PNG = 3,
|
|
D3DXIFF_DDS = 4,
|
|
D3DXIFF_PPM = 5,
|
|
D3DXIFF_DIB = 6,
|
|
D3DXIFF_FORCE_DWORD = 0x7fffffff
|
|
} D3DXIMAGE_FILEFORMAT;
|
|
|
|
typedef struct tagD3DXDECLARATOR {
|
|
LONG value[32];
|
|
} D3DXDECLARATOR;
|
|
|
|
typedef struct tagD3DXMATERIAL {
|
|
D3DMATERIAL8 MatD3D;
|
|
BSTR TextureFilename;
|
|
} D3DXMATERIAL;
|
|
|
|
typedef struct tagD3DXBONECOMBINATION {
|
|
LONG AttribId;
|
|
LONG FaceStart;
|
|
LONG FaceCount;
|
|
LONG VertexStart;
|
|
LONG VertexCount;
|
|
LONG pBones;
|
|
} D3DXBONECOMBINATION;
|
|
|
|
[
|
|
object,
|
|
uuid(3ac50043-cf82-4c44-862e-b206b4f03301),
|
|
local
|
|
]
|
|
interface ID3DX8 : IUnknown {
|
|
HRESULT CreateFont(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG hFont,
|
|
[out, retval] D3DXFont **retFont
|
|
);
|
|
HRESULT DrawText(
|
|
[in] D3DXFont *d3dFont,
|
|
[in] LONG color,
|
|
[in] BSTR text,
|
|
[in] RECT *rect,
|
|
[in] LONG format
|
|
);
|
|
HRESULT GetFVFVertexSize(
|
|
[in] LONG fvf,
|
|
[out, retval] LONG *size
|
|
);
|
|
HRESULT AssembleShaderFromFile(
|
|
[in] BSTR file,
|
|
[in] LONG flags,
|
|
[in, out] BSTR *log,
|
|
[in, out] D3DXBuffer **constants,
|
|
[out, retval] D3DXBuffer **ppVertexShader
|
|
);
|
|
HRESULT AssembleShader(
|
|
[in] BSTR data,
|
|
[in] LONG flags,
|
|
[in, out] D3DXBuffer **constants,
|
|
[in, out, optional] BSTR *log,
|
|
[out, retval] D3DXBuffer **ppVertexShader
|
|
);
|
|
HRESULT GetErrorString(
|
|
[in] LONG hr,
|
|
[out, retval] BSTR *retStr
|
|
);
|
|
HRESULT LoadSurfaceFromFile(
|
|
[in] Direct3DSurface8 *destSurface,
|
|
[in] void *destPalette,
|
|
[in] void *destRect,
|
|
[in] BSTR srcFile,
|
|
[in] void *srcRect,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo
|
|
);
|
|
HRESULT LoadSurfaceFromFileInMemory(
|
|
[in] Direct3DSurface8 *destSurface,
|
|
[in] void *destPalette,
|
|
[in] void *destRect,
|
|
[in] void *srcData,
|
|
[in] LONG lengthInBytes,
|
|
[in] void *srcRect,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo
|
|
);
|
|
HRESULT LoadSurfaceFromSurface(
|
|
[in] Direct3DSurface8 *destSurface,
|
|
[in] void *destPalette,
|
|
[in] void *destRect,
|
|
[in] Direct3DSurface8 *srcSurface,
|
|
[in] void *srcPalette,
|
|
[in] void *srcRect,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey
|
|
);
|
|
HRESULT LoadSurfaceFromMemory(
|
|
[in] Direct3DSurface8 *destSurface,
|
|
[in] void *destPalette,
|
|
[in] void *destRect,
|
|
[in] void *srcData,
|
|
[in] D3DFORMAT formatSrc,
|
|
[in] LONG srcPitch,
|
|
[in] void *srcPalette,
|
|
[in] RECT *srcRect,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey
|
|
);
|
|
HRESULT CheckTextureRequirements(
|
|
[in, out] Direct3DDevice8 *device,
|
|
[in, out] LONG *width,
|
|
[in, out] LONG *height,
|
|
[in, out] LONG *mipLevels,
|
|
[in] LONG usage,
|
|
[in, out] D3DFORMAT *pixelformat,
|
|
[in] D3DPOOL pool
|
|
);
|
|
HRESULT CreateTexture(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG width,
|
|
[in] LONG height,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[out, retval] Direct3DTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateTextureFromResource(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG hModule,
|
|
[in] BSTR srcResource,
|
|
[out, retval] Direct3DTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateTextureFromFile(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] BSTR srcFile,
|
|
[out, retval] Direct3DTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateTextureFromFileEx(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] BSTR srcFile,
|
|
[in] LONG width,
|
|
[in] LONG height,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[in] LONG filter,
|
|
[in] LONG mipFilter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo,
|
|
[in] void *palette,
|
|
[out, retval] Direct3DTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateTextureFromFileInMemory(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] void *srcData,
|
|
[in] LONG lengthInBytes,
|
|
[out, retval] Direct3DTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateTextureFromFileInMemoryEx(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] void *srcData,
|
|
[in] LONG lengthInBytes,
|
|
[in] LONG width,
|
|
[in] LONG height,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[in] LONG filter,
|
|
[in] LONG mipFilter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo,
|
|
[in] void *palette,
|
|
[out, retval] Direct3DTexture8 **ppTexture
|
|
);
|
|
HRESULT FilterTexture(
|
|
[in] Direct3DTexture8 *texture,
|
|
[in] void *palette,
|
|
[in] LONG srcLevel,
|
|
[in] LONG filter
|
|
);
|
|
HRESULT CheckCubeTextureRequirements(
|
|
[in] Direct3DDevice8 *device,
|
|
[in, out] LONG *size,
|
|
[in, out] LONG *mipLevels,
|
|
[in] LONG usage,
|
|
[in, out] D3DFORMAT *pixelformat,
|
|
[in] D3DPOOL pool
|
|
);
|
|
HRESULT CreateCubeTexture(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG size,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[out, retval] Direct3DCubeTexture8 **ppCubeTexture
|
|
);
|
|
HRESULT CreateCubeTextureFromFile(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] BSTR srcFile,
|
|
[out, retval] Direct3DCubeTexture8 **ppCubeTexture
|
|
);
|
|
HRESULT CreateCubeTextureFromFileEx(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] BSTR srcFile,
|
|
[in] LONG textureSize,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[in] LONG filter,
|
|
[in] LONG mipFilter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo,
|
|
[in] void *palette,
|
|
[out, retval] Direct3DCubeTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateCubeTextureFromFileInMemory(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] void *srcData,
|
|
[in] LONG lengthInBytes,
|
|
[out, retval] Direct3DCubeTexture8 **ppTexture
|
|
);
|
|
HRESULT CreateCubeTextureFromFileInMemoryEx(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] void *srcData,
|
|
[in] LONG lengthInBytes,
|
|
[in] LONG textureSize,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[in] LONG filter,
|
|
[in] LONG mipFilter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo,
|
|
[in] void *palette,
|
|
[out, retval] Direct3DCubeTexture8 **ppTexture
|
|
);
|
|
HRESULT FilterCubeTexture(
|
|
[in] Direct3DCubeTexture8 *cubeTexture,
|
|
[in] void *palette,
|
|
[in] LONG srcLevel,
|
|
[in] LONG filter
|
|
);
|
|
HRESULT CheckVolumeTextureRequirements(
|
|
[in] Direct3DDevice8 *device,
|
|
[out] LONG *width,
|
|
[out] LONG *height,
|
|
[out] LONG *depth,
|
|
[out] LONG *mipLevels,
|
|
[in] LONG usage,
|
|
[in, out] D3DFORMAT *pixelformat,
|
|
[in] D3DPOOL pool
|
|
);
|
|
HRESULT CreateTextureFromResourceEx(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG hSrcModule,
|
|
[in] BSTR srcResource,
|
|
[in] LONG width,
|
|
[in] LONG height,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[in] LONG filter,
|
|
[in] LONG mipFilter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo,
|
|
[in] void *palette,
|
|
[out, retval] Direct3DTexture8 **retTexture
|
|
);
|
|
HRESULT CreateVolumeTexture(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG width,
|
|
[in] LONG height,
|
|
[in] LONG depth,
|
|
[in] LONG mipLevels,
|
|
[in] LONG usage,
|
|
[in] D3DFORMAT pixelformat,
|
|
[in] D3DPOOL pool,
|
|
[out, retval] Direct3DVolume8 **ppVolumeTexture
|
|
);
|
|
HRESULT FilterVolumeTexture(
|
|
[in] Direct3DVolume8 *volumeTexture,
|
|
[in] void *palette,
|
|
[in] LONG srcLevel,
|
|
[in] LONG filter
|
|
);
|
|
HRESULT LoadSurfaceFromResource(
|
|
[in] Direct3DSurface8 *destSurface,
|
|
[in] void *destPalette,
|
|
[in] void *destRect,
|
|
[in] LONG hSrcModule,
|
|
[in] BSTR srcResource,
|
|
[in] void *srcRect,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey,
|
|
[in, out] void *srcInfo
|
|
);
|
|
HRESULT LoadVolumeFromVolume(
|
|
[in] Direct3DVolume8 *destVolume,
|
|
[in] void *destPalette,
|
|
[in] void *destBox,
|
|
[in] Direct3DVolume8 *srcVolume,
|
|
[in] void *srcPalette,
|
|
[in] void *srcBox,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey
|
|
);
|
|
HRESULT LoadVolumeFromMemory(
|
|
[in] Direct3DVolume8 *destVolume,
|
|
[in] void *destPalette,
|
|
[in] void *destBox,
|
|
[in] void *srcMemory,
|
|
[in] LONG srcFormat,
|
|
[in] LONG srcRowPitch,
|
|
[in] LONG srcSlicePitch,
|
|
[in] void *srcPalette,
|
|
[in] void *srcBox,
|
|
[in] LONG filter,
|
|
[in] LONG colorKey
|
|
);
|
|
HRESULT CreateMesh(
|
|
[in] LONG numFaces,
|
|
[in] LONG numVertices,
|
|
[in] LONG options,
|
|
[in] void *declaration,
|
|
[in] Direct3DDevice8 *pD3D,
|
|
[out, retval] D3DXMesh **ppMesh
|
|
);
|
|
HRESULT CreateMeshFVF(
|
|
[in] LONG numFaces,
|
|
[in] LONG numVertices,
|
|
[in] LONG options,
|
|
[in] LONG fvf,
|
|
[in] Direct3DDevice8 *pD3D,
|
|
[out, retval] D3DXMesh **ppMesh
|
|
);
|
|
HRESULT CreateSPMesh(
|
|
[in] D3DXMesh *pMesh,
|
|
[in] void *adjacency,
|
|
[in] void *vertexAttributeWeights,
|
|
[in] void *vertexWeights,
|
|
[out, retval] D3DXSPMesh **ppSMesh
|
|
);
|
|
HRESULT GeneratePMesh(
|
|
[in] D3DXMesh *mesh,
|
|
[in] void *adjacency,
|
|
[in] void *vertexAttributeWeights,
|
|
[in] void *vertexWeights,
|
|
[in] LONG minValue,
|
|
[in] LONG options,
|
|
[out, retval] D3DXPMesh **ppPMesh
|
|
);
|
|
HRESULT SimplifyMesh(
|
|
[in] D3DXMesh *mesh,
|
|
[in] void *adjacency,
|
|
[in] void *vertexAttributeWeights,
|
|
[in] void *vertexWeights,
|
|
[in] LONG minValue,
|
|
[in] LONG options,
|
|
[out, retval] D3DXMesh **ppMesh
|
|
);
|
|
HRESULT ComputeBoundingSphere(
|
|
[in] void *pointsFVF,
|
|
[in] LONG numVertices,
|
|
[in] LONG fvf,
|
|
[in] D3DVECTOR *centers,
|
|
[in, out] float *radiusArray
|
|
);
|
|
HRESULT ComputeBoundingBox(
|
|
[in] void *pointsFVF,
|
|
[in] LONG numVertices,
|
|
[in] LONG fvf,
|
|
[in, out] D3DVECTOR *minVert,
|
|
[in, out] D3DVECTOR *maxVert
|
|
);
|
|
HRESULT ComputeNormals(
|
|
[in] D3DXBaseMesh *pMesh
|
|
);
|
|
HRESULT DeclaratorFromFVF(
|
|
[in] LONG fvf,
|
|
[out] D3DXDECLARATOR *declarator
|
|
);
|
|
HRESULT FVFFromDeclarator(
|
|
[in] D3DXDECLARATOR *declarator,
|
|
[out, retval] LONG *fvf
|
|
);
|
|
HRESULT CreateBuffer(
|
|
[in] LONG numBytes,
|
|
[out, retval] D3DXBuffer **ppBuffer
|
|
);
|
|
HRESULT LoadMeshFromX(
|
|
[in] BSTR filename,
|
|
[in] LONG options,
|
|
[in] Direct3DDevice8 *device,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[in, out] D3DXBuffer **retMaterials,
|
|
[in, out] LONG *retMaterialCount,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT SaveMeshToX(
|
|
[in] BSTR filename,
|
|
[in] D3DXMesh *mesh,
|
|
[in] void *adjacencyArray,
|
|
[in] D3DXMATERIAL *materialArray,
|
|
[in] LONG materialCount,
|
|
[in] LONG xFormat
|
|
);
|
|
HRESULT LoadMeshFromXof(
|
|
[in] IUnknown *xofobjMesh,
|
|
[in] LONG options,
|
|
[in] Direct3DDevice8 *device,
|
|
[in, out] D3DXBuffer **retBufAdjacency,
|
|
[in, out] D3DXBuffer **retMaterials,
|
|
[in, out] LONG *retMaterialCount,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT TessellateNPatches(
|
|
[in] D3DXMesh *meshIn,
|
|
[in] void *adjacencyIn,
|
|
[in] float numSegs,
|
|
[in] VARIANT_BOOL quadraticInterpNormals,
|
|
[in, out, optional] D3DXBuffer **adjacencyOut,
|
|
[out, retval] D3DXMesh **meshOut
|
|
);
|
|
HRESULT BufferGetMaterial(
|
|
[in] D3DXBuffer *materialBuffer,
|
|
[in] LONG index,
|
|
[out] D3DMATERIAL8 *mat
|
|
);
|
|
HRESULT BufferGetTextureName(
|
|
[in] D3DXBuffer *materialBuffer,
|
|
[in] LONG index,
|
|
[out, retval] BSTR *retName
|
|
);
|
|
HRESULT BufferGetData(
|
|
[in] D3DXBuffer *buffer,
|
|
[in] LONG index,
|
|
[in] LONG typesize,
|
|
[in] LONG typecount,
|
|
[in, out] void *data
|
|
);
|
|
HRESULT BufferSetData(
|
|
[in] D3DXBuffer *buffer,
|
|
[in] LONG index,
|
|
[in] LONG typesize,
|
|
[in] LONG typecount,
|
|
[in, out] void *data
|
|
);
|
|
HRESULT Intersect(
|
|
[in] D3DXMesh *meshIn,
|
|
[in] D3DVECTOR *rayPos,
|
|
[in] D3DVECTOR *rayDir,
|
|
[out] LONG *retHit,
|
|
[out] LONG *retFaceIndex,
|
|
[out] float *u,
|
|
[out] float *v,
|
|
[out] float *retDist,
|
|
[out] LONG *countHits,
|
|
[out, retval] D3DXBuffer **allHits
|
|
);
|
|
HRESULT SphereBoundProbe(
|
|
[in] D3DVECTOR *center,
|
|
[in] float radius,
|
|
[in] D3DVECTOR *rayPosition,
|
|
[in] D3DVECTOR *rayDirection,
|
|
[out, retval] VARIANT_BOOL *retHit
|
|
);
|
|
HRESULT ComputeBoundingSphereFromMesh(
|
|
[in] D3DXMesh *meshIn,
|
|
[in, out] D3DVECTOR *centers,
|
|
[in, out] float *radiusArray
|
|
);
|
|
HRESULT ComputeBoundingBoxFromMesh(
|
|
[in] D3DXMesh *meshIn,
|
|
[in, out] D3DVECTOR *minArray,
|
|
[in, out] D3DVECTOR *maxArray
|
|
);
|
|
HRESULT CreateSkinMesh(
|
|
[in] LONG numFaces,
|
|
[in] LONG numVertices,
|
|
[in] LONG numBones,
|
|
[in] LONG options,
|
|
[in] void *declaration,
|
|
[in] Direct3DDevice8 *device,
|
|
[out, retval] D3DXSkinMesh **ppSkinMesh
|
|
);
|
|
HRESULT CreateSkinMeshFVF(
|
|
[in] LONG numFaces,
|
|
[in] LONG numVertices,
|
|
[in] LONG numBones,
|
|
[in] LONG options,
|
|
[in] LONG fvf,
|
|
[in] Direct3DDevice8 *device,
|
|
[out, retval] D3DXSkinMesh **ppSkinMesh
|
|
);
|
|
HRESULT CreateSkinMeshFromMesh(
|
|
[in] D3DXMesh *mesh,
|
|
[in] LONG numBones,
|
|
[out, retval] D3DXSkinMesh **ppSkinMesh
|
|
);
|
|
HRESULT LoadSkinMeshFromXof(
|
|
[in] IUnknown *xofobjMesh,
|
|
[in] LONG options,
|
|
[in] Direct3DDevice8 *device,
|
|
[in, out] D3DXBuffer **adjacencyOut,
|
|
[in, out] D3DXBuffer **materialsOut,
|
|
[in, out] LONG *numMatOut,
|
|
[in, out] D3DXBuffer **boneNamesOut,
|
|
[in, out] D3DXBuffer **boneTransformsOut,
|
|
[out, retval] D3DXSkinMesh **ppMesh
|
|
);
|
|
HRESULT CreatePolygon(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] float length,
|
|
[in] LONG sides,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT CreateBox(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] float width,
|
|
[in] float height,
|
|
[in] float depth,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT CreateCylinder(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] float radius1,
|
|
[in] float radius2,
|
|
[in] float length,
|
|
[in] LONG slices,
|
|
[in] LONG stacks,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT CreateSphere(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] float radius,
|
|
[in] LONG slices,
|
|
[in] LONG stacks,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT CreateTorus(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] float innerRadius,
|
|
[in] float outerRadius,
|
|
[in] LONG sides,
|
|
[in] LONG rings,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT CreateTeapot(
|
|
[in] Direct3DDevice8 *device,
|
|
[in, out] D3DXBuffer **retAdjacency,
|
|
[out, retval] D3DXMesh **retMesh
|
|
);
|
|
HRESULT CreateText(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG hDC,
|
|
[in] BSTR text,
|
|
[in] float deviation,
|
|
[in] float extrusion,
|
|
[in, out] D3DXMesh **retMesh,
|
|
[in, out] D3DXBuffer **adjacencyOut,
|
|
[in, out] void *glyphMetrics
|
|
);
|
|
HRESULT BufferGetBoneName(
|
|
[in] D3DXBuffer *boneNameBuffer,
|
|
[in] LONG index,
|
|
[out, retval] BSTR *retName
|
|
);
|
|
HRESULT CreateSprite(
|
|
[in] Direct3DDevice8 *device,
|
|
[out, retval] D3DXSprite **retSprite
|
|
);
|
|
HRESULT CreateRenderToSurface(
|
|
[in] Direct3DDevice8 *device,
|
|
[in] LONG width,
|
|
[in] LONG height,
|
|
[in] D3DFORMAT format,
|
|
[in] LONG depthStencil,
|
|
[in] D3DFORMAT depthStencilFormat,
|
|
[out, retval] D3DXRenderToSurface **retRenderToSurface
|
|
);
|
|
HRESULT CleanMesh(
|
|
[in] D3DXMesh *meshIn,
|
|
[in] void *adjacency,
|
|
[in, out] BSTR *log,
|
|
[in, out] D3DXBuffer *adjacencyOut,
|
|
[out, retval] D3DXMesh **meshOut
|
|
);
|
|
HRESULT ValidMesh(
|
|
[in] D3DXMesh *meshIn,
|
|
[in] void *adjacency,
|
|
[in, out, optional] BSTR *log,
|
|
[out, retval] VARIANT_BOOL *ret
|
|
);
|
|
HRESULT BoxBoundProbe(
|
|
[in] D3DVECTOR *minVert,
|
|
[in] D3DVECTOR *maxVert,
|
|
[in] D3DVECTOR *rayPosition,
|
|
[in] D3DVECTOR *rayDirection,
|
|
[out, retval] VARIANT_BOOL *ret
|
|
);
|
|
HRESULT SavePMeshToFile(
|
|
[in] BSTR filename,
|
|
[in] D3DXPMesh *mesh,
|
|
[in] D3DXMATERIAL *materialArray,
|
|
[in] LONG materialCount
|
|
);
|
|
HRESULT LoadPMeshFromFile(
|
|
[in] BSTR filename,
|
|
[in] LONG options,
|
|
[in] Direct3DDevice8 *device,
|
|
[out] D3DXBuffer **retMaterials,
|
|
[out] LONG *retNumMaterials,
|
|
[out, retval] D3DXPMesh **retPMesh
|
|
);
|
|
HRESULT BufferGetBoneCombo(
|
|
[in] D3DXBuffer *boneComboBuffer,
|
|
[in] LONG index,
|
|
[in, out] D3DXBONECOMBINATION *boneCombo
|
|
);
|
|
HRESULT BufferGetBoneComboBoneIds(
|
|
[in] D3DXBuffer *boneComboBuffer,
|
|
[in] LONG index,
|
|
[in] LONG paletteSize,
|
|
[in] void *boneIds
|
|
);
|
|
HRESULT SaveSurfaceToFile(
|
|
[in] BSTR destFile,
|
|
[in] D3DXIMAGE_FILEFORMAT destFormat,
|
|
[in] Direct3DSurface8 *srcSurface,
|
|
[in] PALETTEENTRY *srcPalette,
|
|
[in] RECT *srcRect
|
|
);
|
|
HRESULT SaveVolumeToFile(
|
|
[in] BSTR destFile,
|
|
[in] D3DXIMAGE_FILEFORMAT destFormat,
|
|
[in] Direct3DVolume8 *srcVolume,
|
|
[in] PALETTEENTRY *srcPalette,
|
|
[in] void *srcBox
|
|
);
|
|
HRESULT SaveTextureToFile(
|
|
[in] BSTR destFile,
|
|
[in] D3DXIMAGE_FILEFORMAT destFormat,
|
|
[in] Direct3DBaseTexture8 *srcTexture,
|
|
[in] PALETTEENTRY *srcPalette
|
|
);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(e7ff1301-96a5-11d3-ac85-00c04fc2c602),
|
|
helpstring("DirectX8 root object functions"),
|
|
local
|
|
]
|
|
interface IDirectX8 : IUnknown {
|
|
HRESULT DirectSoundCreate(
|
|
[in] BSTR guid,
|
|
[out, retval] DirectSound8 **ret
|
|
);
|
|
HRESULT DirectSoundCaptureCreate(
|
|
[in] BSTR guid,
|
|
[out, retval] DirectSoundCapture8 **ret
|
|
);
|
|
HRESULT GetDSEnum(
|
|
[out, retval] DirectSoundEnum8 **ret
|
|
);
|
|
HRESULT GetDSCaptureEnum(
|
|
[out, retval] DirectSoundEnum8 **ret
|
|
);
|
|
HRESULT DirectInputCreate(
|
|
[out, retval] DirectInput8 **ret
|
|
);
|
|
HRESULT DirectMusicLoaderCreate(
|
|
[out, retval] DirectMusicLoader8 **ret
|
|
);
|
|
HRESULT DirectMusicComposerCreate(
|
|
[out, retval] DirectMusicComposer8 **ret
|
|
);
|
|
HRESULT DirectMusicPerformanceCreate(
|
|
[out, retval] DirectMusicPerformance8 **ret
|
|
);
|
|
HRESULT CreateEvent(
|
|
[in] DirectXEvent8 *event,
|
|
[out, retval] LONG *h
|
|
);
|
|
HRESULT SetEvent(
|
|
[in] LONG eventid
|
|
);
|
|
HRESULT DestroyEvent(
|
|
[in] LONG eventid
|
|
);
|
|
HRESULT CreateNewGuid(
|
|
[out, retval] BSTR *retGuid
|
|
);
|
|
HRESULT DirectPlayVoiceClientCreate(
|
|
[out, retval] DirectPlayVoiceClient8 **ret
|
|
);
|
|
HRESULT DirectPlayVoiceServerCreate(
|
|
[out, retval] DirectPlayVoiceServer8 **ret
|
|
);
|
|
HRESULT DirectPlayVoiceTestCreate(
|
|
[out, retval] DirectPlayVoiceTest8 **ret
|
|
);
|
|
HRESULT DirectXFileCreate(
|
|
[out, retval] DirectXFile **ret
|
|
);
|
|
HRESULT DirectPlayPeerCreate(
|
|
[out, retval] DirectPlay8Peer **ret
|
|
);
|
|
HRESULT DirectPlayServerCreate(
|
|
[out, retval] DirectPlay8Server **ret
|
|
);
|
|
HRESULT DirectPlayClientCreate(
|
|
[out, retval] DirectPlay8Client **ret
|
|
);
|
|
HRESULT DirectPlayAddressCreate(
|
|
[out, retval] DirectPlay8Address **ret
|
|
);
|
|
HRESULT Direct3DCreate(
|
|
[out, retval] Direct3D8 **ret
|
|
);
|
|
HRESULT DirectPlayLobbyClientCreate(
|
|
[out, retval] DirectPlay8LobbyClient **ret
|
|
);
|
|
HRESULT DirectPlayLobbiedApplicationCreate(
|
|
[out, retval] DirectPlay8LobbiedApplication **ret
|
|
);
|
|
};
|
|
|
|
[
|
|
uuid(58356c5d-0bfd-48ed-93c5-f4520b6233de),
|
|
helpstring("D3DX8"),
|
|
threading(both),
|
|
progid("DIRECT.D3DX8.0"),
|
|
vi_progid("DIRECT.D3DX8.0")
|
|
]
|
|
coclass D3DX8 { interface ID3DX8; };
|
|
|
|
[
|
|
uuid(e7ff1300-96a5-11d3-ac85-00c04fc2c602),
|
|
helpstring("DirectX8"),
|
|
threading(both),
|
|
progid("DIRECT.DirectX8.0"),
|
|
vi_progid("DIRECT.DirectX8.0")
|
|
]
|
|
coclass DirectX8 { interface IDirectX8; };
|