CS::RenderManager::LightSetup< RenderTree, LayerConfigType, ShadowHandler > Class Template Reference
For each mesh determine the array of affecting lights and generate shader vars for it. More...
#include <csplugincommon/rendermanager/lightsetup.h>
Classes | |
struct | CachedLightData |
Data persistently stored for every light. More... | |
struct | PersistentData |
Data used by the light setup helper that needs to persist over multiple frames. More... | |
Public Member Functions | |
const PostLightingLayers & | GetPostLightingLayers () const |
Return the render layers, adjusted for possible additional layers needed by lighting/shadowing. | |
LightSetup (PersistentData &persist, iLightManager *lightmgr, SVArrayHolder &svArrays, const LayerConfigType &layerConfig, ShadowParamType &shadowParam) | |
Construct. | |
void | operator() (typename RenderTree::MeshNode *node) |
Set up lighting for a mesh combination Selects the lights affecting the mesh and sets up the light shader vars in the render layers according to the layers configuration. | |
Protected Member Functions | |
template<typename _ShadowHandler > | |
size_t | HandleLights (_ShadowHandler &shadows, size_t overallPass, LightingSorter &sortedLights, size_t layer, LayerHelper< RenderTree, LayerConfigType, PostLightingLayers > &layers, const LayerConfigType &layerConfig, typename RenderTree::MeshNode::SingleMesh &mesh, typename RenderTree::MeshNode *node) |
Set up lighting for a mesh/light combination Given the lights affecting the mesh it sets up the light shader vars in the render layers according to the layers configuration. |
Detailed Description
template<typename RenderTree, typename LayerConfigType, typename ShadowHandler = ShadowNone<RenderTree, LayerConfigType>>
class CS::RenderManager::LightSetup< RenderTree, LayerConfigType, ShadowHandler >
For each mesh determine the array of affecting lights and generate shader vars for it.
Usage: together with iteration over each mesh node. Must be done after shader and shader SV (usually SetupStandardShader()) and before ticket setup. Example:
RenderManager::LightSetupType::ShadowParamType shadowParam; RenderManager::LightSetupType lightSetup ( rmanager->lightPersistent, rmanager->lightManager, context.svArrays, layerConfig, shadowParam); ForEachMeshNode (context, lightSetup);
The template parameter RenderTree gives the render tree type. The parameter LayerConfigType gives a class that is used for providing the rendering layer setup. ShadowHandler is an optional class that provides shadow handling for each mesh/light combination (default to no shadows).
Definition at line 402 of file lightsetup.h.
Constructor & Destructor Documentation
CS::RenderManager::LightSetup< RenderTree, LayerConfigType, ShadowHandler >::LightSetup | ( | PersistentData & | persist, | |
iLightManager * | lightmgr, | |||
SVArrayHolder & | svArrays, | |||
const LayerConfigType & | layerConfig, | |||
ShadowParamType & | shadowParam | |||
) | [inline] |
Construct.
Definition at line 748 of file lightsetup.h.
Member Function Documentation
const PostLightingLayers& CS::RenderManager::LightSetup< RenderTree, LayerConfigType, ShadowHandler >::GetPostLightingLayers | ( | ) | const [inline] |
Return the render layers, adjusted for possible additional layers needed by lighting/shadowing.
Definition at line 949 of file lightsetup.h.
size_t CS::RenderManager::LightSetup< RenderTree, LayerConfigType, ShadowHandler >::HandleLights | ( | _ShadowHandler & | shadows, | |
size_t | overallPass, | |||
LightingSorter & | sortedLights, | |||
size_t | layer, | |||
LayerHelper< RenderTree, LayerConfigType, PostLightingLayers > & | layers, | |||
const LayerConfigType & | layerConfig, | |||
typename RenderTree::MeshNode::SingleMesh & | mesh, | |||
typename RenderTree::MeshNode * | node | |||
) | [inline, protected] |
Set up lighting for a mesh/light combination Given the lights affecting the mesh it sets up the light shader vars in the render layers according to the layers configuration.
Definition at line 420 of file lightsetup.h.
void CS::RenderManager::LightSetup< RenderTree, LayerConfigType, ShadowHandler >::operator() | ( | typename RenderTree::MeshNode * | node | ) | [inline] |
Set up lighting for a mesh combination Selects the lights affecting the mesh and sets up the light shader vars in the render layers according to the layers configuration.
Definition at line 769 of file lightsetup.h.
The documentation for this class was generated from the following file:
- csplugincommon/rendermanager/lightsetup.h
Generated for Crystal Space 2.0 by doxygen 1.6.1