/
GMeshBuffer.h
57 lines (46 loc) · 1.05 KB
/
GMeshBuffer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#pragma once
#include "GTexture.h"
#include "GStillEntity.h"
#include "GMeshData.h"
struct MeshNodeForLod //LODMeshµÄ½Úµã
{
ID3DXMesh *pMesh[LOD_MAX_LEVEL];
MeshNodeForLod()
{
dMemoryZero( pMesh, sizeof( pMesh ) );
}
};
class GMeshBufferNode
{
public:
GMeshBufferNode();
~GMeshBufferNode();
HRESULT MakeLod( DWORD* pAdj );
bool draw();
void Add(GMetrialData* data)
{
mRenderData.push_back(data);
}
WORD getSubCount() const { return mSubSetCount; }
void setSubCount(WORD val) { mSubSetCount = val; }
GMetrialData* getMaterial(CXIndex idx) const;
public:
ID3DXMesh* mMesh;
ID3DXMesh* getMesh() const { return mMesh; }
void setMesh(ID3DXMesh* val) { mMesh = val; }
WORD mSubSetCount;
GRenderDataArr mRenderData;
uString mFileName;
};
typedef CXMap<uString,GMeshBufferNode*> GMeshBufferNodeMap;
class GMeshManager
{
public:
GMeshManager( void );
~GMeshManager( void );
bool Init();
GMeshBufferNode* QueryCreate(const char* fileName);
public:
GMeshBufferNode* CreateFormFile( const char* fileName );
GMeshBufferNodeMap mMeshMap;
};