OpenBarnyard
 
Loading...
Searching...
No Matches
TResource.h
Go to the documentation of this file.
1#pragma once
2#include "Toshi/TNodeTree.h"
3
5
7
8typedef uint8_t TResourceState;
18
19class TResource : public TObject
20 , public TNodeTree<TResource>::TNode
21{
22public:
24
25 static constexpr size_t MAXNAMELEN = 14;
27
28 using t_RecurseCb = TBOOL ( * )( TResource* a_pResource, void* a_pUserData );
29
30public:
31 TResource();
32 ~TResource();
33
34 virtual TBOOL Create();
35 virtual TBOOL Validate();
36 virtual void Invalidate();
37 virtual void DestroyResource();
38 virtual TBOOL TryInvalidate();
39 virtual TBOOL TryValidate();
40 virtual void OnDestroy();
41
42 TBOOL IsDead() const { return m_State & TResourceState_Dead; }
43 TBOOL IsDying() const { return m_State & TResourceState_Dying; }
44 TBOOL IsValid() const { return m_State & TResourceState_Valid; }
45 TBOOL IsExternal() const { return m_State & TResourceState_External; }
46 TBOOL IsCreated() const { return m_State & TResourceState_Created; }
47 TBOOL IsSceneObject() const { return m_State & TResourceState_SceneObject; }
48 TBOOL IsInvalid() const { return ~m_State & TResourceState_Valid; }
49
50 void SetState( TResourceState newState ) { m_State = newState; }
51 void AddState( TResourceState state ) { m_State |= state; }
52
53 void SetParent( TResource* a_pParent );
54
55 const TCHAR* GetName() const { return m_Name; }
56 void SetName( const TCHAR* name );
57
58 TBOOL RecurseSimple( t_RecurseCb a_pCallback, TResource* a_pResource, void* a_pUserData );
59 static TBOOL Recurse( t_RecurseCb a_pCallback, TResource* a_pResource, TBOOL a_bFlag, void* a_pUserData );
60
62 void SetRenderer( TRenderInterface* pRenderer );
63
64 TUINT32 GetUId() const;
65 void SetUId( TUINT32 uid );
66
67private:
68 TRenderInterface* m_pRenderer; // 0x18
69 TCHAR m_Name[ MAXNAMELEN + 1 ]; // 0x1C
70 TResourceState m_State; // 0x2B
71 TUINT32 m_UId; // 0x2C
72};
73
uint8_t TResourceState
Definition TResource.h:8
TResourceState_
Definition TResource.h:10
@ TResourceState_SceneObject
Definition TResource.h:16
@ TResourceState_Dead
Definition TResource.h:15
@ TResourceState_Valid
Definition TResource.h:11
@ TResourceState_Dying
Definition TResource.h:13
@ TResourceState_External
Definition TResource.h:14
@ TResourceState_Created
Definition TResource.h:12
#define BITFLAG(x)
Definition Defines.h:10
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
char TCHAR
Definition Typedefs.h:20
uint32_t TUINT32
Definition Typedefs.h:13
bool TBOOL
Definition Typedefs.h:6
virtual void DestroyResource()
Definition TResource.cpp:52
TBOOL IsDead() const
Definition TResource.h:42
TBOOL IsCreated() const
Definition TResource.h:46
static constexpr size_t MAXNAMELEN
Definition TResource.h:25
virtual void OnDestroy()
Definition TResource.cpp:67
void SetUId(TUINT32 uid)
virtual void Invalidate()
Definition TResource.cpp:47
TBOOL IsExternal() const
Definition TResource.h:45
virtual TBOOL Validate()
Definition TResource.cpp:36
TDECLARE_CLASS(TResource, TObject)
void SetRenderer(TRenderInterface *pRenderer)
TBOOL IsValid() const
Definition TResource.h:44
virtual TBOOL Create()
Definition TResource.cpp:28
void SetParent(TResource *a_pParent)
Definition TResource.cpp:75
TBOOL RecurseSimple(t_RecurseCb a_pCallback, TResource *a_pResource, void *a_pUserData)
virtual TBOOL TryValidate()
Definition TResource.cpp:62
static TBOOL Recurse(t_RecurseCb a_pCallback, TResource *a_pResource, TBOOL a_bFlag, void *a_pUserData)
TUINT32 GetUId() const
TRenderInterface * GetRenderer() const
TBOOL IsInvalid() const
Definition TResource.h:48
TBOOL(*)(TResource *a_pResource, void *a_pUserData) t_RecurseCb
Definition TResource.h:28
friend TRenderInterface
Definition TResource.h:26
const TCHAR * GetName() const
Definition TResource.h:55
virtual TBOOL TryInvalidate()
Definition TResource.cpp:57
TBOOL IsSceneObject() const
Definition TResource.h:47
TBOOL IsDying() const
Definition TResource.h:43
void SetName(const TCHAR *name)
Definition TResource.cpp:94
void AddState(TResourceState state)
Definition TResource.h:51
void SetState(TResourceState newState)
Definition TResource.h:50