[PATCH 2/3] dx8vb: Add D3DX8 coclass and ID3DX8 interface

Fabian Maurer dark.shadow4 at web.de
Mon Oct 23 12:40:45 CDT 2017


Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
 dlls/dx8vb/Makefile.in |   2 +
 dlls/dx8vb/dx8vb.idl   | 709 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 711 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..0b598be429
--- /dev/null
+++ b/dlls/dx8vb/dx8vb.idl
@@ -0,0 +1,709 @@
+/*
+ * 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;
+
+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
+    );
+};
+
+[
+    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