BasicLightManager Class Reference

#include <basicLightManager.h>

Inheritance diagram for BasicLightManager:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 BasicLightManager ()
virtual ~BasicLightManager ()
virtual bool canActivate ()
virtual void activate ()
virtual void deactivate ()
virtual const char * getId () const
virtual AvailableSLInterfacesgetSceneLightingInterface ()
virtual LightInfocreateLightInfo ()
virtual LightInfogetDefaultLight ()
virtual BasicLightInfocreateBasicLightInfo ()
virtual LightInfogetSpecialLight (LightManager::SpecialLightTypesEnum type)
virtual void setSpecialLight (LightManager::SpecialLightTypesEnum type, LightInfo *light)
virtual void registerGlobalLight (LightInfo *light, SimObject *obj, bool zonealreadyset)
virtual void unregisterGlobalLight (LightInfo *light)
virtual void registerLocalLight (LightInfo *light)
virtual void unregisterLocalLight (LightInfo *light)
virtual void registerGlobalLights (bool staticlighting)
virtual void unregisterAllLights ()
virtual void getAllUnsortedLights (LightInfoList &list)
 Returns all unsorted and un-scored lights (both global and local).
virtual void setupLights (SceneObject *obj)
 For DTS objects.
virtual void setupLights (SceneObject *obj, const Point3F &camerapos, const Point3F &cameradir, F32 viewdist, S32 maxlights)
 For the terrain and Atlas.
virtual void setupLights (SceneObject *obj, const Box3F &box, S32 maxlights)
 Finds the best lights that overlap with the bounding box based on the box center.
virtual void getBestLights (LightInfoList &list)
 Copies the best lights list - this DOESN'T find the lights! Call setupLights to populate the list.
virtual void resetLights ()
 Reset the best lights list and all associated data.
virtual void setLightInfo (ProcessedMaterial *pmat, const Material *mat, const SceneGraphData &sgData, U32 pass, GFXShaderConstBuffer *shaderConsts)
 Sets shader constants / textures for light infos.
virtual bool initTextureStateBlock (const U32 currTexFlag, const U32 textureSlot, GFXStateBlockDesc *stateblock)
 Allows us to setup texture states, return true if we've done work.
virtual bool setTextureStage (const SceneGraphData &sgData, const U32 currTexFlag, const U32 textureSlot, GFXShaderConstBuffer *shaderConsts, ShaderConstHandles *handles)
 Allows us to set textures during the Material::setTextureStage call, return true if we've done work.
bool lightScene (const char *callback, const char *param)
virtual void hdrPrepare (const Point2I &offset, const Point2I &extent)
virtual void hdrRender ()

Static Public Member Functions

static BasicLightManagerget ()
static void cleanup ()
static AvailableSLInterfacesgetBLSceneLightingInterface ()

Public Attributes

Signal< void(bool)> mActivate

Private Types

typedef LightManager Parent

Private Attributes

BasicLightInfomDefaultLight
BasicLightInfomSpecialLights [LightManager::slSpecialLightTypesCount]
BasicLightInfomTranslatedSun
Map< GFXShader *, LightingShaderConstantsmConstantLookup
GFXShadermLastShader
LightingShaderConstantsmLastConstants

Static Private Attributes

static BasicLightManagersmBasicLightManagerSingleton
static AvailableSLInterfacessmAvailableSLInterfaces

Classes

struct  LightingShaderConstants

Member Typedef Documentation


Constructor & Destructor Documentation

BasicLightManager::BasicLightManager (  ) 

virtual BasicLightManager::~BasicLightManager (  )  [virtual]


Member Function Documentation

static BasicLightManager* BasicLightManager::get (  )  [inline, static]

static void BasicLightManager::cleanup (  )  [static]

static AvailableSLInterfaces* BasicLightManager::getBLSceneLightingInterface (  )  [static]

virtual bool BasicLightManager::canActivate (  )  [virtual]

Reimplemented from LightManager.

virtual void BasicLightManager::activate (  )  [virtual]

Reimplemented from LightManager.

virtual void BasicLightManager::deactivate (  )  [virtual]

Reimplemented from LightManager.

virtual const char* BasicLightManager::getId (  )  const [virtual]

Implements LightManager.

virtual AvailableSLInterfaces* BasicLightManager::getSceneLightingInterface (  )  [virtual]

Implements LightManager.

virtual LightInfo* BasicLightManager::createLightInfo (  )  [virtual]

Implements LightManager.

virtual LightInfo* BasicLightManager::getDefaultLight (  )  [virtual]

Implements LightManager.

virtual BasicLightInfo* BasicLightManager::createBasicLightInfo (  )  [virtual]

virtual LightInfo* BasicLightManager::getSpecialLight ( LightManager::SpecialLightTypesEnum  type  )  [virtual]

Implements LightManager.

virtual void BasicLightManager::setSpecialLight ( LightManager::SpecialLightTypesEnum  type,
LightInfo light 
) [virtual]

Implements LightManager.

virtual void BasicLightManager::registerGlobalLight ( LightInfo light,
SimObject obj,
bool  zonealreadyset 
) [inline, virtual]

Implements LightManager.

virtual void BasicLightManager::unregisterGlobalLight ( LightInfo light  )  [inline, virtual]

Implements LightManager.

virtual void BasicLightManager::registerLocalLight ( LightInfo light  )  [inline, virtual]

Implements LightManager.

virtual void BasicLightManager::unregisterLocalLight ( LightInfo light  )  [inline, virtual]

Implements LightManager.

virtual void BasicLightManager::registerGlobalLights ( bool  staticlighting  )  [virtual]

Implements LightManager.

virtual void BasicLightManager::unregisterAllLights (  )  [virtual]

Implements LightManager.

virtual void BasicLightManager::getAllUnsortedLights ( LightInfoList list  )  [virtual]

Returns all unsorted and un-scored lights (both global and local).

Implements LightManager.

virtual void BasicLightManager::setupLights ( SceneObject obj  )  [inline, virtual]

For DTS objects.

Finds the best lights including a composite based on the environmental ambient lighting amount *and installs them in OpenGL*.

Implements LightManager.

virtual void BasicLightManager::setupLights ( SceneObject obj,
const Point3F camerapos,
const Point3F cameradir,
F32  viewdist,
S32  maxlights 
) [inline, virtual]

For the terrain and Atlas.

Finds the best lights in the viewing area based on distance to camera.

Implements LightManager.

virtual void BasicLightManager::setupLights ( SceneObject obj,
const Box3F box,
S32  maxlights 
) [inline, virtual]

Finds the best lights that overlap with the bounding box based on the box center.

Implements LightManager.

virtual void BasicLightManager::getBestLights ( LightInfoList list  )  [virtual]

Copies the best lights list - this DOESN'T find the lights! Call setupLights to populate the list.

Implements LightManager.

virtual void BasicLightManager::resetLights (  )  [inline, virtual]

Reset the best lights list and all associated data.

Implements LightManager.

virtual void BasicLightManager::setLightInfo ( ProcessedMaterial pmat,
const Material mat,
const SceneGraphData sgData,
U32  pass,
GFXShaderConstBuffer shaderConsts 
) [virtual]

Sets shader constants / textures for light infos.

Implements LightManager.

virtual bool BasicLightManager::initTextureStateBlock ( const U32  currTexFlag,
const U32  textureSlot,
GFXStateBlockDesc stateblock 
) [inline, virtual]

Allows us to setup texture states, return true if we've done work.

Implements LightManager.

virtual bool BasicLightManager::setTextureStage ( const SceneGraphData sgData,
const U32  currTexFlag,
const U32  textureSlot,
GFXShaderConstBuffer shaderConsts,
ShaderConstHandles handles 
) [inline, virtual]

Allows us to set textures during the Material::setTextureStage call, return true if we've done work.

Implements LightManager.

bool BasicLightManager::lightScene ( const char *  callback,
const char *  param 
) [virtual]

Reimplemented from LightManager.

virtual void BasicLightManager::hdrPrepare ( const Point2I offset,
const Point2I extent 
) [inline, virtual]

Implements LightManager.

virtual void BasicLightManager::hdrRender (  )  [inline, virtual]

Implements LightManager.


Member Data Documentation

BasicLightInfo* BasicLightManager::mSpecialLights[LightManager::slSpecialLightTypesCount] [private]