OpenBarnyard
 
Loading...
Searching...
No Matches
AWorldMesh Class Referenceabstract

#include <AWorldMesh.h>

Inheritance diagram for AWorldMesh:
AWorldMeshHAL

Classes

struct  SubMesh
 

Public Types

using LockBuffer = Toshi::TVertexPoolResourceInterface::LockBuffer
 

Public Member Functions

 TDECLARE_CLASS (AWorldMesh, Toshi::TMesh)
 
 AWorldMesh ()
 
virtual TBOOL Validate () override
 
virtual void Invalidate () override
 
virtual TBOOL Render ()=0
 
virtual void OnDestroy () override
 
virtual void Create (TUINT32 a_uiFlags, TUINT16 a_uiMaxVertices)
 
virtual TBOOL Lock (LockBuffer &a_rLockBuffer)
 
virtual void Unlock (TUINT32 a_uiNumVertices)
 
virtual Toshi::TVertexPoolResourceInterface * GetVertexPool ()
 
SubMeshGetSubMesh (TUINT a_uiIndex)
 

Static Public Attributes

static constexpr TUINT NUM_SUBMESHES = 1
 

Protected Attributes

TUINT32 m_uiFlags
 
TUINT16 m_uiMaxVertices
 
Toshi::TVertexPoolResourceInterface * m_pVertexPool
 
SubMeshm_pSubMeshes
 

Detailed Description

Definition at line 6 of file AWorldMesh.h.

Member Typedef Documentation

◆ LockBuffer

using AWorldMesh::LockBuffer = Toshi::TVertexPoolResourceInterface::LockBuffer

Definition at line 20 of file AWorldMesh.h.

Constructor & Destructor Documentation

◆ AWorldMesh()

AWorldMesh::AWorldMesh ( )

Definition at line 17 of file AWorldMesh.cpp.

19{
20}
#define TNULL
Definition Typedefs.h:23
Toshi::TVertexPoolResourceInterface * m_pVertexPool
Definition AWorldMesh.h:54
TUINT32 m_uiFlags
Definition AWorldMesh.h:52
TUINT16 m_uiMaxVertices
Definition AWorldMesh.h:53

Member Function Documentation

◆ Create()

void AWorldMesh::Create ( TUINT32 a_uiFlags,
TUINT16 a_uiMaxVertices )
virtual

Definition at line 48 of file AWorldMesh.cpp.

49{
50 TASSERT( !IsCreated() );
51
52 m_uiMaxVertices = a_uiMaxVertices;
53 m_uiFlags = a_uiFlags;
54
55 if ( CreateResource() )
56 {
57 BaseClass::Create();
58 }
59 else
60 {
61 TASSERT( !"Couldn't create AWorldMesh" );
62 }
63}
#define TASSERT(X,...)
Definition Defines.h:138

◆ GetSubMesh()

SubMesh * AWorldMesh::GetSubMesh ( TUINT a_uiIndex)
inline

Definition at line 41 of file AWorldMesh.h.

42 {
43 TASSERT( a_uiIndex < NUM_SUBMESHES );
44 return &m_pSubMeshes[ a_uiIndex ];
45 }
static constexpr TUINT NUM_SUBMESHES
Definition AWorldMesh.h:19
SubMesh * m_pSubMeshes
Definition AWorldMesh.h:55

◆ GetVertexPool()

TVertexPoolResourceInterface * AWorldMesh::GetVertexPool ( )
virtual

Definition at line 91 of file AWorldMesh.cpp.

92{
93 return m_pVertexPool;
94}

◆ Invalidate()

void AWorldMesh::Invalidate ( )
overridevirtual

Definition at line 35 of file AWorldMesh.cpp.

36{
37 BaseClass::Invalidate();
38}

◆ Lock()

TBOOL AWorldMesh::Lock ( LockBuffer & a_rLockBuffer)
virtual

Definition at line 65 of file AWorldMesh.cpp.

66{
67 TASSERT( 0 == ( m_uiFlags & FLAG_LOCKED ) );
68
69 if ( m_pVertexPool->Lock( &a_rLockBuffer ) )
70 {
71 m_uiFlags |= FLAG_LOCKED;
72 return TTRUE;
73 }
74
75 return TFALSE;
76}
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25

◆ OnDestroy()

void AWorldMesh::OnDestroy ( )
overridevirtual

Definition at line 40 of file AWorldMesh.cpp.

41{
42 AModelLoader::DestroyMaterial( m_pMaterial );
43 DestroyResource();
44
45 BaseClass::OnDestroy();
46}
static void DestroyMaterial(Toshi::TMaterial *a_pMaterial)

◆ Render()

virtual TBOOL AWorldMesh::Render ( )
pure virtual

Implemented in AWorldMeshHAL.

◆ TDECLARE_CLASS()

AWorldMesh::TDECLARE_CLASS ( AWorldMesh ,
Toshi::TMesh  )

◆ Unlock()

void AWorldMesh::Unlock ( TUINT32 a_uiNumVertices)
virtual

Definition at line 78 of file AWorldMesh.cpp.

79{
80 TASSERT( 0 != ( m_uiFlags & FLAG_LOCKED ) );
81
82 if ( TINT16( a_uiNumVertices ) == -1 )
83 {
84 a_uiNumVertices = m_pVertexPool->GetNumVertices();
85 }
86
87 m_pVertexPool->Unlock( a_uiNumVertices );
88 m_uiFlags &= ~FLAG_LOCKED;
89}
int16_t TINT16
Definition Typedefs.h:14

◆ Validate()

TBOOL AWorldMesh::Validate ( )
overridevirtual

Definition at line 22 of file AWorldMesh.cpp.

23{
24 if ( !IsValidated() )
25 {
27
28 m_pVertexPool->Validate();
29 BaseClass::Validate();
30 }
31
32 return TTRUE;
33}
#define TVALIDPTR(PTR)
Definition Defines.h:139

Member Data Documentation

◆ m_pSubMeshes

SubMesh* AWorldMesh::m_pSubMeshes
protected

Definition at line 55 of file AWorldMesh.h.

◆ m_pVertexPool

Toshi::TVertexPoolResourceInterface* AWorldMesh::m_pVertexPool
protected

Definition at line 54 of file AWorldMesh.h.

◆ m_uiFlags

TUINT32 AWorldMesh::m_uiFlags
protected

Definition at line 52 of file AWorldMesh.h.

◆ m_uiMaxVertices

TUINT16 AWorldMesh::m_uiMaxVertices
protected

Definition at line 53 of file AWorldMesh.h.

◆ NUM_SUBMESHES

TUINT AWorldMesh::NUM_SUBMESHES = 1
staticconstexpr

Definition at line 19 of file AWorldMesh.h.


The documentation for this class was generated from the following files: