CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

csLightShaderVarCache Class Reference

Helper to cache names of shader variables relevant to lighting. More...

#include <csgfx/lightsvcache.h>

List of all members.

Public Types

enum  DefaultSV { varAmbient = 0, varLightCount, _varCount }
 Other generally useful shader variables that can be obtained. More...
enum  LightProperty {
  lightDiffuse = 0, lightSpecular, lightPosition, lightPositionCamera,
  lightPositionWorld, lightAttenuation, lightAttenuationTex, lightDirection,
  lightDirectionCamera, lightDirectionWorld, lightInnerFalloff, lightOuterFalloff,
  lightType, lightAttenuationMode, _lightCount
}
 Properties of lights for which shader variables are known. More...

Public Member Functions

 csLightShaderVarCache ()
 Construct an instance.
csStringID GetDefaultSVId (DefaultSV var)
 Obtain the name for for a lighting-relevant shader variable whose name does not depend on the number of a light.
csStringID GetLightSVId (size_t num, LightProperty prop)
 Obtain the name for for a lighting-relevant shader variable whose name also depends on the number of a light.
void SetStrings (iStringSet *strings)
 Set the string set to query the name identifiers from.


Detailed Description

Helper to cache names of shader variables relevant to lighting.

Definition at line 34 of file lightsvcache.h.


Member Enumeration Documentation

enum csLightShaderVarCache::DefaultSV
 

Other generally useful shader variables that can be obtained.

Enumerator:
varAmbient  "light ambient"
varLightCount  "light count"
_varCount  Number of other variables.

Definition at line 74 of file lightsvcache.h.

enum csLightShaderVarCache::LightProperty
 

Properties of lights for which shader variables are known.

Enumerator:
lightDiffuse  Diffuse color.
lightSpecular  Specular color.
lightPosition  Position (object space).
lightPositionCamera  Position (camera space).
lightPositionWorld  Position (world space).
lightAttenuation  Attenuation vector.
lightAttenuationTex  Attenuation texture.
lightDirection  Direction (object space).
lightDirectionCamera  Direction (camera space).
lightDirectionWorld  Direction (world space).
lightInnerFalloff  Spot inner falloff.
lightOuterFalloff  Spot outer falloff.
lightType  Light type (csLightType casted to int).
lightAttenuationMode  Attenuation mode (csLightAttenuationMode casted to int).
_lightCount  Number of properties.

Definition at line 38 of file lightsvcache.h.


Constructor & Destructor Documentation

csLightShaderVarCache::csLightShaderVarCache  )  [inline]
 

Construct an instance.

Remarks:
The instance is only useable after a call to SetStrings().

Definition at line 99 of file lightsvcache.h.


Member Function Documentation

csStringID csLightShaderVarCache::GetDefaultSVId DefaultSV  var  ) 
 

Obtain the name for for a lighting-relevant shader variable whose name does not depend on the number of a light.

A caching scheme is used to avoid having to re-request a name from the given string set every time one is needed.

Parameters:
var Variable for which a name is to be retrieved.
Returns:
Name of the relevant variable, csInvalidStringID in case of an error.

csStringID csLightShaderVarCache::GetLightSVId size_t  num,
LightProperty  prop
 

Obtain the name for for a lighting-relevant shader variable whose name also depends on the number of a light.

A caching scheme is used to avoid having to re-request a name from the given string set every time one is needed.

Parameters:
num Number of the light that appears in the name
prop Light property for which a variable name is to be retrieved.
Returns:
Name of the relevant variable, csInvalidStringID in case of an error.

Referenced by csLightProperties::csLightProperties().

void csLightShaderVarCache::SetStrings iStringSet strings  ) 
 

Set the string set to query the name identifiers from.

Remarks:
Changing the string set will clear the cached names.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.4.4