CrystalSpace

Public API Reference

CS::RenderManager Namespace Reference

Classes for render manager plugin implementation. More...

Namespaces

namespace  AutoFX
 

Classes for "automatic effects" (usually providing special textures or similar on an if-uses basis).


namespace  HDR
 

Helpers for HDR effects.


Classes

class  BeginFinishDrawScope
 Scope wrapper for setting BeginDraw flags and calling FinishDraw on scope end. More...
class  CameraCache
 Helper class to cache clones of cameras. More...
class  ContextTargetSetup
 Scope wrapper for setting render target from context settings. More...
class  DependentTargetManager
 Dependent target manager. More...
class  HDRHelper
 To help setting up a post effects manager for HDR rendering. More...
class  HDRSettings
 Read HDR settings from a config file. More...
struct  iPostEffect
 Interface for post processing effects. More...
struct  iPostEffectManager
 Factory for post-effects. More...
struct  LayerDesc
 Layer descriptor. More...
class  LayerHelper
 Helper to duplicate render layers. More...
class  LightingSorter
 Lighting sorter. More...
class  LightingVariablesHelper
 Helper class to deal with shader variables setup for lighting. More...
struct  LightSettings
 Compatibility light settings: if two lights have equal compatibility light settings they can be rendered in one pass; if not, they require different passes. More...
class  LightSetup
 For each mesh determine the array of affecting lights and generate shader vars for it. More...
class  MultipleRenderLayer
 Render layer implementation providing multiple render layers. More...
struct  OperationNumbered
 Give each operation a number passed along to functor. Single execution. More...
struct  OperationNumberedParallel
 Give each operation a number passed along to functor. Possible parallel execution. More...
struct  OperationTraits
 Unspecialized traits class for operations defining their ordering and parallellization. More...
struct  OperationTraits< CS::Meta::CompositeFunctorType2< Fn1, Fn2 > >
 Specialized traits class for composite functor. More...
struct  OperationTraits< CS::Meta::CompositeFunctorType3< Fn1, Fn2, Fn3 > >
 Specialized traits class for composite functor. More...
struct  OperationTraits< StandardMeshSorter< RenderTree > >
 The sorter is currently non-parallel safe due to how the caching is implemented. More...
struct  OperationUnordered
 No forced order of operation. Single execution. More...
struct  OperationUnorderedParallel
 No forced order of operation. Possible parallel execution. More...
struct  PostEffectLayerInputMap
 Custom input mapping for a post processing layer. More...
struct  PostEffectLayerOptions
 Options for a post processing layer. More...
class  PostEffectLayersParser
 Helper class to parse post processing effect configurations. More...
class  PostEffectsSupport
 Add post effects support to a render manager. More...
class  RenderCommon
 Common mesh render functions. More...
class  RenderTree
 RenderTree is the main data-structure for the rendermanagers. More...
class  RenderTreeBase
 Helper class containing stuff which doesn't require any of the template parameters to RenderTree. More...
class  RenderTreeStandardTraits
 Standard traits for customizing the render tree class. More...
class  RenderView
 This structure represents all information needed for drawing a scene. More...
class  RenderViewCache
 Stores a cache of RenderView objects, mapped by iView objects. More...
class  RMDebugCommon
 Common debug helpers in render manager plugins. More...
class  ShaderSetup
 Default shader setup functor. More...
class  ShaderSVSetup
 Standard shader variable stack setup functor for setting up shader variables from given shader and ticket arrays. More...
class  ShadowNone
 Shadow handler for "no" shadows. More...
class  ShadowSettings
 Helper to read shadow handler settings. More...
class  SimpleContextRender
 Render mesh nodes within one context. More...
class  SimpleContextRenderByMesh
 Render mesh nodes within one context with "by mesh" render grouping. More...
class  SimpleTreeRenderer
 Renderer for multiple contexts, grouping them by render target and rendering all layers of each context to same target. More...
class  SingleMeshContextNumbering
 Simple operation to assign sequential IDs to all mesh nodes within a context. More...
class  SingleRenderLayer
 Render layer implementation for a single render layer. More...
class  StandardMeshSorter
 Standard rendermesh sorter. More...
class  StandardPortalSetup
 Standard setup functor for portals. More...
class  StandardPortalSetup_Base
 Base class for StandardPortalSetup, containing types and members which are independent of the template arguments that can be provided to StandardPortalSetup. More...
class  StandardSVSetup
 Standard shader variable stack setup functor. More...
struct  StaticLightsSettings
 Layer settings for handling static lights. More...
class  SVArrayHolder
 Holder for SV arrays. More...
class  TextureCacheT
 Cache for caching precreated textures. More...
class  TicketSetup
 Default shader ticket setup. More...
class  TraverseUsedSVs
 Traverser for all meshes in a tree, calling the callback for each SV used by each mesh. More...
class  TraverseUsedSVSets
 Traverser for all meshes in a tree, returning the set of used shader variables for each mesh. More...

Typedefs

typedef TextureCacheT TextureCache
 Texture cache using time-based reuse and purge conditions.

Enumerations

enum  DownsampleAxis { AXIS_X = 1, AXIS_Y = 2, AXIS_XY = (AXIS_X | AXIS_Y) }
enum  LayerInputType { AUTO, STATIC, MANUAL }
 

Defines the type of input.

More...
enum  PostEffectDrawTarget { TARGET, SCREEN, NONE }
 

Describes where the posteffect output will be drawn.

More...

Functions

bool AddLayersFromDocument (iObjectRegistry *objectReg, iDocumentNode *node, MultipleRenderLayer &layers)
 Read layers setup from a document node.
bool AddLayersFromFile (iObjectRegistry *objectReg, const char *fileName, MultipleRenderLayer &layers)
 Read layers setup from an XML file.
template<typename ContextNodeType , typename LayerConfigType >
void SetupStandardShader (ContextNodeType &context, iShaderManager *shaderManager, const LayerConfigType &layerConfig)
 Setup the standard shader.
template<typename ContextNode , typename LayerConfigType >
void SetupStandardSVs (ContextNode &context, LayerConfigType &layerConfig, iShaderManager *shaderManager, iSector *sector)
 Setup standard shader variables.
template<typename ContextNodeType , typename LayerConfigType >
void SetupStandardTicket (ContextNodeType &context, iShaderManager *shaderManager, const LayerConfigType &layerConfig)
 Setup the shader ticket and shader Vs.
template<typename RenderTree >
bool Viscull (typename RenderTree::ContextNode &context, RenderView *rw, iVisibilityCuller *culler)
 Use the given renderview and visibility culler to perform a culling step, add all found meshes to the given context.



template<typename RenderTree , typename Fn , typename Blocker >
void ForEachContext (RenderTree &tree, Fn &fn, Blocker &block)
 Iterate over all contexts within render tree, call functor for each one.
template<typename RenderTree , typename Fn >
void ForEachContext (RenderTree &tree, Fn &fn)
 Iterate over all contexts within render tree, call functor for each one.
template<typename RenderTree , typename Fn , typename Blocker >
void ForEachContextReverse (RenderTree &tree, Fn &fn, Blocker &block)
 Iterate over all contexts within render tree backwards, call functor for each one.
template<typename RenderTree , typename Fn >
void ForEachContextReverse (RenderTree &tree, Fn &fn)
 Iterate over all contexts within render tree backwards, call functor for each one.
template<typename ContextType , typename Fn , typename Blocker >
void ForEachMeshNode (ContextType &context, Fn &fn, Blocker &blocker)
 Iterate over all mesh nodes within context, call functor for each one.
template<typename ContextType , typename Fn >
void ForEachMeshNode (ContextType &context, Fn &fn)
 Iterate over all mesh nodes within context, call functor for each one.
template<typename ContextType , typename Fn , typename Blocker >
void ForEachMeshNodeReverse (ContextType &context, Fn &fn, Blocker &blocker)
 Iterate over all mesh nodes within context reversed, call functor for each one.
template<typename ContextType , typename Fn >
void ForEachMeshNodeReverse (ContextType &context, Fn &fn)
 Iterate over all mesh nodes within context reversed, call functor for each one.

Detailed Description

Classes for render manager plugin implementation.


Typedef Documentation

Texture cache using time-based reuse and purge conditions.

Definition at line 295 of file texturecache.h.


Enumeration Type Documentation

Enumerator:
AXIS_X 

Downsample in x axis.

AXIS_Y 

Downsample in y axis.

AXIS_XY 

Downsample in both axis.

Definition at line 58 of file posteffects.h.

Defines the type of input.

Enumerator:
AUTO 

uses layers output

STATIC 

texture loaded from a file

MANUAL 

custom input

Definition at line 130 of file posteffects.h.

Describes where the posteffect output will be drawn.

Enumerator:
TARGET 

uses the specified target texture

SCREEN 

draws to the monitor screen

NONE 

draws to the internal posteffect's texture

Definition at line 272 of file posteffects.h.


Function Documentation

bool CS::RenderManager::AddLayersFromDocument ( iObjectRegistry objectReg,
iDocumentNode node,
MultipleRenderLayer &  layers 
)

Read layers setup from a document node.

bool CS::RenderManager::AddLayersFromFile ( iObjectRegistry objectReg,
const char *  fileName,
MultipleRenderLayer &  layers 
)

Read layers setup from an XML file.

template<typename RenderTree , typename Fn , typename Blocker >
void CS::RenderManager::ForEachContext ( RenderTree &  tree,
Fn &  fn,
Blocker &  block 
) [inline]

Iterate over all contexts within render tree, call functor for each one.

Does use a user-supplied blocker for ignoring certain contexts.

Definition at line 457 of file operations.h.

template<typename RenderTree , typename Fn >
void CS::RenderManager::ForEachContext ( RenderTree &  tree,
Fn &  fn 
) [inline]

Iterate over all contexts within render tree, call functor for each one.

Does not use any blocking at all.

Definition at line 430 of file operations.h.

template<typename RenderTree , typename Fn , typename Blocker >
void CS::RenderManager::ForEachContextReverse ( RenderTree &  tree,
Fn &  fn,
Blocker &  block 
) [inline]

Iterate over all contexts within render tree backwards, call functor for each one.

Does use a user-supplied blocker for ignoring certain contexts.

Definition at line 510 of file operations.h.

template<typename RenderTree , typename Fn >
void CS::RenderManager::ForEachContextReverse ( RenderTree &  tree,
Fn &  fn 
) [inline]

Iterate over all contexts within render tree backwards, call functor for each one.

Does not use any blocking at all.

Definition at line 483 of file operations.h.

template<typename ContextType , typename Fn , typename Blocker >
void CS::RenderManager::ForEachMeshNode ( ContextType &  context,
Fn &  fn,
Blocker &  blocker 
) [inline]

Iterate over all mesh nodes within context, call functor for each one.

Does use a user-supplied blocker for ignoring certain nodes.

Definition at line 565 of file operations.h.

template<typename ContextType , typename Fn >
void CS::RenderManager::ForEachMeshNode ( ContextType &  context,
Fn &  fn 
) [inline]

Iterate over all mesh nodes within context, call functor for each one.

Does not use any blocking at all.

Definition at line 539 of file operations.h.

template<typename ContextType , typename Fn , typename Blocker >
void CS::RenderManager::ForEachMeshNodeReverse ( ContextType &  context,
Fn &  fn,
Blocker &  blocker 
) [inline]

Iterate over all mesh nodes within context reversed, call functor for each one.

Does use a user-supplied blocker for ignoring certain nodes.

Definition at line 616 of file operations.h.

template<typename ContextType , typename Fn >
void CS::RenderManager::ForEachMeshNodeReverse ( ContextType &  context,
Fn &  fn 
) [inline]

Iterate over all mesh nodes within context reversed, call functor for each one.

Does not use any blocking at all.

Definition at line 590 of file operations.h.

template<typename ContextNodeType , typename LayerConfigType >
void CS::RenderManager::SetupStandardShader ( ContextNodeType &  context,
iShaderManager shaderManager,
const LayerConfigType &  layerConfig 
) [inline]

Setup the standard shader.

Definition at line 172 of file shadersetup.h.

template<typename ContextNode , typename LayerConfigType >
void CS::RenderManager::SetupStandardSVs ( ContextNode &  context,
LayerConfigType &  layerConfig,
iShaderManager shaderManager,
iSector sector 
) [inline]

Setup standard shader variables.

Allocates space in the context's SV array holder and prefills that with the shader variables from the shader manager, the context and the sector.

Usage: has to be done after mesh numbering. Usually done before mesh SV setup. Example:

 SetupStandardSVs (context, layerConfig, shaderManager, sector);

Definition at line 192 of file svsetup.h.

template<typename ContextNodeType , typename LayerConfigType >
void CS::RenderManager::SetupStandardTicket ( ContextNodeType &  context,
iShaderManager shaderManager,
const LayerConfigType &  layerConfig 
) [inline]

Setup the shader ticket and shader Vs.

Must be done after shader setup (usually SetupStandardShader()).

Definition at line 193 of file shadersetup.h.

template<typename RenderTree >
bool CS::RenderManager::Viscull ( typename RenderTree::ContextNode &  context,
RenderView *  rw,
iVisibilityCuller culler 
) [inline]

Use the given renderview and visibility culler to perform a culling step, add all found meshes to the given context.

Usually the first thing done with a view and context. Example:

 // Renderview+sector setup
 sector->PrepareDraw (renderView);
 // Make sure the clip-planes are ok
 CS::RenderViewClipper::SetupClipPlanes (renderView->GetRenderContext ());
 
 // Do the culling
 iVisibilityCuller* culler = sector->GetVisibilityCuller ();
 Viscull<RenderTree> (context, renderView, culler);

Definition at line 196 of file viscull.h.


Generated for Crystal Space 2.1 by doxygen 1.6.1