OpenBarnyard
 
Loading...
Searching...
No Matches
TRegMaterial Class Reference

#include <TOrderTable.h>

Inheritance diagram for TRegMaterial:
TNodeList< T >::TNode

Public Types

enum  State_ : State { State_Registered = BITFLAG( 0 ) , State_Used = BITFLAG( 1 ) }
 
typedef TUINT32 State
 

Public Member Functions

 TRegMaterial ()
 
void Render ()
 
TRenderPacketAddRenderPacket (TMesh *a_pMesh)
 
State GetFlags () const
 
void SetFlags (State a_eFlags)
 
TOrderTableGetOrderTable () const
 
void SetOrderTable (TOrderTable *a_pOrderTable)
 
TMaterialGetMaterial () const
 
void SetMaterial (TMaterial *a_pMaterial)
 
TRegMaterialGetNextRegMat () const
 
void SetNextRegMat (TRegMaterial *a_pRegMat)
 
- Public Member Functions inherited from TNodeList< T >::TNode
constexpr TNode ()
 
constexpr TNode (const TNode &a_rcNode)
 
 TNode (TNode &&a_rNode)
 
T * Next () const
 
T * Prev () const
 
void Remove ()
 
void SetList (TNodeList *list)
 
TNodeListGetList () const
 
TBOOL IsLinked () const
 

Additional Inherited Members

- Protected Attributes inherited from TNodeList< T >::TNode
friend TNodeList
 
TNodeListm_pList
 
T * m_pNext
 
T * m_pPrev
 

Detailed Description

Definition at line 12 of file TOrderTable.h.

Member Typedef Documentation

◆ State

Definition at line 15 of file TOrderTable.h.

Member Enumeration Documentation

◆ State_

Enumerator
State_Registered 
State_Used 

Definition at line 16 of file TOrderTable.h.

17 {
19 State_Used = BITFLAG( 1 )
20 };
#define BITFLAG(x)
Definition Defines.h:10

Constructor & Destructor Documentation

◆ TRegMaterial()

TRegMaterial::TRegMaterial ( )
inline

Definition at line 23 of file TOrderTable.h.

24 {
25 m_State = 0;
26 m_pOrderTable = TNULL;
27 m_pMaterial = TNULL;
28 m_pLastRenderPacket = TNULL;
29 m_pNextRegMat = TNULL;
30 }
#define TNULL
Definition Typedefs.h:23

Member Function Documentation

◆ AddRenderPacket()

TRenderPacket * TRegMaterial::AddRenderPacket ( TMesh * a_pMesh)

Definition at line 185 of file TOrderTable.cpp.

186{
187 TRenderPacket* pPreviousPacket = m_pLastRenderPacket;
188
189 m_pLastRenderPacket = TOrderTable::AllocRenderPacket();
190 m_pLastRenderPacket->SetNextPacket( pPreviousPacket );
191
192 m_pOrderTable->UseMaterial( this );
193 m_pLastRenderPacket->SetMesh( pMesh );
194 m_pLastRenderPacket->SetMaterial( pMesh->GetMaterial() );
195
196 return m_pLastRenderPacket;
197}
static TRenderPacket * AllocRenderPacket()

◆ GetFlags()

State TRegMaterial::GetFlags ( ) const
inline

Definition at line 38 of file TOrderTable.h.

38{ return m_State; }

◆ GetMaterial()

TMaterial * TRegMaterial::GetMaterial ( ) const
inline

Definition at line 44 of file TOrderTable.h.

44{ return m_pMaterial; }

◆ GetNextRegMat()

TRegMaterial * TRegMaterial::GetNextRegMat ( ) const
inline

Definition at line 47 of file TOrderTable.h.

47{ return m_pNextRegMat; }

◆ GetOrderTable()

TOrderTable * TRegMaterial::GetOrderTable ( ) const
inline

Definition at line 41 of file TOrderTable.h.

41{ return m_pOrderTable; }

◆ Render()

void TRegMaterial::Render ( )

Definition at line 168 of file TOrderTable.cpp.

169{
171
172 m_pMaterial->PreRender();
173
174 for ( auto pPacket = m_pLastRenderPacket; pPacket != TNULL; pPacket = pPacket->GetNextPacket() )
175 {
176 pPacket->GetMesh()->GetOwnerShader()->Render( pPacket );
177 }
178
179 m_pLastRenderPacket = TNULL;
180 SetFlags( m_State & ~State_Used );
181 m_pMaterial->PostRender();
182}
#define TPROFILER_SCOPE()
Definition Profiler.h:17
void SetFlags(State a_eFlags)
Definition TOrderTable.h:39

◆ SetFlags()

void TRegMaterial::SetFlags ( State a_eFlags)
inline

Definition at line 39 of file TOrderTable.h.

39{ m_State = a_eFlags; }

◆ SetMaterial()

void TRegMaterial::SetMaterial ( TMaterial * a_pMaterial)
inline

Definition at line 45 of file TOrderTable.h.

45{ m_pMaterial = a_pMaterial; }

◆ SetNextRegMat()

void TRegMaterial::SetNextRegMat ( TRegMaterial * a_pRegMat)
inline

Definition at line 48 of file TOrderTable.h.

48{ m_pNextRegMat = a_pRegMat; }

◆ SetOrderTable()

void TRegMaterial::SetOrderTable ( TOrderTable * a_pOrderTable)
inline

Definition at line 42 of file TOrderTable.h.

42{ m_pOrderTable = a_pOrderTable; }

The documentation for this class was generated from the following files: