[PATCH 1/2] dx8vb: Add D3DX8 coclass plus ID3DX8 interface and its dependencies
Fabian Maurer
dark.shadow4 at web.de
Sat Oct 14 08:46:16 CDT 2017
Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
dlls/dx8vb/Makefile.in | 2 +
dlls/dx8vb/dx8vb.idl | 2748 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 2750 insertions(+)
create mode 100644 dlls/dx8vb/dx8vb.idl
diff --git a/dlls/dx8vb/Makefile.in b/dlls/dx8vb/Makefile.in
index d9f93f96f1..e0a083aa3d 100644
--- a/dlls/dx8vb/Makefile.in
+++ b/dlls/dx8vb/Makefile.in
@@ -3,3 +3,5 @@ IMPORTS = uuid ole32
C_SRCS = \
main.c
+
+IDL_SRCS = dx8vb.idl
diff --git a/dlls/dx8vb/dx8vb.idl b/dlls/dx8vb/dx8vb.idl
new file mode 100644
index 0000000000..b5f6bea851
--- /dev/null
+++ b/dlls/dx8vb/dx8vb.idl
@@ -0,0 +1,2748 @@
+/*
+ * 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"
+
+interface Direct3DDevice8;
+interface DirectSoundSecondaryBuffer8;
+interface DirectSoundPrimaryBuffer8;
+interface DirectSound8;
+interface DirectMusicBand8;
+interface DirectMusicSegment8;
+interface DirectPlayVoiceServer8;
+
+//Enumerations
+
+typedef enum CONST_D3DPOOL {
+ D3DPOOL_DEFAULT = 0,
+ D3DPOOL_MANAGED = 1,
+ D3DPOOL_SYSTEMMEM = 2,
+ D3DPOOL_FORCE_DWORD = 2147483647
+} CONST_D3DPOOL;
+
+typedef enum {
+ D3DFMT_UNKNOWN = 0,
+ D3DFMT_R8G8B8 = 20,
+ D3DFMT_A8R8G8B8 = 21,
+ D3DFMT_X8R8G8B8 = 22,
+ D3DFMT_R5G6B5 = 23,
+ D3DFMT_X1R5G5B5 = 24,
+ D3DFMT_A1R5G5B5 = 25,
+ D3DFMT_A4R4G4B4 = 26,
+ D3DFMT_R3G3B2 = 27,
+ D3DFMT_A8 = 28,
+ D3DFMT_A8R3G3B2 = 29,
+ D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A8P8 = 40,
+ D3DFMT_P8 = 41,
+ D3DFMT_L8 = 50,
+ D3DFMT_A8L8 = 51,
+ D3DFMT_A4L4 = 52,
+ D3DFMT_V8U8 = 60,
+ D3DFMT_L6V5U5 = 61,
+ D3DFMT_X8L8V8U8 = 62,
+ D3DFMT_Q8W8V8U8 = 63,
+ D3DFMT_V16U16 = 64,
+ D3DFMT_W11V11U10 = 65,
+ D3DFMT_UYVY = 1498831189,
+ D3DFMT_YUY2 = 844715353,
+ D3DFMT_DXT1 = 827611204,
+ D3DFMT_DXT2 = 844388420,
+ D3DFMT_DXT3 = 861165636,
+ D3DFMT_DXT4 = 877942852,
+ D3DFMT_DXT5 = 894720068,
+ D3DFMT_D16_LOCKABLE = 70,
+ D3DFMT_D32 = 71,
+ D3DFMT_D15S1 = 73,
+ D3DFMT_D24S8 = 75,
+ D3DFMT_D24X8 = 77,
+ D3DFMT_D24X4S4 = 79,
+ D3DFMT_D16 = 80,
+ D3DFMT_VERTEXDATA = 100,
+ D3DFMT_INDEX16 = 101,
+ D3DFMT_INDEX32 = 102,
+ D3DFMT_FORCE_DWORD = 2147483647
+} CONST_D3DFORMAT;
+
+typedef enum {
+ D3DDEVTYPE_HAL = 1,
+ D3DDEVTYPE_REF = 2,
+ D3DDEVTYPE_SW = 3,
+ D3DDEVTYPE_FORCE_DWORD = 2147483647
+} CONST_D3DDEVTYPE;
+
+typedef enum {
+ D3DRTYPE_SURFACE = 1,
+ D3DRTYPE_VOLUME = 2,
+ D3DRTYPE_TEXTURE = 3,
+ D3DRTYPE_VOLUMETEXTURE = 4,
+ D3DRTYPE_CUBETEXTURE = 5,
+ D3DRTYPE_VERTEXBUFFER = 6,
+ D3DRTYPE_INDEXBUFFER = 7,
+ D3DRTYPE_FORCE_DWORD = 2147483647
+} CONST_D3DRESOURCETYPE;
+
+typedef enum {
+ D3DMULTISAMPLE_NONE = 0,
+ D3DMULTISAMPLE_2_SAMPLES = 2,
+ D3DMULTISAMPLE_3_SAMPLES = 3,
+ D3DMULTISAMPLE_4_SAMPLES = 4,
+ D3DMULTISAMPLE_5_SAMPLES = 5,
+ D3DMULTISAMPLE_6_SAMPLES = 6,
+ D3DMULTISAMPLE_7_SAMPLES = 7,
+ D3DMULTISAMPLE_8_SAMPLES = 8,
+ D3DMULTISAMPLE_9_SAMPLES = 9,
+ D3DMULTISAMPLE_10_SAMPLES = 10,
+ D3DMULTISAMPLE_11_SAMPLES = 11,
+ D3DMULTISAMPLE_12_SAMPLES = 12,
+ D3DMULTISAMPLE_13_SAMPLES = 13,
+ D3DMULTISAMPLE_14_SAMPLES = 14,
+ D3DMULTISAMPLE_15_SAMPLES = 15,
+ D3DMULTISAMPLE_16_SAMPLES = 16,
+ D3DMULTISAMPLE_FORCE_DWORD = -1
+} CONST_D3DMULTISAMPLE_TYPE;
+
+typedef enum {
+ D3DCREATE_FPU_PRESERVE = 2,
+ D3DCREATE_MULTITHREADED = 4,
+ D3DCREATE_PUREDEVICE = 16,
+ D3DCREATE_SOFTWARE_VERTEXPROCESSING = 32,
+ D3DCREATE_HARDWARE_VERTEXPROCESSING = 64,
+ D3DCREATE_MIXED_VERTEXPROCESSING = 128
+} CONST_D3DCREATEFLAGS;
+
+typedef enum {
+ D3DSWAPEFFECT_DISCARD = 1,
+ D3DSWAPEFFECT_FLIP = 2,
+ D3DSWAPEFFECT_COPY = 3,
+ D3DSWAPEFFECT_COPY_VSYNC = 4,
+ D3DSWAPEFFECT_FORCE_DWORD = 2147483647
+} CONST_D3DSWAPEFFECT;
+
+typedef enum {
+ D3DUCURSOR_DEFAULT = 0,
+ D3DUCURSOR_IMMEDIATE_UPDATE = 1
+} CONST_D3DSCPFLAGS;
+
+typedef enum {
+ D3DBACKBUFFER_TYPE_MONO = 0,
+ D3DBACKBUFFER_TYPE_LEFT = 1,
+ D3DBACKBUFFER_TYPE_RIGHT = 2,
+ D3DBACKBUFFER_TYPE_FORCE_DWORD = 2147483647
+} CONST_D3DBACKBUFFERTYPE;
+
+typedef enum {
+ D3DCUBEMAP_FACE_POSITIVE_X = 0,
+ D3DCUBEMAP_FACE_NEGATIVE_X = 1,
+ D3DCUBEMAP_FACE_POSITIVE_Y = 2,
+ D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
+ D3DCUBEMAP_FACE_POSITIVE_Z = 4,
+ D3DCUBEMAP_FACE_NEGATIVE_Z = 5,
+ D3DCUBEMAP_FACE_FORCE_DWORD = 2147483647
+} CONST_D3DCUBEMAP_FACES;
+
+typedef enum {
+ D3DCLEAR_TARGET = 1,
+ D3DCLEAR_ZBUFFER = 2,
+ D3DCLEAR_STENCIL = 4,
+ D3DCLEAR_FORCE_DWORD = 2147483647
+} CONST_D3DCLEARFLAGS;
+
+typedef enum {
+ D3DTS_WORLD = 256,
+ D3DTS_VIEW = 2,
+ D3DTS_PROJECTION = 3,
+ D3DTS_WORLD1 = 257,
+ D3DTS_WORLD2 = 258,
+ D3DTS_WORLD3 = 259,
+ D3DTS_TEXTURE0 = 16,
+ D3DTS_TEXTURE1 = 17,
+ D3DTS_TEXTURE2 = 18,
+ D3DTS_TEXTURE3 = 19,
+ D3DTS_TEXTURE4 = 20,
+ D3DTS_TEXTURE5 = 21,
+ D3DTS_TEXTURE6 = 22,
+ D3DTS_TEXTURE7 = 23,
+ D3DTS_FORCE_DWORD = 2147483647
+} CONST_D3DTRANSFORMSTATETYPE;
+
+typedef enum {
+ D3DLIGHT_POINT = 1,
+ D3DLIGHT_SPOT = 2,
+ D3DLIGHT_DIRECTIONAL = 3,
+ D3DLIGHT_FORCE_DWORD = 2147483647
+} CONST_D3DLIGHTTYPE;
+
+typedef enum {
+ D3DRS_ZENABLE = 7,
+ D3DRS_FILLMODE = 8,
+ D3DRS_SHADEMODE = 9,
+ D3DRS_LINEPATTERN = 10,
+ D3DRS_ZWRITEENABLE = 14,
+ D3DRS_ALPHATESTENABLE = 15,
+ D3DRS_LASTPIXEL = 16,
+ D3DRS_SRCBLEND = 19,
+ D3DRS_DESTBLEND = 20,
+ D3DRS_CULLMODE = 22,
+ D3DRS_ZFUNC = 23,
+ D3DRS_ALPHAREF = 24,
+ D3DRS_ALPHAFUNC = 25,
+ D3DRS_DITHERENABLE = 26,
+ D3DRS_ALPHABLENDENABLE = 27,
+ D3DRS_FOGENABLE = 28,
+ D3DRS_SPECULARENABLE = 29,
+ D3DRS_ZVISIBLE = 30,
+ D3DRS_FOGCOLOR = 34,
+ D3DRS_FOGTABLEMODE = 35,
+ D3DRS_FOGSTART = 36,
+ D3DRS_FOGEND = 37,
+ D3DRS_FOGDENSITY = 38,
+ D3DRS_EDGEANTIALIAS = 40,
+ D3DRS_ZBIAS = 47,
+ D3DRS_RANGEFOGENABLE = 48,
+ D3DRS_STENCILENABLE = 52,
+ D3DRS_STENCILFAIL = 53,
+ D3DRS_STENCILZFAIL = 54,
+ D3DRS_STENCILPASS = 55,
+ D3DRS_STENCILFUNC = 56,
+ D3DRS_STENCILREF = 57,
+ D3DRS_STENCILMASK = 58,
+ D3DRS_STENCILWRITEMASK = 59,
+ D3DRS_TEXTUREFACTOR = 60,
+ D3DRS_WRAP0 = 128,
+ D3DRS_WRAP1 = 129,
+ D3DRS_WRAP2 = 130,
+ D3DRS_WRAP3 = 131,
+ D3DRS_WRAP4 = 132,
+ D3DRS_WRAP5 = 133,
+ D3DRS_WRAP6 = 134,
+ D3DRS_WRAP7 = 135,
+ D3DRS_CLIPPING = 136,
+ D3DRS_LIGHTING = 137,
+ D3DRS_AMBIENT = 139,
+ D3DRS_FOGVERTEXMODE = 140,
+ D3DRS_COLORVERTEX = 141,
+ D3DRS_LOCALVIEWER = 142,
+ D3DRS_NORMALIZENORMALS = 143,
+ D3DRS_DIFFUSEMATERIALSOURCE = 145,
+ D3DRS_SPECULARMATERIALSOURCE = 146,
+ D3DRS_AMBIENTMATERIALSOURCE = 147,
+ D3DRS_EMISSIVEMATERIALSOURCE = 148,
+ D3DRS_VERTEXBLEND = 151,
+ D3DRS_CLIPPLANEENABLE = 152,
+ D3DRS_SOFTWAREVERTEXPROCESSING = 153,
+ D3DRS_POINTSIZE = 154,
+ D3DRS_POINTSIZE_MIN = 155,
+ D3DRS_POINTSPRITE_ENABLE = 156,
+ D3DRS_POINTSCALE_ENABLE = 157,
+ D3DRS_POINTSCALE_A = 158,
+ D3DRS_POINTSCALE_B = 159,
+ D3DRS_POINTSCALE_C = 160,
+ D3DRS_MULTISAMPLE_ANTIALIAS = 161,
+ D3DRS_MULTISAMPLE_MASK = 162,
+ D3DRS_PATCHEDGESTYLE = 163,
+ D3DRS_PATCHSEGMENTS = 164,
+ D3DRS_DEBUGMONITORTOKEN = 165,
+ D3DRS_POINT_SIZE_MAX = 166,
+ D3DRS_INDEXVERTEXBLENDENABLE = 167,
+ D3DRS_COLORWRITEENABLE = 168,
+ D3DRS_TWEENFACTOR = 170,
+ D3DRS_BLENDOP = 171,
+ D3DRS_FORCE_DWORD = 2147483647
+} CONST_D3DRENDERSTATETYPE;
+
+typedef enum {
+ D3DSBT_ALL = 1,
+ D3DSBT_PIXELSTATE = 2,
+ D3DSBT_VERTEXSTATE = 3,
+ D3DSBT_FORCE_DWORD = -1
+} CONST_D3DSTATEBLOCKTYPE;
+
+typedef enum {
+ D3DTSS_COLOROP = 1,
+ D3DTSS_COLORARG1 = 2,
+ D3DTSS_COLORARG2 = 3,
+ D3DTSS_ALPHAOP = 4,
+ D3DTSS_ALPHAARG1 = 5,
+ D3DTSS_ALPHAARG2 = 6,
+ D3DTSS_BUMPENVMAT00 = 7,
+ D3DTSS_BUMPENVMAT01 = 8,
+ D3DTSS_BUMPENVMAT10 = 9,
+ D3DTSS_BUMPENVMAT11 = 10,
+ D3DTSS_TEXCOORDINDEX = 11,
+ D3DTSS_ADDRESSU = 13,
+ D3DTSS_ADDRESSV = 14,
+ D3DTSS_BORDERCOLOR = 15,
+ D3DTSS_MAGFILTER = 16,
+ D3DTSS_MINFILTER = 17,
+ D3DTSS_MIPFILTER = 18,
+ D3DTSS_MIPMAPLODBIAS = 19,
+ D3DTSS_MAXMIPLEVEL = 20,
+ D3DTSS_MAXANISOTROPY = 21,
+ D3DTSS_BUMPENVLSCALE = 22,
+ D3DTSS_BUMPENVLOFFSET = 23,
+ D3DTSS_TEXTURETRANSFORMFLAGS = 24,
+ D3DTSS_ADDRESSW = 25,
+ D3DTSS_COLORARG0 = 26,
+ D3DTSS_ALPHAARG0 = 27,
+ D3DTSS_RESULTARG = 28,
+ D3DTSS_FORCE_DWORD = 2147483647
+} CONST_D3DTEXTURESTAGESTATETYPE;
+
+typedef enum {
+ D3DPT_POINTLIST = 1,
+ D3DPT_LINELIST = 2,
+ D3DPT_LINESTRIP = 3,
+ D3DPT_TRIANGLELIST = 4,
+ D3DPT_TRIANGLESTRIP = 5,
+ D3DPT_TRIANGLEFAN = 6,
+ D3DPT_FORCE_DWORD = 2147483647
+} CONST_D3DPRIMITIVETYPE;
+
+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 = 2147483647
+} CONST_D3DXIMAGE_FILEFORMAT;
+
+//Structures
+
+typedef struct tagDXGUID {
+ long data1;
+ short data2;
+ short data3;
+ unsigned char data4[8];
+} DXGUID;
+
+typedef struct tagD3DADAPTER_IDENTIFIER8 {
+ unsigned char Driver[512];
+ unsigned char Description[512];
+ long DriverVersionLowPart;
+ long DriverVersionHighPart;
+ long VendorId;
+ long DeviceId;
+ long SubSysId;
+ long Revision;
+ DXGUID DeviceIdentifier;
+ long WHQLLevel;
+} D3DADAPTER_IDENTIFIER8;
+
+typedef struct tagD3DDISPLAYMODE {
+ int Width;
+ int Height;
+ int RefreshRate;
+ CONST_D3DFORMAT Format;
+} D3DDISPLAYMODE;
+
+typedef struct tagD3DCAPS8 {
+ long DeviceType;
+ int AdapterOrdinal;
+ long Caps;
+ long Caps2;
+ long Caps3;
+ long PresentationIntervals;
+ long CursorCaps;
+ long DevCaps;
+ long PrimitiveMiscCaps;
+ long RasterCaps;
+ long ZCmpCaps;
+ long SrcBlendCaps;
+ long DestBlendCaps;
+ long AlphaCmpCaps;
+ long ShadeCaps;
+ long TextureCaps;
+ long TextureFilterCaps;
+ long CubeTextureFilterCaps;
+ long VolumeTextureFilterCaps;
+ long TextureAddressCaps;
+ long VolumeTextureAddressCaps;
+ long LineCaps;
+ long MaxTextureWidth;
+ long MaxTextureHeight;
+ long MaxVolumeExtent;
+ long MaxTextureRepeat;
+ long MaxTextureAspectRatio;
+ long MaxAnisotropy;
+ float MaxVertexW;
+ float GuardBandLeft;
+ float GuardBandTop;
+ float GuardBandRight;
+ float GuardBandBottom;
+ float ExtentsAdjust;
+ long StencilCaps;
+ long FVFCaps;
+ long TextureOpCaps;
+ long MaxTextureBlendStages;
+ long MaxSimultaneousTextures;
+ long VertexProcessingCaps;
+ long MaxActiveLights;
+ long MaxUserClipPlanes;
+ long MaxVertexBlendMatrices;
+ long MaxVertexBlendMatrixIndex;
+ float MaxPointSize;
+ long MaxPrimitiveCount;
+ long MaxVertexIndex;
+ long MaxStreams;
+ long MaxStreamStride;
+ long VertexShaderVersion;
+ long MaxVertexShaderConst;
+ long PixelShaderVersion;
+ float MaxPixelShaderValue;
+} D3DCAPS8;
+
+typedef struct tagD3DPRESENT_PARAMETERS {
+ int BackBufferWidth;
+ int BackBufferHeight;
+ CONST_D3DFORMAT BackBufferFormat;
+ int BackBufferCount;
+ CONST_D3DMULTISAMPLE_TYPE MultiSampleType;
+ CONST_D3DSWAPEFFECT SwapEffect;
+ long hDeviceWindow;
+ long Windowed;
+ long EnableAutoDepthStencil;
+ CONST_D3DFORMAT AutoDepthStencilFormat;
+ long flags;
+ int FullScreen_RefreshRateInHz;
+ int FullScreen_PresentationInterval;
+} D3DPRESENT_PARAMETERS;
+
+typedef struct tagD3DDEVICE_CREATION_PARAMETERS {
+ int AdapterOrdinal;
+ CONST_D3DDEVTYPE DeviceType;
+ long hFocusWindow;
+ long BehaviorFlags;
+} D3DDEVICE_CREATION_PARAMETERS;
+
+typedef struct tagD3DSURFACE_DESC {
+ CONST_D3DFORMAT Format;
+ CONST_D3DRESOURCETYPE Type;
+ long Usage;
+ CONST_D3DPOOL Pool;
+ int Size;
+ CONST_D3DMULTISAMPLE_TYPE MultiSampleType;
+ int Width;
+ int Height;
+} D3DSURFACE_DESC;
+
+typedef struct tagD3DLOCKED_RECT {
+ int Pitch;
+ long pBits;
+} D3DLOCKED_RECT;
+
+typedef struct tagD3DRASTER_STATUS {
+ long InVBLANK;
+ int ScanLine;
+} D3DRASTER_STATUS;
+
+typedef struct tagD3DGAMMARAMP {
+ short red[256];
+ short green[256];
+ short blue[256];
+} D3DGAMMARAMP;
+
+typedef struct tagD3DVOLUME_DESC {
+ CONST_D3DFORMAT Format;
+ CONST_D3DRESOURCETYPE Type;
+ long Usage;
+ CONST_D3DPOOL Pool;
+ int Size;
+ int Width;
+ int Height;
+ int Depth;
+} D3DVOLUME_DESC;
+
+typedef struct tagD3DLOCKED_BOX {
+ int RowPitch;
+ int SlicePitch;
+ long pBits;
+} D3DLOCKED_BOX;
+
+typedef struct tagD3DBOX {
+ int left;
+ int top;
+ int right;
+ int bottom;
+ int front;
+ int back;
+} D3DBOX;
+
+typedef struct tagD3DVERTEXBUFFER_DESC {
+ CONST_D3DFORMAT Format;
+ CONST_D3DRESOURCETYPE Type;
+ long Usage;
+ CONST_D3DPOOL Pool;
+ int Size;
+ long FVF;
+} D3DVERTEXBUFFER_DESC;
+
+typedef struct tagD3DINDEXBUFFER_DESC {
+ CONST_D3DFORMAT Format;
+ CONST_D3DRESOURCETYPE Type;
+ long Usage;
+ CONST_D3DPOOL Pool;
+ int Size;
+} D3DINDEXBUFFER_DESC;
+
+typedef struct tagD3DCOLORVALUE {
+ float r;
+ float g;
+ float b;
+ float a;
+} D3DCOLORVALUE;
+
+typedef struct tagD3DVECTOR {
+ float x;
+ float y;
+ float z;
+} D3DVECTOR;
+
+typedef struct tagD3DLIGHT8 {
+ CONST_D3DLIGHTTYPE Type;
+ D3DCOLORVALUE diffuse;
+ D3DCOLORVALUE specular;
+ D3DCOLORVALUE ambient;
+ D3DVECTOR Position;
+ D3DVECTOR Direction;
+ float Range;
+ float Falloff;
+ float Attenuation0;
+ float Attenuation1;
+ float Attenuation2;
+ float Theta;
+ float Phi;
+} D3DLIGHT8;
+
+typedef struct tagD3DCLIPSTATUS8 {
+ long ClipUnion;
+ long ClipIntersection;
+} D3DCLIPSTATUS8;
+
+typedef struct tagD3DMATRIX {
+ float m11;
+ float m12;
+ float m13;
+ float m14;
+ float m21;
+ float m22;
+ float m23;
+ float m24;
+ float m31;
+ float m32;
+ float m33;
+ float m34;
+ float m41;
+ float m42;
+ float m43;
+ float m44;
+} D3DMATRIX;
+
+typedef struct tagD3DVIEWPORT8 {
+ long x;
+ long y;
+ long Width;
+ long Height;
+ float MinZ;
+ float MaxZ;
+} D3DVIEWPORT8;
+
+typedef struct tagD3DMATERIAL8 {
+ D3DCOLORVALUE diffuse;
+ D3DCOLORVALUE ambient;
+ D3DCOLORVALUE specular;
+ D3DCOLORVALUE emissive;
+ float power;
+} D3DMATERIAL8;
+
+typedef struct tagD3DPLANE {
+ float a;
+ float b;
+ float c;
+ float d;
+} D3DPLANE;
+
+typedef struct tagLOGFONT {
+ long Height;
+ long Width;
+ long Escapement;
+ long orientation;
+ long Weight;
+ unsigned char Italic;
+ unsigned char Underline;
+ unsigned char StrikeOut;
+ unsigned char CharSet;
+ unsigned char OutPrecision;
+ unsigned char ClipPrecision;
+ unsigned char Quality;
+ unsigned char PitchAndFamily;
+ unsigned char FaceName[32];
+} LOGFONT;
+
+typedef struct tagD3DVECTOR2 {
+ float x;
+ float y;
+} D3DVECTOR2;
+
+typedef struct tagD3DXRTS_DESC {
+ long Width;
+ long Height;
+ long Format;
+ long DepthStencil;
+ long DepthStencilFormat;
+} D3DXRTS_DESC;
+
+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;
+
+//Interfaces
+
+[
+ object,
+ uuid(b96eebca-b326-4ea5-882f-2ff5bae021dd),
+ local
+]
+interface Direct3DSurface8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in, out] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ HRESULT GetContainer(
+ DXGUID *riid,
+ [out, retval] IUnknown **ppContainer
+ );
+ HRESULT GetDesc(
+ [out] D3DSURFACE_DESC *pDesc
+ );
+ HRESULT LockRect(
+ [in] D3DLOCKED_RECT *lockedRect,
+ [in] void *rect,
+ [in] long flags
+ );
+ HRESULT UnlockRect(
+ );
+};
+
+[
+ object,
+ uuid(928c088b-76b9-4c6b-a536-a590853876cd),
+ local
+]
+interface Direct3DSwapChain8 : IUnknown {
+ HRESULT Present(
+ [in] void *sourceRect,
+ [in] void *destRect,
+ [in] long hDestWindowOverride,
+ [in] void *dirtyRegion
+ );
+ HRESULT GetBackBuffer(
+ [in] int BackBuffer,
+ [in] CONST_D3DBACKBUFFERTYPE bufferType,
+ [out, retval] Direct3DSurface8 **ppBackBuffer
+ );
+};
+
+[
+ object,
+ uuid(1dd9e8da-1c77-4d40-b0cf-98fefdff9512),
+ local
+]
+interface Direct3D8 : IUnknown {
+ HRESULT RegisterSoftwareDevice(
+ [in] void *initializeFunction
+ );
+ int GetAdapterCount(
+ );
+ HRESULT GetAdapterIdentifier(
+ [in] int adapter,
+ [in] long flags,
+ [in, out] D3DADAPTER_IDENTIFIER8 *identifier
+ );
+ int GetAdapterModeCount(
+ [in] int adapter
+ );
+ HRESULT EnumAdapterModes(
+ [in] int adapter,
+ [in] int mode,
+ [in, out] D3DDISPLAYMODE *displayMode
+ );
+ HRESULT GetAdapterDisplayMode(
+ [in] int adapter,
+ [in, out] D3DDISPLAYMODE *displayMode
+ );
+ long CheckDeviceType(
+ [in] int adapter,
+ [in] CONST_D3DDEVTYPE checkType,
+ [in] CONST_D3DFORMAT displayFormat,
+ [in] CONST_D3DFORMAT backBufferFormat,
+ [in] long bWindowed
+ );
+ long CheckDeviceFormat(
+ [in] int adapter,
+ [in] CONST_D3DDEVTYPE deviceType,
+ [in] CONST_D3DFORMAT adapterFormat,
+ [in] long usage,
+ [in] CONST_D3DRESOURCETYPE rType,
+ [in] CONST_D3DFORMAT checkFormat
+ );
+ long CheckDeviceMultiSampleType(
+ [in] int adapter,
+ [in] CONST_D3DDEVTYPE deviceType,
+ [in] CONST_D3DFORMAT renderTargetFormat,
+ [in] long windowed,
+ [in] CONST_D3DMULTISAMPLE_TYPE multiSampleType
+ );
+ long CheckDepthStencilMatch(
+ [in] int Adapter,
+ [in] CONST_D3DDEVTYPE deviceType,
+ [in] CONST_D3DFORMAT adapterFormat,
+ [in] CONST_D3DFORMAT renderTargetFormat,
+ [in] CONST_D3DFORMAT depthStencilFormat
+ );
+ HRESULT GetDeviceCaps(
+ [in] int adapter,
+ [in] CONST_D3DDEVTYPE deviceType,
+ [in, out] D3DCAPS8 *caps
+ );
+ long GetAdapterMonitor(
+ [in] int adapter
+ );
+ HRESULT CreateDevice(
+ [in] int adapter,
+ [in] CONST_D3DDEVTYPE deviceType,
+ [in] long hFocusWindow,
+ [in] CONST_D3DCREATEFLAGS behaviorFlags,
+ [in] D3DPRESENT_PARAMETERS *presentationParameters,
+ [out, retval] Direct3DDevice8 **ppReturnedDeviceInterface
+ );
+};
+
+[
+ object,
+ uuid(e4cdd575-2866-4f01-b12e-7eece1ec9358),
+ local
+]
+interface Direct3DTexture8 : IUnknown {
+
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ long SetPriority(
+ [in] long priorityNew
+ );
+ long GetPriority(
+ );
+ void PreLoad(
+ );
+ CONST_D3DRESOURCETYPE GetType(
+ );
+ long SetLOD(
+ [in] long dwLODNew
+ );
+ long GetLOD(
+ );
+ long GetLevelCount(
+ );
+ HRESULT GetLevelDesc(
+ [in] int level,
+ [out] D3DSURFACE_DESC *pDesc
+ );
+ HRESULT GetSurfaceLevel(
+ [in] int Level,
+ [out, retval] Direct3DSurface8 **ppSurfaceLevel
+ );
+ HRESULT LockRect(
+ [in] int level,
+ [in] D3DLOCKED_RECT *lockedRect,
+ [in] void *rect,
+ [in] long flags
+ );
+ HRESULT UnlockRect(
+ [in] int level
+ );
+ HRESULT AddDirtyRect(
+ [in] void *dirtyRect
+ );
+};
+
+[
+ object,
+ uuid(BD7349F5-14F1-42E4-9C79-972380DB40C0),
+ local
+]
+interface Direct3DVolume8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in, out] void *data,
+ [in, out] long *sizeOfDataa
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ HRESULT GetContainer(
+ DXGUID *riid,
+ [out, retval] IUnknown **ppContainer
+ );
+ HRESULT GetDesc(
+ [out] D3DVOLUME_DESC *pDesc
+ );
+ HRESULT LockBox(
+ [in] D3DLOCKED_BOX *lockedVolume,
+ [in] void *box,
+ [in] long flags
+ );
+ HRESULT UnlockBox(
+ );
+};
+
+[
+ object,
+ uuid(4b8aaafa-140f-42ba-9131-597eafaa2ead),
+ local
+]
+ interface Direct3DVolumeTexture8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ long SetPriority(
+ [in] long priorityNew
+ );
+ long GetPriority(
+ );
+ void PreLoad(
+ );
+ CONST_D3DRESOURCETYPE GetType(
+ );
+ long SetLOD(
+ [in] long dwLODNew
+ );
+ long GetLOD(
+ );
+ long GetLevelCount(
+ );
+ HRESULT GetLevelDesc(
+ [in] int level,
+ [out] D3DVOLUME_DESC *pDesc
+ );
+ HRESULT GetVolumeLevel(
+ [in] int level,
+ [out, retval] Direct3DVolume8 **ppVolumeLevel
+ );
+ HRESULT LockBox(
+ [in] int iLevel,
+ [in] D3DLOCKED_BOX *pLockedVolume,
+ [in, out] void *box,
+ [in] long flags
+ );
+ HRESULT UnlockBox(
+ [in] int level
+ );
+ HRESULT AddDirtyBox(
+ [in] D3DBOX *dirtyBox
+ );
+};
+
+[
+ object,
+ uuid(3ee5b968-2aca-4c34-8bb5-7e0c3d19b750),
+ local
+]
+interface Direct3DCubeTexture8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ long SetPriority(
+ [in] long priorityNew
+ );
+ long GetPriority(
+ );
+ void PreLoad(
+ );
+ CONST_D3DRESOURCETYPE GetType(
+ );
+ long SetLOD(
+ [in] long dwLODNew
+ );
+ long GetLOD(
+ );
+ long GetLevelCount(
+ );
+ HRESULT GetLevelDesc(
+ [in] int Level,
+ [out] D3DSURFACE_DESC *pDesc
+ );
+ HRESULT GetCubeMapSurface(
+ [in] CONST_D3DCUBEMAP_FACES faceType,
+ [in] int level,
+ [out, retval] Direct3DSurface8 **ppCubeMapSurface
+ );
+ HRESULT LockRect(
+ [in] CONST_D3DCUBEMAP_FACES faceType,
+ [in] int level,
+ [in] D3DLOCKED_RECT *lockedRect,
+ [in] void *rect,
+ [in] long flags
+ );
+ HRESULT UnlockRect(
+ [in] CONST_D3DCUBEMAP_FACES faceType,
+ [in] int iLevel
+ );
+ HRESULT AddDirtyRect(
+ [in] CONST_D3DCUBEMAP_FACES faceType,
+ [in] void *dirtyRect
+ );
+};
+
+[
+ object,
+ uuid(8aeeeac7-05f9-44d4-b591-000b0df1cb95),
+ local
+]
+interface Direct3DVertexBuffer8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ long SetPriority(
+ [in] long priorityNew
+ );
+ long GetPriority(
+ );
+ void PreLoad(
+ );
+ CONST_D3DRESOURCETYPE GetType(
+ );
+ HRESULT Lock(
+ [in] int byteOffsetToLock,
+ [in] int byteSizeToLock,
+ [out] long *pData,
+ [in] long flags
+ );
+ HRESULT Unlock(
+ );
+ HRESULT GetDesc(
+ [out] D3DVERTEXBUFFER_DESC *pDesc
+ );
+};
+
+[
+ object,
+ uuid(0e689c9a-053d-44a0-9d92-db0e3d750f86),
+ local
+]
+interface Direct3DIndexBuffer8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in, out] void *data,
+ [in, out] long *sizeOfDataa
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ long SetPriority(
+ [in] long priorityNew
+ );
+ long GetPriority(
+ );
+ void PreLoad(
+ );
+ CONST_D3DRESOURCETYPE GetType(
+ );
+ HRESULT Lock(
+ [in] int cbOffsetToLock,
+ [in] int cbSizeToLock,
+ [out] long *pData,
+ [in] long flags
+ );
+ HRESULT Unlock(
+ );
+ HRESULT GetDesc(
+ [out] D3DINDEXBUFFER_DESC *pDesc
+ );
+};
+
+[
+ object,
+ uuid(b4211cfa-51b9-4a9f-ab78-db99b2bb678e),
+ local
+]
+interface Direct3DBaseTexture8 : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT SetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in] long sizeOfData,
+ [in] long flags
+ );
+ HRESULT GetPrivateData(
+ [in] DXGUID *refguid,
+ [in] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT FreePrivateData(
+ [in] DXGUID *refguid
+ );
+ long SetPriority(
+ [in] long priorityNew
+ );
+ long GetPriority(
+ );
+ void PreLoad(
+ );
+ CONST_D3DRESOURCETYPE GetType(
+ );
+ long SetLOD(
+ [in] long newLOD
+ );
+ long GetLOD(
+ );
+ long GetLevelCount(
+ );
+ };
+
+[
+ object,
+ uuid(7385e5df-8fe8-41d5-86b6-d7b48547b6cf),
+ local
+]
+interface Direct3DDevice8 : IUnknown {
+ long TestCooperativeLevel(
+ );
+ int GetAvailableTextureMem(
+ [in] CONST_D3DPOOL pool
+ );
+ HRESULT ResourceManagerDiscardBytes(
+ [in] long numberOfBytes
+ );
+ HRESULT GetDirect3D(
+ [out, retval] Direct3D8 **pD3D8
+ );
+ HRESULT GetDeviceCaps(
+ [out] D3DCAPS8 *caps
+ );
+ HRESULT GetDisplayMode(
+ [out] D3DDISPLAYMODE *pMode
+ );
+ HRESULT GetCreationParameters(
+ [out] D3DDEVICE_CREATION_PARAMETERS *pCreationParams
+ );
+ HRESULT SetCursorProperties(
+ [in] int xHotSpot,
+ [in] int yHotSpot,
+ [in] Direct3DSurface8 *cursorSurface
+ );
+ void SetCursorPosition(
+ [in] int xScreenSpace,
+ [in] int yScreenSpace,
+ [in] CONST_D3DSCPFLAGS flags
+ );
+ long ShowCursor(
+ [in] long bShow
+ );
+ HRESULT CreateAdditionalSwapChain(
+ [in] D3DPRESENT_PARAMETERS *presentationParameters,
+ [out, retval] Direct3DSwapChain8 **ppSwapChain
+ );
+ HRESULT Reset(
+ [in] D3DPRESENT_PARAMETERS *presentationParameters
+ );
+ HRESULT Present(
+ [in] void *pSourceRect,
+ [in] void *pDestRect,
+ [in] long hWndDestWindowOverride,
+ [in] void *pDirtyRegion
+ );
+ HRESULT GetBackBuffer(
+ [in] long backBuffer,
+ [in] CONST_D3DBACKBUFFERTYPE bufferType,
+ [out, retval] Direct3DSurface8 **ppBackBuffer
+ );
+ D3DRASTER_STATUS GetRasterStatus(
+ );
+ void SetGammaRamp(
+ [in] long dwFlags,
+ [in] D3DGAMMARAMP *pRamp
+ );
+ void GetGammaRamp(
+ [in, out] D3DGAMMARAMP *pRamp
+ );
+ HRESULT CreateTexture(
+ [in] int width,
+ [in] int height,
+ [in] int levels,
+ [in] long usage,
+ [in] CONST_D3DFORMAT format,
+ [in] CONST_D3DPOOL pool,
+ [out, retval] Direct3DTexture8 **ppMipMap
+ );
+ HRESULT CreateVolumeTexture(
+ [in] int width,
+ [in] int height,
+ [in] int depth,
+ [in] int levels,
+ [in] long usage,
+ [in] CONST_D3DFORMAT format,
+ [in] CONST_D3DPOOL pool,
+ [out, retval] Direct3DVolumeTexture8 **ppMipMap
+ );
+ HRESULT CreateCubeTexture(
+ [in] int edgeLength,
+ [in] int levels,
+ [in] long usage,
+ [in] CONST_D3DFORMAT format,
+ [in] CONST_D3DPOOL pool,
+ [out, retval] Direct3DCubeTexture8 **ppCubeMap
+ );
+ HRESULT CreateVertexBuffer(
+ [in] int lengthInBytes,
+ [in] long usage,
+ [in] long fvf,
+ [in] CONST_D3DPOOL pool,
+ [out, retval] Direct3DVertexBuffer8 **ppVertexBuffer
+ );
+ HRESULT CreateIndexBuffer(
+ [in] int LengthInBytes,
+ [in] long usage,
+ [in] CONST_D3DFORMAT format,
+ [in] CONST_D3DPOOL Pool,
+ [out, retval] Direct3DIndexBuffer8 **ppIndexBuffer
+ );
+ HRESULT CreateRenderTarget(
+ [in] int width,
+ [in] int height,
+ [in] CONST_D3DFORMAT format,
+ [in] CONST_D3DMULTISAMPLE_TYPE multiSample,
+ [in] long lockable,
+ [out, retval] Direct3DSurface8 **ppSurface
+ );
+ HRESULT CreateDepthStencilSurface(
+ [in] int width,
+ [in] int height,
+ [in] CONST_D3DFORMAT format,
+ [in] CONST_D3DMULTISAMPLE_TYPE multiSample,
+ [out, retval] Direct3DSurface8 **ppSurface
+ );
+ HRESULT CreateImageSurface(
+ [in] int width,
+ [in] int height,
+ [in] CONST_D3DFORMAT format,
+ [out, retval] Direct3DSurface8 **ppSurface
+ );
+ HRESULT CopyRects(
+ [in] Direct3DSurface8 *sourceSurface,
+ [in] void *firstElementOfSourceRectsArray,
+ [in] int numberOfRects,
+ [in] Direct3DSurface8 *destinationSurface,
+ [in] void *firstElementofDestPointArray
+ );
+ HRESULT UpdateTexture(
+ [in] Direct3DBaseTexture8 *sourceTexture,
+ Direct3DBaseTexture8 *pDestinationTexture
+ );
+ HRESULT GetFrontBuffer(
+ [in] Direct3DSurface8 *pDestSurface
+ );
+ HRESULT SetRenderTarget(
+ [in] Direct3DSurface8 *renderTarget,
+ [in] Direct3DSurface8 *newZStencil,
+ [in] long flags
+ );
+ HRESULT GetRenderTarget(
+ [out, retval] Direct3DSurface8 **ppRenderTarget
+ );
+ HRESULT GetDepthStencilSurface(
+ [out, retval] Direct3DSurface8 **zStencilSurface
+ );
+ HRESULT BeginScene(
+ );
+ HRESULT EndScene(
+ );
+ HRESULT Clear(
+ [in] long clearRectCount,
+ [in] void *clearD3DRect,
+ [in] CONST_D3DCLEARFLAGS flags,
+ [in] long color,
+ [in] float z,
+ [in] long stencil
+ );
+ HRESULT SetTransform(
+ [in] CONST_D3DTRANSFORMSTATETYPE transformType,
+ [in] D3DMATRIX *matrix
+ );
+ HRESULT GetTransform(
+ [in] CONST_D3DTRANSFORMSTATETYPE transformType,
+ [out] D3DMATRIX *matrix
+ );
+ HRESULT MultiplyTransform(
+ [in] CONST_D3DTRANSFORMSTATETYPE transformType,
+ [in] D3DMATRIX *matrix
+ );
+ HRESULT SetViewport(
+ [in] D3DVIEWPORT8 *viewport
+ );
+ HRESULT GetViewport(
+ [out] D3DVIEWPORT8 *viewport
+ );
+ HRESULT SetMaterial(
+ [in] D3DMATERIAL8 *material
+ );
+ HRESULT GetMaterial(
+ [out] D3DMATERIAL8 *material
+ );
+ HRESULT SetLight(
+ [in] long index,
+ [in] D3DLIGHT8 *light
+ );
+ HRESULT GetLight(
+ [in] long index,
+ [out] D3DLIGHT8 *light
+ );
+ HRESULT LightEnable(
+ [in] long index,
+ [in] long enabled
+ );
+ HRESULT GetLightEnable(
+ [in] long index,
+ [out, retval] long *enabled
+ );
+ HRESULT SetClipPlane(
+ [in] long index,
+ [in] D3DPLANE *plane
+ );
+ HRESULT GetClipPlane(
+ [in] long index,
+ [out] D3DPLANE *plane
+ );
+ HRESULT SetRenderState(
+ [in] CONST_D3DRENDERSTATETYPE stateType,
+ [in] long value
+ );
+ HRESULT GetRenderState(
+ [in] CONST_D3DRENDERSTATETYPE stateType,
+ [out, retval] long *value
+ );
+ HRESULT BeginStateBlock(
+ );
+ HRESULT EndStateBlock(
+ [out, retval] long *blockid
+ );
+ HRESULT ApplyStateBlock(
+ [in] long blockid
+ );
+ HRESULT CaptureStateBlock(
+ [in] long blockid
+ );
+ HRESULT DeleteStateBlock(
+ [in] long blockid
+ );
+ HRESULT CreateStateBlock(
+ [in] CONST_D3DSTATEBLOCKTYPE blocktype,
+ [out, retval] long *blockid
+ );
+ HRESULT SetClipStatus(
+ [in] D3DCLIPSTATUS8 *clipstatus
+ );
+ HRESULT GetClipStatus(
+ [out] D3DCLIPSTATUS8 *clipstatus
+ );
+ HRESULT GetTexture(
+ [in] long stage,
+ [out, retval] Direct3DBaseTexture8 **texture
+ );
+ HRESULT SetTexture(
+ [in] long stage,
+ [in] Direct3DBaseTexture8 *texture
+ );
+ HRESULT GetTextureStageState(
+ [in] long stage,
+ [in] CONST_D3DTEXTURESTAGESTATETYPE stateType,
+ [out, retval] long *state
+ );
+ HRESULT SetTextureStageState(
+ [in] long stage,
+ [in] CONST_D3DTEXTURESTAGESTATETYPE stateType,
+ [in] long state
+ );
+ HRESULT ValidateDevice(
+ [out, retval] long *ret
+ );
+ HRESULT GetInfo(
+ [in] long flags,
+ [in, out] void *info,
+ [in] long size
+ );
+ HRESULT SetPaletteEntries(
+ [in] int paletteNumber,
+ [in] void *arrayOfEntries
+ );
+ HRESULT GetPaletteEntries(
+ [in] int paletteNumber,
+ [in, out] void *arrayOfEntries
+ );
+ HRESULT SetCurrentTexturePalette(
+ [in] int paletteNumber
+ );
+ HRESULT GetCurrentTexturePalette(
+ [out, retval] int *paletteNumber
+ );
+ HRESULT DrawPrimitive(
+ [in] CONST_D3DPRIMITIVETYPE primitiveType,
+ [in] int startVertex,
+ [in] int primitiveCount
+ );
+ HRESULT DrawIndexedPrimitive(
+ [in] CONST_D3DPRIMITIVETYPE primitiveType,
+ [in] int minIndex,
+ [in] int numIndices,
+ [in] int startIndex,
+ [in] int primitiveCount
+ );
+ HRESULT DrawPrimitiveUP(
+ [in] CONST_D3DPRIMITIVETYPE primitiveType,
+ [in] int primitiveCount,
+ [in] void *vertexStreamZeroDataArray,
+ [in] int vertexStreamZeroStride
+ );
+ HRESULT DrawIndexedPrimitiveUP(
+ [in] CONST_D3DPRIMITIVETYPE primitiveType,
+ [in] int minVertexIndex,
+ [in] int numVertexIndices,
+ [in] int primitiveCount,
+ [in] void *IndexDataArray,
+ [in] CONST_D3DFORMAT indexDataFormat,
+ [in] void *vertexStreamZeroDataArray,
+ [in] int vertexStreamZeroStride
+ );
+ HRESULT ProcessVertices(
+ [in] int srcStartIndex,
+ [in] int destIndex,
+ [in] int vertexCount,
+ [in] Direct3DVertexBuffer8 *destBuffer,
+ [in] long flags
+ );
+ HRESULT CreateVertexShader(
+ [in] long *declarationTokenArray,
+ [in, out] void *functionTokenArray,
+ [in, out] long *retHandle,
+ [in] long usage
+ );
+ HRESULT SetVertexShader(
+ [in] long vertexShaderHandle
+ );
+ HRESULT GetVertexShader(
+ [out, retval] long *pdwHandle
+ );
+ HRESULT DeleteVertexShader(
+ [in] long vertexShaderHandle
+ );
+ HRESULT SetVertexShaderConstant(
+ [in] long register,
+ [in] void *pConstantData,
+ [in] long constantCount
+ );
+ HRESULT GetVertexShaderConstant(
+ [in] long register,
+ [in, out] void *pConstantData,
+ [in] long constantCount
+ );
+ HRESULT GetVertexShaderDeclaration(
+ [in] long handle,
+ [in] void *data,
+ [in, out] long *sizeOfData
+ );
+ HRESULT GetVertexShaderFunction(
+ [in] long handle,
+ [in] void *pData,
+ [in, out] long *sizeOfData
+ );
+ HRESULT SetStreamSource(
+ [in] int streamNumber,
+ [in] Direct3DVertexBuffer8 *streamData,
+ [in] int stride
+ );
+ HRESULT GetStreamSource(
+ [in] int streamNumber,
+ [in, out] Direct3DVertexBuffer8 **retStreamData,
+ [in, out] int *retStride
+ );
+ HRESULT SetIndices(
+ [in] Direct3DIndexBuffer8 *indexData,
+ [in] int baseVertexIndex
+ );
+ HRESULT GetIndices(
+ [out] Direct3DIndexBuffer8 **retIndexData,
+ [out] int *retBaseVertexIndex
+ );
+ HRESULT CreatePixelShader(
+ [in] long *functionTokenArray,
+ [out, retval] long *pdwHandle
+ );
+ HRESULT SetPixelShader(
+ [in] long pixelShaderHandle
+ );
+ HRESULT GetPixelShader(
+ [out, retval] long *pdwHandle
+ );
+ HRESULT DeletePixelShader(
+ [in] long pixelShaderHandle
+ );
+ HRESULT SetPixelShaderConstant(
+ [in] long register,
+ [in] void *pConstantData,
+ [in] long constantCount
+ );
+ HRESULT GetPixelShaderConstant(
+ [in] long register,
+ [in, out] void *pConstantData,
+ [in] long constantCount
+ );
+ HRESULT GetPixelShaderFunction(
+ [in] long handle,
+ [in] void *pData,
+ [in, out] long *sizeOfData
+ );
+ HRESULT DrawRectPatch(
+ [in] long handle,
+ [in, out] float *numSegments,
+ void *surf
+ );
+ HRESULT DrawTriPatch(
+ [in] long handle,
+ [in, out] float *numSegments,
+ void *surf
+ );
+ HRESULT DeletePatch(
+ [in] long handle
+ );
+};
+
+[
+ object,
+ uuid(2d501df7-d253-4414-865f-a6d54a753138),
+ local
+]
+interface D3DXFont : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT GetLogFont(
+ [in, out] LOGFONT *logfont
+ );
+ HRESULT Begin(
+ );
+ int DrawTextA(
+ [in] unsigned char *text,
+ [in] int count,
+ [in] RECT *destRect,
+ [in] long format,
+ [in] long color
+ );
+ int DrawTextW(
+ [in] BSTR Text,
+ [in] int count,
+ [in] RECT *destRect,
+ [in] long format,
+ [in] long color
+ );
+ HRESULT End(
+ );
+ HRESULT OnLostDevice(
+ );
+ HRESULT OnResetDevice(
+ );
+};
+
+[
+ object,
+ uuid(932e6a7e-c68e-45dd-a7bf-53d19c86db1f),
+ local
+]
+interface D3DXBuffer : IUnknown {
+ long GetBufferPointer(
+ );
+ long GetBufferSize(
+ );
+};
+
+[
+ object,
+ uuid(ccae5c3b-4dd1-4d0f-997e-4684ca64557f),
+ local
+]
+interface D3DXMesh : IUnknown {
+ HRESULT DrawSubset(
+ [in] long AttribId
+ );
+ long GetNumFaces(
+ );
+ long GetNumVertices(
+ );
+ long GetFVF(
+ );
+ HRESULT GetDeclaration(
+ [in, out] long *declaration
+ );
+ long GetOptions(
+ );
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ret
+ );
+ HRESULT CloneMeshFVF(
+ [in] long options,
+ [in] long fvf,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXMesh **ppCloneMesh
+ );
+ HRESULT CloneMesh(
+ [in] long options,
+ [in] void *declaration,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXMesh **ppCloneMesh
+ );
+ HRESULT GetVertexBuffer(
+ [out, retval] Direct3DVertexBuffer8 **ppVB
+ );
+ HRESULT GetIndexBuffer(
+ [out, retval] Direct3DIndexBuffer8 **ppIB
+ );
+ HRESULT LockVertexBuffer(
+ [in] long flags,
+ [out, retval] long *VBuffAddr
+ );
+ HRESULT UnlockVertexBuffer(
+ );
+ HRESULT LockIndexBuffer(
+ [in] long flags,
+ [out, retval] long *IBuffAddr
+ );
+ HRESULT UnlockIndexBuffer(
+ );
+ HRESULT GetAttributeTable(
+ [in, out] void *attribEntry,
+ [in, out] long *attribTabSize
+ );
+ HRESULT ConvertPointRepsToAdjacency(
+ void *pointRep,
+ void *adjacency
+ );
+ HRESULT ConvertAdjacencyToPointReps(
+ void *adjacency,
+ void *pointRep
+ );
+ HRESULT GenerateAdjacency(
+ [in] float epsilon,
+ [in, out] void *adjacency
+ );
+ HRESULT LockAttributeBuffer(
+ [in] long flags,
+ [out, retval] long *pData
+ );
+ HRESULT UnlockAttributeBuffer(
+ );
+ HRESULT Optimize(
+ [in] long flags,
+ [in, out] void *adjacency,
+ [in, out] void *optAdj,
+ [in, out] void *faceRemap,
+ [out] D3DXBuffer **vertexRemapOut,
+ [out, retval] D3DXMesh **ppOptMesh
+ );
+ HRESULT OptimizeInplace(
+ [in] long flags,
+ [in] void *adjacencyIn,
+ [in, out] void *adjacencyOut,
+ [in] void *faceRemap,
+ [out] D3DXBuffer **vertexRemapOut
+ );
+};
+
+[
+ object,
+ uuid(15981aa8-1a05-48e3-bbe7-ff5d49654e3f),
+ local
+]
+interface D3DXPMesh : IUnknown {
+ HRESULT DrawSubset(
+ [in] long AttribId
+ );
+ long GetNumFaces(
+ );
+ long GetNumVertices(
+ );
+ long GetFVF(
+ );
+ HRESULT GetDeclaration(
+ [in, out] long *declaration
+ );
+ long GetOptions(
+ );
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ret
+ );
+ HRESULT CloneMeshFVF(
+ [in] long options,
+ [in] long fvf,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXMesh **ppCloneMesh
+ );
+ HRESULT CloneMesh(
+ [in] long options,
+ [in] void *declaration,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXMesh **ppCloneMesh
+ );
+ HRESULT GetVertexBuffer(
+ [out, retval] Direct3DVertexBuffer8 **ppVB
+ );
+ HRESULT GetIndexBuffer(
+ [out, retval] Direct3DIndexBuffer8 **ppIB
+ );
+ HRESULT LockVertexBuffer(
+ [in] long flags,
+ [out, retval] long *VBuffAddr
+ );
+ HRESULT UnlockVertexBuffer(
+ );
+ HRESULT LockIndexBuffer(
+ [in] long flags,
+ [out, retval] long *IBuffAddr
+ );
+ HRESULT UnlockIndexBuffer(
+ );
+ HRESULT GetAttributeTable(
+ [in, out] void *attribEntry,
+ [in, out] long *attribTabSize
+ );
+ HRESULT ConvertPointRepsToAdjacency(
+ void *pointRep,
+ void *adjacency
+ );
+ HRESULT ConvertAdjacencyToPointReps(
+ void *adjacency,
+ void *pointRep
+ );
+ HRESULT GenerateAdjacency(
+ [in] float epsilon,
+ [in, out] void *adjacency
+ );
+ HRESULT ClonePMeshFVF(
+ [in] long options,
+ [in] long fvf,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXPMesh **ppCloneMesh
+ );
+ HRESULT ClonePMesh(
+ [in] long options,
+ [in] void *declaration,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXPMesh **ppCloneMesh
+ );
+ HRESULT SetNumFaces(
+ [in] long faces
+ );
+ HRESULT SetNumVertices(
+ [in] long vertices
+ );
+ long GetMaxFaces(
+ );
+ long GetMinFaces(
+ );
+ long GetMaxVertices(
+ );
+ long GetMinVertices(
+ );
+ HRESULT Save(
+ [in] long pIStream,
+ [in] long materialBufferHandle,
+ [in] long numMaterials
+ );
+ HRESULT Optimize(
+ [in] long flags,
+ [in, out] void *adjacencyOut,
+ [in, out] void *faceRemap,
+ [in, out] D3DXBuffer **vertexRemapOut,
+ [out, retval] D3DXMesh **ppOptMesh
+ );
+ HRESULT OptimizeBaseLOD(
+ [in] long flags,
+ [in, out] void *faceRemap
+ );
+ HRESULT TrimByFaces(
+ [in] long newFacesMin,
+ [in] long newFacesMax,
+ [in, out] long *rgiFaceRemap,
+ [in, out] long *rgiVertRemap
+ );
+ HRESULT TrimByVertices(
+ [in] long newVerticesMin,
+ [in] long newVerticesMax,
+ [in, out] long *rgiFaceRemap,
+ [in, out] long *rgiVertRemap
+ );
+ HRESULT GetAdjacency(
+ [out] void *adjacencyOut
+ );
+};
+
+[
+ object,
+ uuid(bc3bbde2-1f7d-11d3-b929-00c04f68dc23),
+ local
+]
+interface D3DXSPMesh : IUnknown {
+ long GetNumFaces(
+ );
+ long GetNumVertices(
+ );
+ long GetFVF(
+ );
+ HRESULT GetDeclaration(
+ [in, out] long *declaration
+ );
+ long GetOptions(
+ );
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ret
+ );
+ HRESULT CloneMeshFVF(
+ [in] long options,
+ [in] long fvf,
+ [in] Direct3DDevice8 *device,
+ [in, out] void *adjacencyOut,
+ [in, out] void *vertexRemapOut,
+ [out, retval] D3DXPMesh **ppCloneMesh
+ );
+ HRESULT CloneMesh(
+ [in] long options,
+ [in] void *declaration,
+ [in] Direct3DDevice8 *device,
+ [in, out] void *adjacencyOut,
+ [in, out] void *vertexRemapOut,
+ [out, retval] D3DXPMesh **ppCloneMesh
+ );
+ HRESULT ClonePMeshFVF(
+ [in] long options,
+ [in] long fvf,
+ [in] Direct3DDevice8 *pD3D,
+ [in, out] void *vertexRemapOut,
+ [out, retval] D3DXPMesh **ppCloneMesh
+ );
+ HRESULT ClonePMesh(
+ [in] long options,
+ [in] void *declaration,
+ [in] Direct3DDevice8 *pD3D,
+ [in, out] void *vertexRemapOut,
+ [out, retval] D3DXPMesh **ppCloneMesh
+ );
+ HRESULT ReduceFaces(
+ [in] long faces
+ );
+ HRESULT ReduceVertices(
+ [in] long vertices
+ );
+ long GetMaxFaces(
+ );
+ long GetMaxVertices(
+ );
+};
+
+[
+ object,
+ uuid(2a835771-bf4d-43f4-8e14-82a809f17d8a),
+ local
+]
+interface D3DXBaseMesh : IUnknown {
+ HRESULT DrawSubset(
+ [in] long attribId
+ );
+ long GetNumFaces(
+ );
+ long GetNumVertices(
+ );
+ long GetFVF(
+ );
+ HRESULT GetDeclaration(
+ [in, out] long *declaration
+ );
+ long GetOptions(
+ );
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ret
+ );
+ HRESULT CloneMeshFVF(
+ [in] long options,
+ [in] long fvf,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXMesh **ppCloneMesh
+ );
+ HRESULT CloneMesh(
+ [in] long options,
+ [in] void *declaration,
+ [in] Direct3DDevice8 *device,
+ [out, retval] D3DXMesh **ppCloneMesh
+ );
+ HRESULT GetVertexBuffer(
+ [out, retval] Direct3DVertexBuffer8 **ppVB
+ );
+ HRESULT GetIndexBuffer(
+ [out, retval] Direct3DIndexBuffer8 **ppIB
+ );
+ HRESULT LockVertexBuffer(
+ [in] long flags,
+ [out, retval] long *VBuffAddr
+ );
+ HRESULT UnlockVertexBuffer(
+ );
+ HRESULT LockIndexBuffer(
+ [in] long flags,
+ [out, retval] long *IBuffAddr
+ );
+ HRESULT UnlockIndexBuffer(
+ );
+ HRESULT GetAttributeTable(
+ [in, out] void *attribEntry,
+ [in, out] long *attribTabSize
+ );
+ HRESULT ConvertPointRepsToAdjacency(
+ void *pointRep,
+ void *adjacency
+ );
+ HRESULT ConvertAdjacencyToPointReps(
+ void *adjacency,
+ void *pointRep
+ );
+ HRESULT GenerateAdjacency(
+ [in] float epsilon,
+ [in, out] void *adjacency
+ );
+};
+
+[
+ object,
+ uuid(82a53844-f322-409e-a2e9-992e1104069d),
+ local
+]
+interface D3DXSkinMesh : IUnknown {
+ long GetNumFaces(
+ );
+ long GetNumVertices(
+ );
+ long GetFVF(
+ );
+ HRESULT GetDeclaration(
+ [in, out] long *declaration
+ );
+ long GetOptions(
+ );
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ret
+ );
+ HRESULT GetVertexBuffer(
+ [out, retval] Direct3DVertexBuffer8 **ppVB
+ );
+ HRESULT GetIndexBuffer(
+ [out, retval] Direct3DIndexBuffer8 **ppIB
+ );
+ HRESULT LockVertexBuffer(
+ [in] long flags,
+ [out, retval] long *VBuffAddr
+ );
+ HRESULT UnlockVertexBuffer(
+ );
+ HRESULT LockIndexBuffer(
+ [in] long flags,
+ [out, retval] long *IBuffAddr
+ );
+ HRESULT UnlockIndexBuffer(
+ );
+ HRESULT LockAttributeBuffer(
+ [in] long flags,
+ [out, retval] long *pData
+ );
+ HRESULT UnlockAttributeBuffer(
+ );
+ long GetNumBones(
+ );
+ HRESULT GetOriginalMesh(
+ [out, retval] D3DXMesh **pMesh
+ );
+ HRESULT SetBoneInfluence(
+ [in] long bone,
+ [in] long numInfluences,
+ [in] long *vertices,
+ [in] float *weights
+ );
+ long GetNumBoneInfluences(
+ [in] long bone
+ );
+ HRESULT GetBoneInfluence(
+ [in] long bone,
+ [in, out] long *vertices,
+ [in, out] float *weights
+ );
+ HRESULT GetMaxVertexInfluences(
+ [out, retval] long *maxVertexInfluences
+ );
+ HRESULT GetMaxFaceInfluences(
+ [out, retval] long *maxFaceInfluences
+ );
+ HRESULT ConvertToBlendedMesh(
+ [in] long options,
+ [in] void *adjacencyIn,
+ [in, out] void *adjacencyOut,
+ [in, out] long *retNumBoneCombinations,
+ [in, out] D3DXBuffer **retBoneCombinationTable,
+ [in, out] void *pFaceRemap,
+ [in, out] D3DXBuffer **vertexRemap,
+ [out, retval] D3DXMesh **retMesh
+ );
+ HRESULT ConvertToIndexedBlendedMesh(
+ [in] long options,
+ [in] void *adjacencyIn,
+ [in] long paletteSize,
+ [in, out] void *adjacencyOut,
+ [in, out] long *retNumBoneCombinations,
+ [in, out] D3DXBuffer **retBoneCombinationTable,
+ [in, out] void *pFaceRemap,
+ [in, out] D3DXBuffer **vertexRemap,
+ [out, retval] D3DXMesh **retMesh
+ );
+ HRESULT GenerateSkinnedMesh(
+ [in] long options,
+ [in] float minWeight,
+ [in] void *adjacencyIn,
+ [in, out] void *adjacencyOut,
+ [in, out] void *pFaceRemap,
+ [in, out] D3DXBuffer **vertexRemap,
+ [out, retval] D3DXMesh **retMesh
+ );
+ HRESULT UpdateSkinnedMesh(
+ [in] void *boneTransformsIn,
+ [in] D3DMATRIX *boneInvTransforms,
+ [in, out] D3DXMesh *retMesh
+ );
+};
+
+[
+ object,
+ uuid(e8691849-87b8-4929-9050-1b0542d5538c),
+ local
+]
+interface D3DXSprite : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT Begin(
+ );
+ HRESULT Draw(
+ [in] Direct3DTexture8 *srcTexture,
+ [in] void *srcRect,
+ [in] D3DVECTOR2 *scaling,
+ [in] D3DVECTOR2 *rotationCenter,
+ [in] float rotation,
+ [in] D3DVECTOR2 *translation,
+ [in] long color
+ );
+ HRESULT DrawTransform(
+ [in] Direct3DTexture8 *srcTexture,
+ [in] void *srcRect,
+ [in] D3DMATRIX *transformMatrix,
+ [in] long color
+ );
+ HRESULT End(
+ );
+ HRESULT OnLostDevice(
+ );
+ HRESULT OnResetDevice(
+ );
+};
+
+[
+ object,
+ uuid(69cc587c-e40c-458d-b5d3-b029e18eb60a),
+ local
+]
+interface D3DXRenderToSurface : IUnknown {
+ HRESULT GetDevice(
+ [out, retval] Direct3DDevice8 **ppDevice
+ );
+ HRESULT GetDesc(
+ [out] D3DXRTS_DESC *parameters
+ );
+ HRESULT BeginScene(
+ [in] Direct3DSurface8 *surface,
+ [in] D3DVIEWPORT8 *viewport
+ );
+ HRESULT EndScene(
+ );
+ HRESULT OnLostDevice(
+ );
+ HRESULT OnResetDevice(
+ );
+};
+
+[
+ 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] CONST_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] CONST_D3DFORMAT *pixelformat,
+ [in] CONST_D3DPOOL pool
+ );
+ HRESULT CreateTexture(
+ [in] Direct3DDevice8 *device,
+ [in] long width,
+ [in] long height,
+ [in] long mipLevels,
+ [in] long usage,
+ [in] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT *pixelformat,
+ [in] CONST_D3DPOOL pool
+ );
+ HRESULT CreateCubeTexture(
+ [in] Direct3DDevice8 *device,
+ [in] long Size,
+ [in] long mipLevels,
+ [in] long usage,
+ [in] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT *pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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] CONST_D3DFORMAT pixelformat,
+ [in] CONST_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 **SkinMesh
+ );
+ 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] CONST_D3DFORMAT format,
+ [in] long depthStencil,
+ [in] CONST_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] CONST_D3DXIMAGE_FILEFORMAT destFormat,
+ [in] Direct3DSurface8 *srcSurface,
+ [in] PALETTEENTRY *srcPalette,
+ [in] RECT *srcRect
+ );
+ HRESULT SaveVolumeToFile(
+ [in] BSTR destFile,
+ [in] CONST_D3DXIMAGE_FILEFORMAT destFormat,
+ [in] Direct3DVolume8 *srcVolume,
+ [in] PALETTEENTRY *srcPalette,
+ [in] void *srcBox
+ );
+ HRESULT SaveTextureToFile(
+ [in] BSTR destFile,
+ [in] CONST_D3DXIMAGE_FILEFORMAT destFormat,
+ [in] Direct3DBaseTexture8 *srcTexture,
+ [in] PALETTEENTRY *srcPalette
+ );
+};
+
+//Coclasses
+
+[
+ uuid(58356c5d-0bfd-48ed-93c5-f4520b6233de),
+ helpstring("D3DX8"),
+ threading(both)
+]
+coclass D3DX8 { interface ID3DX8; };
--
2.14.2
More information about the wine-patches
mailing list