OpenBarnyard
 
Loading...
Searching...
No Matches
ASkinMesh Class Reference

#include <ASkinMesh.h>

Inheritance diagram for ASkinMesh:
ASkinMeshHAL

Public Types

using LockBuffer = Toshi::TVertexPoolResourceInterface::LockBuffer
 

Public Member Functions

 TDECLARE_CLASS (ASkinMesh, Toshi::TMesh)
 
 ASkinMesh ()
 
 ~ASkinMesh ()
 
virtual TBOOL Validate () override
 
virtual void Invalidate () override
 
virtual TBOOL Render () override
 
virtual void OnDestroy () override
 
virtual void Create (TUINT32 a_uiFlags, TUINT16 a_uiMaxVertices, TUINT16 a_uiNumSubMeshes)
 
virtual TBOOL Lock (LockBuffer &a_rLockBuffer)
 
virtual void Unlock (TUINT32 a_uiNumVertices)
 
virtual Toshi::TVertexPoolResourceInterface * GetVertexPool ()
 
TUINT16 GetNumSubMeshes () const
 
ASkinSubMeshGetSubMesh (TUINT16 a_uiIndex)
 

Protected Attributes

TUINT32 m_uiFlags
 
TUINT16 m_uiMaxVertices
 
TUINT16 m_uiNumSubMeshes
 
Toshi::TVertexPoolResourceInterface * m_pVertexPool
 
ASkinSubMeshm_pSubMeshes
 
void * m_Unk
 

Detailed Description

Definition at line 26 of file ASkinMesh.h.

Member Typedef Documentation

◆ LockBuffer

using ASkinMesh::LockBuffer = Toshi::TVertexPoolResourceInterface::LockBuffer

Definition at line 31 of file ASkinMesh.h.

Constructor & Destructor Documentation

◆ ASkinMesh()

ASkinMesh::ASkinMesh ( )

Definition at line 31 of file ASkinMesh.cpp.

33{
34}
#define TNULL
Definition Typedefs.h:23
TUINT16 m_uiNumSubMeshes
Definition ASkinMesh.h:63
Toshi::TVertexPoolResourceInterface * m_pVertexPool
Definition ASkinMesh.h:64
TUINT32 m_uiFlags
Definition ASkinMesh.h:61
void * m_Unk
Definition ASkinMesh.h:66
TUINT16 m_uiMaxVertices
Definition ASkinMesh.h:62

◆ ~ASkinMesh()

ASkinMesh::~ASkinMesh ( )

Definition at line 36 of file ASkinMesh.cpp.

37{
38}

Member Function Documentation

◆ Create()

void ASkinMesh::Create ( TUINT32 a_uiFlags,
TUINT16 a_uiMaxVertices,
TUINT16 a_uiNumSubMeshes )
virtual

Definition at line 70 of file ASkinMesh.cpp.

71{
72 TASSERT( !IsCreated() );
73
74 m_uiMaxVertices = a_uiMaxVertices;
75 m_uiFlags = a_uiFlags;
76 m_uiNumSubMeshes = a_uiNumSubMeshes;
77
78 if ( CreateResource() )
79 {
80 BaseClass::Create();
81 }
82 else
83 {
84 TASSERT( !"Couldn't create ASkinMesh" );
85 }
86}
#define TASSERT(X,...)
Definition Defines.h:138

◆ GetNumSubMeshes()

TUINT16 ASkinMesh::GetNumSubMeshes ( ) const

Definition at line 119 of file ASkinMesh.cpp.

120{
121 return m_uiNumSubMeshes;
122}

◆ GetSubMesh()

ASkinSubMesh * ASkinMesh::GetSubMesh ( TUINT16 a_uiIndex)

Definition at line 124 of file ASkinMesh.cpp.

125{
126 TASSERT( a_uiIndex < m_uiNumSubMeshes );
127 return &m_pSubMeshes[ a_uiIndex ];
128}
ASkinSubMesh * m_pSubMeshes
Definition ASkinMesh.h:65

◆ GetVertexPool()

Toshi::TVertexPoolResourceInterface * ASkinMesh::GetVertexPool ( )
virtual

Definition at line 114 of file ASkinMesh.cpp.

115{
116 return m_pVertexPool;
117}

◆ Invalidate()

void ASkinMesh::Invalidate ( )
overridevirtual

Definition at line 53 of file ASkinMesh.cpp.

54{
55 BaseClass::Invalidate();
56}

◆ Lock()

TBOOL ASkinMesh::Lock ( LockBuffer & a_rLockBuffer)
virtual

Definition at line 88 of file ASkinMesh.cpp.

89{
90 TASSERT( 0 == ( m_uiFlags & FLAG_LOCKED ) );
91
92 if ( m_pVertexPool->Lock( &a_rLockBuffer ) )
93 {
94 m_uiFlags |= FLAG_LOCKED;
95 return TTRUE;
96 }
97
98 return TFALSE;
99}
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25

◆ OnDestroy()

void ASkinMesh::OnDestroy ( )
overridevirtual

Definition at line 63 of file ASkinMesh.cpp.

64{
65 AModelLoader::DestroyMaterial( m_pMaterial );
66 DestroyResource();
67 BaseClass::OnDestroy();
68}
static void DestroyMaterial(Toshi::TMaterial *a_pMaterial)

◆ Render()

TBOOL ASkinMesh::Render ( )
overridevirtual

Reimplemented in ASkinMeshHAL.

Definition at line 58 of file ASkinMesh.cpp.

59{
60 return TTRUE;
61}

◆ TDECLARE_CLASS()

ASkinMesh::TDECLARE_CLASS ( ASkinMesh ,
Toshi::TMesh  )

◆ Unlock()

void ASkinMesh::Unlock ( TUINT32 a_uiNumVertices)
virtual

Definition at line 101 of file ASkinMesh.cpp.

102{
103 TASSERT( 0 != ( m_uiFlags & FLAG_LOCKED ) );
104
105 if ( TINT16( a_uiNumVertices ) == -1 )
106 {
107 a_uiNumVertices = m_pVertexPool->GetNumVertices();
108 }
109
110 m_pVertexPool->Unlock( a_uiNumVertices );
111 m_uiFlags &= ~FLAG_LOCKED;
112}
int16_t TINT16
Definition Typedefs.h:14

◆ Validate()

TBOOL ASkinMesh::Validate ( )
overridevirtual

Definition at line 40 of file ASkinMesh.cpp.

41{
42 if ( !IsValidated() )
43 {
45
46 m_pVertexPool->Validate();
47 BaseClass::Validate();
48 }
49
50 return TTRUE;
51}
#define TVALIDPTR(PTR)
Definition Defines.h:139

Member Data Documentation

◆ m_pSubMeshes

ASkinSubMesh* ASkinMesh::m_pSubMeshes
protected

Definition at line 65 of file ASkinMesh.h.

◆ m_pVertexPool

Toshi::TVertexPoolResourceInterface* ASkinMesh::m_pVertexPool
protected

Definition at line 64 of file ASkinMesh.h.

◆ m_uiFlags

TUINT32 ASkinMesh::m_uiFlags
protected

Definition at line 61 of file ASkinMesh.h.

◆ m_uiMaxVertices

TUINT16 ASkinMesh::m_uiMaxVertices
protected

Definition at line 62 of file ASkinMesh.h.

◆ m_uiNumSubMeshes

TUINT16 ASkinMesh::m_uiNumSubMeshes
protected

Definition at line 63 of file ASkinMesh.h.

◆ m_Unk

void* ASkinMesh::m_Unk
protected

Definition at line 66 of file ASkinMesh.h.


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