0001: // ----------------------------------------------------------------------------
0002: //
0003: // load.h - Load mesh
0004: //
0005: // Copyright (c) 2002 IMAGIRE Takashi (imagire@gmail.com)
0006: // All Rights Reserved.
0007: //
0008: // ----------------------------------------------------------------------------
0009: #ifndef _LOAD_H
0010: #define _LOAD_H
0011:
0012: #include <d3d8.h>
0013: #include <d3dx8.h>
0014:
0015: // ----------------------------------------------------------------------------
0016: // 頂点の定義
0017: // ----------------------------------------------------------------------------
0018: typedef struct {
0019: D3DXVECTOR4 position;
0020: D3DXVECTOR2 texcoord0;
0021: }D3D_CUSTOMVERTEX;
0022:
0023: #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1)
0024:
0025: extern DWORD dwDecl[];
0026:
0027: // ----------------------------------------------------------------------------
0028: // モデル
0029: // ----------------------------------------------------------------------------
0030:
0031: class CMyMesh{
0032: public:
0033: CMyMesh(){
0034: bActive = false;
0035: pVB = NULL;
0036: pIndex = NULL;
0037: pSubsetTable = NULL;
0038: pTextures = NULL;
0039: pMaterials = NULL;
0040: nFaces = nVertices = dwNumMaterials = 0;
0041: rot.x = rot.y = rot.z = 0;
0042: }
0043: bool bActive;
0044: float radius; // 大きさ
0045: D3DXVECTOR3 center; // 中心位置
0046: D3DXVECTOR3 rot;
0047:
0048: LPDIRECT3DVERTEXBUFFER8 pVB;
0049: LPDIRECT3DINDEXBUFFER8 pIndex;
0050: D3DXATTRIBUTERANGE *pSubsetTable;
0051: DWORD nFaces;
0052: DWORD nVertices;
0053: D3DMATERIAL8 *pMaterials; // メッシュの質感
0054: LPDIRECT3DTEXTURE8 *pTextures; // メッシュのテクスチャー
0055: DWORD dwNumMaterials; // マテリアルの数
0056:
0057: HRESULT Load(LPDIRECT3DDEVICE8 lpD3DDev, char *filename);
0058: void Release();
0059: };
0060: // ----------------------------------------------------------------------------
0061: // テクスチャー
0062: // ----------------------------------------------------------------------------
0063: class CTextureMgr{
0064: public:
0065: static HRESULT Load(LPDIRECT3DDEVICE8 lpD3DDev, const char *filename, LPDIRECT3DTEXTURE8 *ppTexture);
0066: static void Release(LPDIRECT3DTEXTURE8 pTexture);
0067: };
0068:
0069:
0070: #endif /* !_LOAD_H */
0071: