C# Class Axiom.Graphics.RenderQueue

Class to manage the scene object rendering queue.
Objects are grouped by material to minimize rendering state changes. The map from material to renderable object is wrapped in a class for ease of use.

This class includes the concept of 'queue groups' which allows the application adding the renderable to specifically schedule it so that it is included in a discrete group. Good for separating renderables into the main scene, backgrounds and overlays, and also could be used in the future for more complex multipass routines like stenciling.

Show file Open project: WolfgangSt/axiom Class Usage Examples

Protected Properties

Property Type Description
defaultGroup RenderQueueGroupID
defaultRenderablePriority ushort
renderGroups SortedList
shadowCastersCannotBeReceivers bool
splitNoShadowPasses bool
splitPassesByLightingType bool

Public Methods

Method Description
AddRenderable ( IRenderable item ) : void

Overloaded method.

AddRenderable ( IRenderable item, RenderQueueGroupID groupID ) : void

Overloaded method.

AddRenderable ( IRenderable item, ushort priority ) : void

Overloaded method.

AddRenderable ( IRenderable renderable, ushort priority, RenderQueueGroupID groupID ) : void

Adds a renderable item to the queue.

Clear ( ) : void

Clears all

Clear ( bool dispose ) : void

Clears all

GetQueueGroup ( RenderQueueGroupID queueID ) : RenderQueueGroup

Get a render queue group.

New queue groups are registered as they are requested, therefore this method will always return a valid group.

RenderQueue ( ) : System

Default constructor.

Private Methods

Method Description
GetQueueGroupByIndex ( int index ) : RenderQueueGroup

GetRenderQueueGroupID ( int index ) : RenderQueueGroupID

Method Details

AddRenderable() public method

Overloaded method.
public AddRenderable ( IRenderable item ) : void
item IRenderable
return void

AddRenderable() public method

Overloaded method.
public AddRenderable ( IRenderable item, RenderQueueGroupID groupID ) : void
item IRenderable
groupID RenderQueueGroupID
return void

AddRenderable() public method

Overloaded method.
public AddRenderable ( IRenderable item, ushort priority ) : void
item IRenderable
priority ushort
return void

AddRenderable() public method

Adds a renderable item to the queue.
public AddRenderable ( IRenderable renderable, ushort priority, RenderQueueGroupID groupID ) : void
renderable IRenderable IRenderable object to add to the queue.
priority ushort
groupID RenderQueueGroupID Group to add the item to.
return void

Clear() public method

Clears all
public Clear ( ) : void
return void

Clear() public method

Clears all
public Clear ( bool dispose ) : void
dispose bool
return void

GetQueueGroup() public method

Get a render queue group.
New queue groups are registered as they are requested, therefore this method will always return a valid group.
public GetQueueGroup ( RenderQueueGroupID queueID ) : RenderQueueGroup
queueID RenderQueueGroupID ID of the queue group to retreive.
return RenderQueueGroup

RenderQueue() public method

Default constructor.
public RenderQueue ( ) : System
return System

Property Details

defaultGroup protected property

Default render group for this queue.
protected RenderQueueGroupID defaultGroup
return RenderQueueGroupID

defaultRenderablePriority protected property

Default priority of items added to the render queue.
protected ushort defaultRenderablePriority
return ushort

renderGroups protected property

Cached list of render groups, indexed by RenderQueueGroupID.
protected SortedList renderGroups
return SortedList

shadowCastersCannotBeReceivers protected property

protected bool shadowCastersCannotBeReceivers
return bool

splitNoShadowPasses protected property

protected bool splitNoShadowPasses
return bool

splitPassesByLightingType protected property

Should passes be split by their lighting stage?
protected bool splitPassesByLightingType
return bool