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

#include <ASysMesh.h>

Inheritance diagram for ASysMesh:
ASysMeshHAL

Classes

struct  LockBuffer
 

Public Member Functions

 TDECLARE_CLASS (ASysMesh, Toshi::TMesh)
 
 ASysMesh ()
 
virtual TBOOL Validate () override
 
virtual void Invalidate () override
 
virtual TBOOL Create (void *a_pUnk, const TCHAR *a_szSomeString)
 
virtual TBOOL CreatePools (TUINT32 a_uiFlags, TUINT16 a_uiMaxVertices, TUINT16 a_uiMaxIndices)
 
virtual TBOOL Lock (LockBuffer &a_rLockBuffer)
 
virtual void Unlock (TUINT32 a_uiNumVertices, TUINT32 a_uiNumIndices)
 
virtual Toshi::TVertexPoolResourceInterface * GetVertexPool ()
 
virtual Toshi::TIndexPoolResourceInterface * GetIndexPool ()
 
virtual void SetZBias (TINT a_iZBias)=0
 
TBOOL IsLocked () const
 

Detailed Description

Definition at line 8 of file ASysMesh.h.

Constructor & Destructor Documentation

◆ ASysMesh()

ASysMesh::ASysMesh ( )

Definition at line 15 of file ASysMesh.cpp.

16{
17 m_uiFlags = 0;
18 m_uiMaxVertices = 0;
19 m_uiMaxIndices = 0;
20 m_pVertexPool = TNULL;
21 m_pIndexPool = TNULL;
22 m_bFlag1 = TFALSE;
23 m_bFlag2 = TFALSE;
24}
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24

Member Function Documentation

◆ Create()

TBOOL ASysMesh::Create ( void * a_pUnk,
const TCHAR * a_szSomeString )
virtual

Definition at line 77 of file ASysMesh.cpp.

78{
79 m_SomeString = a_szSomeString;
80 return TMesh::Create();
81}
virtual TBOOL Create()
Definition TMesh.cpp:39

◆ CreatePools()

TBOOL ASysMesh::CreatePools ( TUINT32 a_uiFlags,
TUINT16 a_uiMaxVertices,
TUINT16 a_uiMaxIndices )
virtual

Definition at line 83 of file ASysMesh.cpp.

84{
85 m_uiFlags = a_uiResourcesFlags;
86 m_uiMaxVertices = a_uiMaxVertices;
87 m_uiMaxIndices = a_uiMaxIndices;
88
89 if ( !CreateResource() )
90 {
91 return TFALSE;
92 }
93
95 return TTRUE;
96}
#define TTRUE
Definition Typedefs.h:25

◆ GetIndexPool()

Toshi::TIndexPoolResourceInterface * ASysMesh::GetIndexPool ( )
virtual

Definition at line 198 of file ASysMesh.cpp.

199{
200 return m_pIndexPool;
201}

◆ GetVertexPool()

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

Definition at line 193 of file ASysMesh.cpp.

194{
195 return m_pVertexPool;
196}

◆ Invalidate()

void ASysMesh::Invalidate ( )
overridevirtual

Definition at line 43 of file ASysMesh.cpp.

44{
45 if ( m_pVertexPool && m_pIndexPool )
46 {
47 DestroyResources();
48 }
49
50 if ( IsValidated() )
51 {
53 }
54}
virtual void Invalidate()
Definition TMesh.cpp:34

◆ IsLocked()

TBOOL ASysMesh::IsLocked ( ) const
inline

Definition at line 39 of file ASysMesh.h.

39{ return m_uiFlags & FLAG_LOCKED; }

◆ Lock()

TBOOL ASysMesh::Lock ( LockBuffer & a_rLockBuffer)
virtual

Definition at line 158 of file ASysMesh.cpp.

159{
160 TASSERT( 0 == ( m_uiFlags & FLAG_LOCKED ) );
161
162 if ( m_pVertexPool->Lock( &a_rLockBuffer.VertexLock ) )
163 {
164 if ( m_pIndexPool->Lock( &a_rLockBuffer.IndexLock ) )
165 {
166 m_uiFlags |= FLAG_LOCKED;
167 return TTRUE;
168 }
169 }
170
171 return TFALSE;
172}
#define TASSERT(X,...)
Definition Defines.h:138

◆ SetZBias()

virtual void ASysMesh::SetZBias ( TINT a_iZBias)
pure virtual

Implemented in ASysMeshHAL.

◆ TDECLARE_CLASS()

ASysMesh::TDECLARE_CLASS ( ASysMesh ,
Toshi::TMesh  )

◆ Unlock()

void ASysMesh::Unlock ( TUINT32 a_uiNumVertices,
TUINT32 a_uiNumIndices )
virtual

Definition at line 174 of file ASysMesh.cpp.

175{
176 TASSERT( 0 != ( m_uiFlags & FLAG_LOCKED ) );
177
178 if ( TINT16( a_uiNumVertices ) == -1 )
179 {
180 a_uiNumVertices = m_pVertexPool->GetNumVertices();
181 }
182
183 if ( TINT16( a_uiNumIndices ) == -1 )
184 {
185 a_uiNumIndices = m_pIndexPool->GetNumIndices();
186 }
187
188 m_pVertexPool->Unlock( a_uiNumVertices );
189 m_pIndexPool->Unlock( a_uiNumIndices );
190 m_uiFlags &= FLAG_LOCKED;
191}
int16_t TINT16
Definition Typedefs.h:14

◆ Validate()

TBOOL ASysMesh::Validate ( )
overridevirtual

Definition at line 26 of file ASysMesh.cpp.

27{
28 if ( IsValidated() )
29 {
30 if ( m_SomeString.Length() == 0 && ( !m_pVertexPool || !m_pIndexPool ) )
31 {
32 return TFALSE;
33 }
34
35 m_pVertexPool->Validate();
36 m_pIndexPool->Validate();
38 }
39
40 return TTRUE;
41}
virtual TBOOL Validate()
Definition TMesh.cpp:28

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