0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009: #ifndef _LOAD_H
0010: #define _LOAD_H
0011:
0012: #include <d3d8.h>
0013: #include <d3dx8.h>
0014:
0015:
0016:
0017:
0018:
0019:
0020:
0021:
0022: typedef struct {
0023: float x,y,z;
0024: float nx,ny,nz;
0025: float tu0,tv0;
0026:
0027: }D3D_CUSTOMVERTEX;
0028: #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)
0029:
0030: extern DWORD dwDecl[];
0031:
0032: class CMyMesh{
0033: public:
0034: CMyMesh(){
0035: bActive = false;
0036: pVB = NULL;
0037: pIndex = NULL;
0038: pSubsetTable = NULL;
0039: pTextures = NULL;
0040: pMaterials = NULL;
0041: nFaces = nVertices = dwNumMaterials = 0;
0042: rot.x = rot.y = rot.z = 0;
0043: }
0044: bool bActive;
0045: float radius;
0046: D3DXVECTOR3 center;
0047: D3DXVECTOR3 rot;
0048:
0049: LPDIRECT3DVERTEXBUFFER8 pVB;
0050: LPDIRECT3DINDEXBUFFER8 pIndex;
0051: D3DXATTRIBUTERANGE *pSubsetTable;
0052: DWORD nFaces;
0053: DWORD nVertices;
0054: D3DMATERIAL8 *pMaterials;
0055: LPDIRECT3DTEXTURE8 *pTextures;
0056: DWORD dwNumMaterials;
0057:
0058: HRESULT Load(LPDIRECT3DDEVICE8 lpD3DDev, char *filename);
0059: void Release();
0060: };
0061:
0062:
0063:
0064: class CTextureMgr{
0065: public:
0066: static HRESULT Load(LPDIRECT3DDEVICE8 lpD3DDev, const char *filename, LPDIRECT3DTEXTURE8 *ppTexture);
0067: static void Release(LPDIRECT3DTEXTURE8 pTexture);
0068: };
0069:
0070:
0071:
0072: class CVertexShaderMgr{
0073: public:
0074: static HRESULT Load(LPDIRECT3DDEVICE8 lpD3DDev, const char *filename, DWORD *phVertexShader, const DWORD dwDecl[]);
0075: static void Release(LPDIRECT3DDEVICE8 lpD3DDev, DWORD *phVertexShader);
0076: };
0077:
0078:
0079:
0080: class CPixelShaderMgr{
0081: public:
0082: static HRESULT Load(LPDIRECT3DDEVICE8 lpD3DDev, const char *filename, DWORD *phPixelShader);
0083: static void Release(LPDIRECT3DDEVICE8 lpD3DDev, DWORD *phPixelShader);
0084: };
0085:
0086:
0087: #endif
0088: