41 m_pLastRegMat =
TNULL;
56 for (
auto it = m_pLastRegMat; it !=
TNULL; it = it->GetNextRegMat() )
62 m_pLastRegMat =
TNULL;
75 m_pShader->StartFlush();
77 for (
auto it = m_pLastRegMat; it !=
TNULL; it = it->GetNextRegMat() )
82 m_pShader->EndFlush();
85 m_pLastRegMat =
TNULL;
94 if ( pCurrentRegMat !=
TNULL )
95 return pCurrentRegMat;
149 m_pLastRegMat = a_pRegMat;
172 m_pMaterial->PreRender();
174 for (
auto pPacket = m_pLastRenderPacket; pPacket !=
TNULL; pPacket = pPacket->GetNextPacket() )
176 pPacket->GetMesh()->GetOwnerShader()->Render( pPacket );
179 m_pLastRenderPacket =
TNULL;
181 m_pMaterial->PostRender();
190 m_pLastRenderPacket->SetNextPacket( pPreviousPacket );
192 m_pOrderTable->UseMaterial(
this );
193 m_pLastRenderPacket->SetMesh( pMesh );
194 m_pLastRenderPacket->SetMaterial( pMesh->
GetMaterial() );
196 return m_pLastRenderPacket;
Shader system for the Toshi engine.
#define HASANYFLAG(STATE, FLAG)
#define TOSHI_NAMESPACE_START
#define TOSHI_NAMESPACE_END
#define TPROFILER_SCOPE()
TRegMaterial * GetRegMaterial() const
void SetRegMaterial(TRegMaterial *a_pRegMaterial)
TMaterial * GetMaterial() const
void SetMaterial(TMaterial *a_pMaterial)
void SetFlags(State a_eFlags)
TRenderPacket * AddRenderPacket(TMesh *a_pMesh)
void SetNextRegMat(TRegMaterial *a_pRegMat)
void SetOrderTable(TOrderTable *a_pOrderTable)
TMaterial * GetMaterial() const
static TRenderPacket * s_pRenderPackets
static TUINT s_uiMaxMaterials
static TNodeList< TRegMaterial > s_llRegMatRegisteredList
static void CreateStaticData(TUINT a_uiMaxMaterials, TUINT a_uiMaxRenderPackets)
static void DeregisterMaterial(TRegMaterial *a_pRegMat)
static TUINT s_uiOrigMaxRenderPackets
static TUINT s_uiNumRenderPackets
static void DeregisterAllMaterials()
static void DestroyStaticData()
static TUINT s_uiMaxNumRenderPackets
void UseMaterial(TRegMaterial *a_pRegMat)
static TUINT s_uiNumRegisteredMaterials
static TUINT s_uiMaxRenderPackets
static TNodeList< TRegMaterial > s_llRegMatFreeList
static TRegMaterial * s_pRegMaterials
static TRenderPacket * AllocRenderPacket()
TRegMaterial * RegisterMaterial(TMaterial *a_pMat)