OpenBarnyard
 
Loading...
Searching...
No Matches
TMaterial.h
Go to the documentation of this file.
1#pragma once
2#include "TTexture.h"
3
5
6class TRenderPacket;
7class TRegMaterial;
8class TShader;
9class TMesh;
10
11class TMaterial : public TObject
12{
13public:
15
16public:
17 static constexpr TUINT MAXTEXTURES = 6;
18 static constexpr TUINT NAMESIZELIMIT = 31;
19
20 typedef TUINT32 Flags;
33
35
36public:
37 TMaterial();
38 ~TMaterial();
39
40protected:
41 //-----------------------------------------------------------------------------
42 // Own methods
43 //-----------------------------------------------------------------------------
44 virtual void OnDestroy();
45 virtual TBOOL Create();
46 virtual void PreRender();
47 virtual void PostRender();
48
49public:
50 void Destroy();
51
52 TShader* GetShader() const;
53 void SetShader( TShader* a_pShader );
54
55 TTexture* GetTexture( TUINT32 a_iStage = 0 ) const;
56 void SetTexture( TUINT32 a_iStage, TTexture* a_pTexture );
57
58 TUINT32 GetTextureNum() const;
59 void SetTextureNum( TUINT32 a_iNumTextures );
60
61 void SetName( const TCHAR* a_szName );
62 void SetFlags( Flags a_eFlag, TBOOL a_bEnable );
63
65 void SetRegMaterial( TRegMaterial* a_pRegMaterial );
66
67 const TCHAR* GetName() const { return m_szName; }
68
69 TBOOL IsCreated() const;
70
72
73protected:
74 Flags m_Flags; // 0x04
80};
81
Texture system for the Toshi engine.
#define BITFLAG(x)
Definition Defines.h:10
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
unsigned int TUINT
Definition Typedefs.h:8
char TCHAR
Definition Typedefs.h:20
uint32_t TUINT32
Definition Typedefs.h:13
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_ALPHAUPDATE
Definition TMaterial.h:30
@ FLAGS_NO_CULL
Definition TMaterial.h:24
@ FLAGS_ALPHATEXTURE
Definition TMaterial.h:31
@ FLAGS_NO_DEPTH_TEST
Definition TMaterial.h:29
const TCHAR * GetName() const
Definition TMaterial.h:67
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
TDECLARE_CLASS(TMaterial, TObject)
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