OpenBarnyard
 
Loading...
Searching...
No Matches
AWorldMesh.h
Go to the documentation of this file.
1#pragma once
2#include <Render/TMesh.h>
5
6class AWorldMesh : public Toshi::TMesh
7{
8public:
9 TDECLARE_CLASS( AWorldMesh, Toshi::TMesh );
10
11 struct SubMesh
12 {
16 Toshi::TIndexPoolResourceInterface* pIndexPool = TNULL;
17 };
18
19 static constexpr TUINT NUM_SUBMESHES = 1;
20 using LockBuffer = Toshi::TVertexPoolResourceInterface::LockBuffer;
21
22public:
23 AWorldMesh();
24
25 //-----------------------------------------------------------------------------
26 // Toshi::TMesh
27 //-----------------------------------------------------------------------------
28 virtual TBOOL Validate() override;
29 virtual void Invalidate() override;
30 virtual TBOOL Render() = 0;
31 virtual void OnDestroy() override;
32
33 //-----------------------------------------------------------------------------
34 // Own methods
35 //-----------------------------------------------------------------------------
36 virtual void Create( TUINT32 a_uiFlags, TUINT16 a_uiMaxVertices );
37 virtual TBOOL Lock( LockBuffer& a_rLockBuffer );
38 virtual void Unlock( TUINT32 a_uiNumVertices );
39 virtual Toshi::TVertexPoolResourceInterface* GetVertexPool();
40
41 SubMesh* GetSubMesh( TUINT a_uiIndex )
42 {
43 TASSERT( a_uiIndex < NUM_SUBMESHES );
44 return &m_pSubMeshes[ a_uiIndex ];
45 }
46
47private:
48 TBOOL CreateResource();
49 void DestroyResource();
50
51protected:
54 Toshi::TVertexPoolResourceInterface* m_pVertexPool;
56};
#define TASSERT(X,...)
Definition Defines.h:138
uint16_t TUINT16
Definition Typedefs.h:15
unsigned int TUINT
Definition Typedefs.h:8
#define TNULL
Definition Typedefs.h:23
uint32_t TUINT32
Definition Typedefs.h:13
bool TBOOL
Definition Typedefs.h:6
Definition TMesh.h:9
virtual TBOOL Lock(LockBuffer &a_rLockBuffer)
virtual void Invalidate() override
virtual void OnDestroy() override
virtual Toshi::TVertexPoolResourceInterface * GetVertexPool()
SubMesh * GetSubMesh(TUINT a_uiIndex)
Definition AWorldMesh.h:41
Toshi::TVertexPoolResourceInterface * m_pVertexPool
Definition AWorldMesh.h:54
static constexpr TUINT NUM_SUBMESHES
Definition AWorldMesh.h:19
virtual void Create(TUINT32 a_uiFlags, TUINT16 a_uiMaxVertices)
virtual TBOOL Render()=0
virtual void Unlock(TUINT32 a_uiNumVertices)
TDECLARE_CLASS(AWorldMesh, Toshi::TMesh)
virtual TBOOL Validate() override
TUINT32 m_uiFlags
Definition AWorldMesh.h:52
Toshi::TVertexPoolResourceInterface::LockBuffer LockBuffer
Definition AWorldMesh.h:20
TUINT16 m_uiMaxVertices
Definition AWorldMesh.h:53
SubMesh * m_pSubMeshes
Definition AWorldMesh.h:55
TMesh * pAssociatedMesh
Definition AWorldMesh.h:13
Toshi::TIndexPoolResourceInterface * pIndexPool
Definition AWorldMesh.h:16