RenderPassManager Class Reference

#include <renderPassManager.h>

Inheritance diagram for RenderPassManager:

Inheritance graph
[legend]
List of all members.

Public Types

typedef Signal< bool(RenderBinManager *,
bool)> 
RenderBinEventSignal
 This signal is triggered when a render bin is about to be rendered.

Public Member Functions

 RenderPassManager ()
 ~RenderPassManager ()
void init ()
 Called by SceneGraph when GFX and materials are loaded.
void addInst (RenderInst *inst)
 Add a RenderInstance to the list.
void sort ()
 Sorts the list of RenderInst's per bin. (Normally, one should just call renderPass).
void render (SceneState *)
 Renders the list of RenderInsts (Normally, one should just call renderPass).
void clear ()
 Resets our allocated RenderInstances and Matrices. (Normally, one should just call renderPass).
void renderPass (SceneState *)
void setCamPos (const Point3F &camPos)
const Point3FgetCamPos () const
SceneGraphgetSceneManager ()
 Get scene manager which this render pass belongs to.
 DECLARE_CONOBJECT (RenderPassManager)
void resetCounters ()
U32 getAddInstCounter () const
U32 getAddInstPassCounter () const
Allocation interface
template<typename T>
T * allocInst ()
 Allocate a render instance, use like so: MyRenderInstType* t = gRenderInstMgr->allocInst<MyRenderInstType>(); Valid until clear called.
MatrixFallocXform (const MatrixF &data)
 Allocate a matrix, valid until clear called.
RenderBinManager interface
void addManager (RenderBinManager *mgr)
 Add a render bin manager to the list of render bin manager, this SceneRenderPassManager now owns the render bin manager and will free it when needed.
void removeManager (RenderBinManager *mgr)
 Removes a manager from render and process add lists.
void clearManagers ()
 Clears the render bin manager lists and free's the render bin managers.
S32 getManagerCount ()
 How many render bin managers do we have?
RenderBinManagergetManager (S32 i)
 Get the render manager at i.

Static Public Member Functions

static RenderBinEventSignalgetRenderBinSignal ()
static void initPersistFields ()
 Register dynamic fields in a subclass of ConsoleObject.

Static Public Attributes

static const RenderInstType RIT_Interior
static const RenderInstType RIT_InteriorDynamicLighting
static const RenderInstType RIT_Mesh
static const RenderInstType RIT_MeshDynamicLighting
static const RenderInstType RIT_Shadow
static const RenderInstType RIT_Sky
static const RenderInstType RIT_Object
static const RenderInstType RIT_ObjectTranslucent
static const RenderInstType RIT_Decal
static const RenderInstType RIT_Water
static const RenderInstType RIT_Foliage
static const RenderInstType RIT_Translucent
static const RenderInstType RIT_Begin
static const RenderInstType RIT_Custom
static const F32 PROCESSADD_NONE
static const F32 PROCESSADD_NORMAL

Private Types

typedef SimObject Parent

Private Member Functions

void _uninit ()
void _initBins ()
void _uninitBins ()
void _insertSort (Vector< RenderBinManager * > &list, RenderBinManager *mgr, bool renderOrder)

Private Attributes

MultiTypedChunker mRIAllocator
Chunker< MatrixFmXformAllocator
Vector< RenderBinManager * > mRenderBins
Vector< RenderBinManager * > mAddBins
SceneGraphmSceneManager
U32 mAddInstCount
 for debugging - incremented every call to addInst()
U32 mAddInstPassCount
 for debugging - incremented every call to addElement() in addInst()
Vector< U32mAddBinInstCounts
bool mInitialized
Point3F mCamPos

Static Private Attributes

static RenderBinEventSignalsmRenderBinSignal

Member Typedef Documentation

Reimplemented from SimObject.

This signal is triggered when a render bin is about to be rendered.

Params are render manager, and bool bStart which is true before rendering the bin and false after


Constructor & Destructor Documentation

RenderPassManager::RenderPassManager (  ) 

RenderPassManager::~RenderPassManager (  ) 


Member Function Documentation

void RenderPassManager::init (  ) 

Called by SceneGraph when GFX and materials are loaded.

template<typename T>
T* RenderPassManager::allocInst (  )  [inline]

Allocate a render instance, use like so: MyRenderInstType* t = gRenderInstMgr->allocInst<MyRenderInstType>(); Valid until clear called.

MatrixF* RenderPassManager::allocXform ( const MatrixF data  )  [inline]

Allocate a matrix, valid until clear called.

void RenderPassManager::addInst ( RenderInst inst  ) 

Add a RenderInstance to the list.

void RenderPassManager::sort (  ) 

Sorts the list of RenderInst's per bin. (Normally, one should just call renderPass).

void RenderPassManager::render ( SceneState  ) 

Renders the list of RenderInsts (Normally, one should just call renderPass).

void RenderPassManager::clear (  ) 

Resets our allocated RenderInstances and Matrices. (Normally, one should just call renderPass).

void RenderPassManager::renderPass ( SceneState  ) 

void RenderPassManager::setCamPos ( const Point3F camPos  )  [inline]

const Point3F& RenderPassManager::getCamPos (  )  const [inline]

void RenderPassManager::addManager ( RenderBinManager mgr  ) 

Add a render bin manager to the list of render bin manager, this SceneRenderPassManager now owns the render bin manager and will free it when needed.

Parameters:
mgr Render manager to add
processAddOrder Where to add the manager in the addInst list, set to NO_PROCESSADD to skip processing this is in place for RenderManagers that will bypass the main addInst interface and doesn't want to process them.
renderOrder Where to add the manager in the render list.

void RenderPassManager::removeManager ( RenderBinManager mgr  ) 

Removes a manager from render and process add lists.

Parameters:
mgr Render bin manager to remove, the caller is now responsible for freeing the mgr.

void RenderPassManager::clearManagers (  ) 

Clears the render bin manager lists and free's the render bin managers.

S32 RenderPassManager::getManagerCount (  ) 

How many render bin managers do we have?

RenderBinManager* RenderPassManager::getManager ( S32  i  ) 

Get the render manager at i.

SceneGraph* RenderPassManager::getSceneManager (  )  [inline]

Get scene manager which this render pass belongs to.

static RenderBinEventSignal& RenderPassManager::getRenderBinSignal (  )  [static]

static void RenderPassManager::initPersistFields (  )  [static]

Register dynamic fields in a subclass of ConsoleObject.

See also:
addField(), addFieldV(), addDeprecatedField(), addGroup(), endGroup()

Reimplemented from SimObject.

RenderPassManager::DECLARE_CONOBJECT ( RenderPassManager   ) 

void RenderPassManager::resetCounters (  ) 

U32 RenderPassManager::getAddInstCounter (  )  const [inline]

U32 RenderPassManager::getAddInstPassCounter (  )  const [inline]

void RenderPassManager::_uninit (  )  [private]

void RenderPassManager::_initBins (  )  [private]

void RenderPassManager::_uninitBins (  )  [private]

void RenderPassManager::_insertSort ( Vector< RenderBinManager * > &  list,
RenderBinManager mgr,
bool  renderOrder 
) [private]


Member Data Documentation

for debugging - incremented every call to addInst()

for debugging - incremented every call to addElement() in addInst()