/* * * Copyright (C) Microsoft Corporation. All Rights Reserved. * * File: d3dx8shapes.h * Content: D3DX simple shapes * */ #include "d3dx8.h" #ifndef __D3DX8SHAPES_H__ #define __D3DX8SHAPES_H__ /* * Functions: */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* * D3DXCreatePolygon: * ------------------ * Creates a mesh containing an n-sided polygon. The polygon is centered * at the origin. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * Length Length of each side. * Sides Number of sides the polygon has. (Must be >= 3) * ppMesh The mesh object which will be created * ppAdjacency Returns a buffer containing adjacency info. Can be NULL. *------------------------------------------------------------------------- */ HRESULT WINAPI D3DXCreatePolygon( LPDIRECT3DDEVICE8 pDevice, FLOAT Length, UINT Sides, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency); /* * D3DXCreateBox: * -------------- * Creates a mesh containing an axis-aligned box. The box is centered at * the origin. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * Width Width of box (along X-axis) * Height Height of box (along Y-axis) * Depth Depth of box (along Z-axis) * ppMesh The mesh object which will be created * ppAdjacency Returns a buffer containing adjacency info. Can be NULL. */ HRESULT WINAPI D3DXCreateBox( LPDIRECT3DDEVICE8 pDevice, FLOAT Width, FLOAT Height, FLOAT Depth, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency); /* * D3DXCreateCylinder: * ------------------- * Creates a mesh containing a cylinder. The generated cylinder is * centered at the origin, and its axis is aligned with the Z-axis. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * Radius1 Radius at -Z end (should be >= 0.0f) * Radius2 Radius at +Z end (should be >= 0.0f) * Length Length of cylinder (along Z-axis) * Slices Number of slices about the main axis * Stacks Number of stacks along the main axis * ppMesh The mesh object which will be created * ppAdjacency Returns a buffer containing adjacency info. Can be NULL. *------------------------------------------------------------------------- */ HRESULT WINAPI D3DXCreateCylinder( LPDIRECT3DDEVICE8 pDevice, FLOAT Radius1, FLOAT Radius2, FLOAT Length, UINT Slices, UINT Stacks, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency); /*------------------------------------------------------------------------- * D3DXCreateSphere: * ----------------- * Creates a mesh containing a sphere. The sphere is centered at the * origin. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * Radius Radius of the sphere (should be >= 0.0f) * Slices Number of slices about the main axis * Stacks Number of stacks along the main axis * ppMesh The mesh object which will be created * ppAdjacency Returns a buffer containing adjacency info. Can be NULL. *------------------------------------------------------------------------- */ HRESULT WINAPI D3DXCreateSphere( LPDIRECT3DDEVICE8 pDevice, FLOAT Radius, UINT Slices, UINT Stacks, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency); /*------------------------------------------------------------------------- * D3DXCreateTorus: * ---------------- * Creates a mesh containing a torus. The generated torus is centered at * the origin, and its axis is aligned with the Z-axis. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * InnerRadius Inner radius of the torus (should be >= 0.0f) * OuterRadius Outer radius of the torue (should be >= 0.0f) * Sides Number of sides in a cross-section (must be >= 3) * Rings Number of rings making up the torus (must be >= 3) * ppMesh The mesh object which will be created * ppAdjacency Returns a buffer containing adjacency info. Can be NULL. *------------------------------------------------------------------------- */ HRESULT WINAPI D3DXCreateTorus( LPDIRECT3DDEVICE8 pDevice, FLOAT InnerRadius, FLOAT OuterRadius, UINT Sides, UINT Rings, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency); /*------------------------------------------------------------------------- * D3DXCreateTeapot: * ----------------- * Creates a mesh containing a teapot. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * ppMesh The mesh object which will be created * ppAdjacency Returns a buffer containing adjacency info. Can be NULL. *------------------------------------------------------------------------- */ HRESULT WINAPI D3DXCreateTeapot( LPDIRECT3DDEVICE8 pDevice, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency); /*------------------------------------------------------------------------- * D3DXCreateText: * --------------- * Creates a mesh containing the specified text using the font associated * with the device context. * * Parameters: * * pDevice The D3D device with which the mesh is going to be used. * hDC Device context, with desired font selected * pText Text to generate * Deviation Maximum chordal deviation from true font outlines * Extrusion Amount to extrude text in -Z direction * ppMesh The mesh object which will be created * pGlyphMetrics Address of buffer to receive glyph metric data (or NULL) *------------------------------------------------------------------------- */ HRESULT WINAPI D3DXCreateTextA( LPDIRECT3DDEVICE8 pDevice, HDC hDC, LPCSTR pText, FLOAT Deviation, FLOAT Extrusion, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency, LPGLYPHMETRICSFLOAT pGlyphMetrics); HRESULT WINAPI D3DXCreateTextW( LPDIRECT3DDEVICE8 pDevice, HDC hDC, LPCWSTR pText, FLOAT Deviation, FLOAT Extrusion, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency, LPGLYPHMETRICSFLOAT pGlyphMetrics); #ifdef UNICODE #define D3DXCreateText D3DXCreateTextW #else #define D3DXCreateText D3DXCreateTextA #endif #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __D3DX8SHAPES_H__ */