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
//-----------------------------------------------------------------------------
8
#include "
Core/TMemoryDebugOn.h
"
9
10
TOSHI_NAMESPACE_START
11
12
TDEFINE_CLASS_NORUNTIME
(
TShader
);
13
14
TShader::TShader
()
15
{
16
m_State =
State_None
;
17
sm_oShaderList
.AddShader(
this
);
18
}
19
20
TShader::~TShader
()
21
{
22
sm_oShaderList
.RemoveShader(
this
);
23
}
24
25
void
TShader::OnDestroy
()
26
{
27
m_State &=
~State_Created
;
28
}
29
30
void
TShader::Flush
()
31
{
32
}
33
34
TBOOL
TShader::Create
()
35
{
36
m_State |=
State_Created
;
37
return
TTRUE
;
38
}
39
40
TBOOL
TShader::Validate
()
41
{
42
m_State |=
State_Validated
;
43
return
TTRUE
;
44
}
45
46
void
TShader::Invalidate
()
47
{
48
m_State &=
~State_Validated
;
49
}
50
51
void
TShader::TShaderList::AddShader
(
TShader
* pShader )
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
66
void
TShader::TShaderList::RemoveShader
(
TShader
* pShader )
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
99
TOSHI_NAMESPACE_END
TMemoryDebugOn.h
TShader.h
Shader system for the Toshi engine.
TASSERT
#define TASSERT(X,...)
Definition
Defines.h:138
TOSHI_NAMESPACE_START
#define TOSHI_NAMESPACE_START
Definition
Defines.h:47
TOSHI_NAMESPACE_END
#define TOSHI_NAMESPACE_END
Definition
Defines.h:50
TDEFINE_CLASS_NORUNTIME
#define TDEFINE_CLASS_NORUNTIME(...)
Definition
TObject.h:138
TNULL
#define TNULL
Definition
Typedefs.h:23
TFALSE
#define TFALSE
Definition
Typedefs.h:24
TTRUE
#define TTRUE
Definition
Typedefs.h:25
TBOOL
bool TBOOL
Definition
Typedefs.h:6
TShader
Definition
TShader.h:18
TShader::~TShader
~TShader()
Definition
TShader.cpp:20
TShader::Validate
virtual TBOOL Validate()
Definition
TShader.cpp:40
TShader::Create
virtual TBOOL Create()
Definition
TShader.cpp:34
TShader::State_Created
@ State_Created
Definition
TShader.h:27
TShader::State_Validated
@ State_Validated
Definition
TShader.h:28
TShader::State_None
@ State_None
Definition
TShader.h:26
TShader::sm_oShaderList
static TShaderList sm_oShaderList
Definition
TShader.h:90
TShader::OnDestroy
virtual void OnDestroy()
Definition
TShader.cpp:25
TShader::Flush
virtual void Flush()
Definition
TShader.cpp:30
TShader::Invalidate
virtual void Invalidate()
Definition
TShader.cpp:46
TShader::TShader
TShader()
Definition
TShader.cpp:14
TShader::TShaderList::RemoveShader
void RemoveShader(TShader *pShader)
Definition
TShader.cpp:66
TShader::TShaderList::AddShader
void AddShader(TShader *pShader)
Definition
TShader.cpp:51
D:
_dev
OpenBarnyard
Source
Toshi
Source
Render
TShader.cpp
Generated by
1.13.2