OpenBarnyard
 
Loading...
Searching...
No Matches
TShader.cpp
Go to the documentation of this file.
1#include "ToshiPCH.h"
2#include "TShader.h"
3
4//-----------------------------------------------------------------------------
5// Enables memory debugging.
6// Note: Should be the last include!
7//-----------------------------------------------------------------------------
9
11
13
15{
16 m_State = State_None;
17 sm_oShaderList.AddShader( this );
18}
19
21{
22 sm_oShaderList.RemoveShader( this );
23}
24
26{
27 m_State &= ~State_Created;
28}
29
31{
32}
33
35{
36 m_State |= State_Created;
37 return TTRUE;
38}
39
41{
42 m_State |= State_Validated;
43 return TTRUE;
44}
45
47{
48 m_State &= ~State_Validated;
49}
50
52{
53 TShader* pLastShader = m_pRoot;
54
55 while ( pLastShader && pLastShader->m_pNextShader != TNULL )
56 pLastShader = pLastShader->m_pNextShader;
57
58 if ( pLastShader != TNULL )
59 pLastShader->m_pNextShader = pShader;
60 else
61 m_pRoot = pShader;
62
63 pShader->m_pNextShader = TNULL;
64}
65
67{
68 TShader* pCurrShader = m_pRoot;
69 TShader* pPrevShader = TNULL;
70 TBOOL bFound = TFALSE;
71
72 while ( pCurrShader )
73 {
74 if ( pCurrShader == pShader )
75 {
76 bFound = TTRUE;
77 break;
78 }
79
80 pPrevShader = pCurrShader;
81 pCurrShader = pCurrShader->m_pNextShader;
82 }
83
84 if ( bFound )
85 {
86 if ( pPrevShader )
87 {
88 TASSERT( m_pRoot != pShader );
89 pPrevShader->m_pNextShader = pShader->m_pNextShader;
90 }
91 else
92 {
93 TASSERT( m_pRoot == pShader );
94 m_pRoot = pShader->m_pNextShader;
95 }
96 }
97}
98
Shader system for the Toshi engine.
#define TASSERT(X,...)
Definition Defines.h:138
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TDEFINE_CLASS_NORUNTIME(...)
Definition TObject.h:138
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6
~TShader()
Definition TShader.cpp:20
virtual TBOOL Validate()
Definition TShader.cpp:40
virtual TBOOL Create()
Definition TShader.cpp:34
@ State_Created
Definition TShader.h:27
@ State_Validated
Definition TShader.h:28
@ State_None
Definition TShader.h:26
static TShaderList sm_oShaderList
Definition TShader.h:90
virtual void OnDestroy()
Definition TShader.cpp:25
virtual void Flush()
Definition TShader.cpp:30
virtual void Invalidate()
Definition TShader.cpp:46
TShader()
Definition TShader.cpp:14
void RemoveShader(TShader *pShader)
Definition TShader.cpp:66
void AddShader(TShader *pShader)
Definition TShader.cpp:51