OpenBarnyard
 
Loading...
Searching...
No Matches
TMaterial.cpp
Go to the documentation of this file.
1#include "ToshiPCH.h"
2#include "TMaterial.h"
3#include "TOrderTable.h"
4
5//-----------------------------------------------------------------------------
6// Enables memory debugging.
7// Note: Should be the last include!
8//-----------------------------------------------------------------------------
10
12
14
15// $Barnyard: FUNCTION 006ccc60
25
26// $Barnyard: FUNCTION 006ccca0
27// $Barnyard: FUNCTION 006ccdc0
31
32// $Barnyard: FUNCTION 006cccc0
38
39// $Barnyard: FUNCTION 006cccb0
41{
42 TASSERT( TFALSE == IsCreated() );
44 return TTRUE;
45}
46
48{
49}
50
52{
53}
54
56{
57 OnDestroy();
58 delete this;
59}
60
62{
64 m_pShader = pShader;
65}
66
68{
69 return m_pShader;
70}
71
72void TMaterial::SetTextureNum( TUINT32 a_iNumTextures )
73{
74 TASSERT( a_iNumTextures <= MAXTEXTURES );
75 m_iNumTex = a_iNumTextures;
76}
77
78void TMaterial::SetTexture( TUINT32 a_iStage, TTexture* a_pTexture )
79{
80 TASSERT( a_iStage < MAXTEXTURES );
81 m_pTextures[ a_iStage ] = a_pTexture;
82}
83
85{
86 return m_iNumTex;
87}
88
89TTexture* TMaterial::GetTexture( TUINT32 a_iStage /*= 0*/ ) const
90{
91 return m_pTextures[ a_iStage ];
92}
93
94// $Barnyard: FUNCTION 006cccd0
95void TMaterial::SetName( const TCHAR* a_szName )
96{
97 if ( a_szName == TNULL )
98 m_szName[ 0 ] = '\0';
99
100 TINT iNameLen = TStringManager::String8Length( a_szName );
101
102 if ( NAMESIZELIMIT - 1 < iNameLen )
103 TUtil::Log( "[ERROR] %s is to long, needs to be less then %d characters\n", a_szName, NAMESIZELIMIT );
104
106}
107
108// $Barnyard: FUNCTION 006ccd10
109void TMaterial::SetFlags( Flags flag, TBOOL set /*= TFALSE*/ )
110{
111 if ( set )
112 {
113 if ( flag & ( FLAGS_NO_CULL | FLAGS_BLENDING | FLAGS_UNK3 ) )
114 {
116 }
117
118 m_Flags |= flag;
119 }
120 else
121 {
122 m_Flags &= ~flag;
123 }
124}
125
127{
128 return m_Flags & FLAGS_CREATED;
129}
130
132{
133 TVALIDPTR( a_pMesh );
135
136 return m_pRegMaterial->AddRenderPacket( a_pMesh );
137}
138
140{
141 m_pRegMaterial = pRegMaterial;
142}
143
148
#define TASSERT(X,...)
Definition Defines.h:138
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TVALIDPTR(PTR)
Definition Defines.h:139
#define TDEFINE_CLASS_NORUNTIME(...)
Definition TObject.h:138
char TCHAR
Definition Typedefs.h:20
#define TNULL
Definition Typedefs.h:23
uint32_t TUINT32
Definition Typedefs.h:13
int TINT
Definition Typedefs.h:7
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6
static constexpr TUINT NAMESIZELIMIT
Definition TMaterial.h:18
friend TRegMaterial
Definition TMaterial.h:34
void Destroy()
Definition TMaterial.cpp:55
virtual void PostRender()
Definition TMaterial.cpp:51
void SetName(const TCHAR *a_szName)
Definition TMaterial.cpp:95
TUINT32 GetTextureNum() const
Definition TMaterial.cpp:84
void SetFlags(Flags a_eFlag, TBOOL a_bEnable)
void SetShader(TShader *a_pShader)
Definition TMaterial.cpp:61
virtual void OnDestroy()
Definition TMaterial.cpp:33
TShader * m_pShader
Definition TMaterial.h:75
virtual TBOOL Create()
Definition TMaterial.cpp:40
TTexture * m_pTextures[MAXTEXTURES]
Definition TMaterial.h:78
TRegMaterial * m_pRegMaterial
Definition TMaterial.h:76
TUINT32 m_iNumTex
Definition TMaterial.h:77
TCHAR m_szName[NAMESIZELIMIT+1]
Definition TMaterial.h:79
TShader * GetShader() const
Definition TMaterial.cpp:67
void SetTextureNum(TUINT32 a_iNumTextures)
Definition TMaterial.cpp:72
virtual void PreRender()
Definition TMaterial.cpp:47
@ FLAGS_CREATED
Definition TMaterial.h:28
@ FLAGS_BLENDING
Definition TMaterial.h:25
@ FLAGS_NO_CULL
Definition TMaterial.h:24
static constexpr TUINT MAXTEXTURES
Definition TMaterial.h:17
void SetTexture(TUINT32 a_iStage, TTexture *a_pTexture)
Definition TMaterial.cpp:78
TUINT32 Flags
Definition TMaterial.h:20
TRenderPacket * AddRenderPacket(TMesh *a_pMesh)
TBOOL IsCreated() const
TRegMaterial * GetRegMaterial() const
Flags m_Flags
Definition TMaterial.h:74
TTexture * GetTexture(TUINT32 a_iStage=0) const
Definition TMaterial.cpp:89
void SetRegMaterial(TRegMaterial *a_pRegMaterial)
Definition TMesh.h:9
static TSIZE String8Length(const TCHAR *str)
static TCHAR * String8Copy(TCHAR *dst, const TCHAR *src, TSIZE size=-1)
static void MemClear(void *ptr, TSIZE size)
Definition TUtil.h:91
static void Log(const TCHAR *a_szFormat,...)
Definition TUtil.cpp:65