Visualization Library 2.0.0-b3

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Public Member Functions | Protected Attributes | List of all members
vl::Shader Class Reference

Manages most of the OpenGL rendering states responsible of the final aspect of the rendered objects. More...

#include <Shader.hpp>

+ Inheritance diagram for vl::Shader:

Public Member Functions

 Shader ()
 Constructor. More...
 
virtual ~Shader ()
 Destructor. More...
 
ref< ShadershallowCopy () const
 Returns the shallow copy of a Shader. More...
 
ShadershallowCopyFrom (const Shader &other)
 Performs a shallow copy from the given Shader. More...
 
ref< ShaderdeepCopy () const
 Returns the deep copy of a Shader. More...
 
ShaderdeepCopyFrom (const Shader &other)
 Performs a deep copy from the given Shader. More...
 
void reset ()
 Disables everything, erases all the render states, erases all the uniforms. More...
 
GLSLProgramgocGLSLProgram ()
 Gets or creates a GLSLProgram and returns it. More...
 
const GLSLProgramgetGLSLProgram () const
 Returns a GLSLProgram if it exists or NULL otherwise. More...
 
GLSLProgramgetGLSLProgram ()
 Returns a GLSLProgram if it exists or NULL otherwise. More...
 
PixelTransfergocPixelTransfer ()
 
const PixelTransfergetPixelTransfer () const
 
PixelTransfergetPixelTransfer ()
 
HintgocHint ()
 
const HintgetHint () const
 
HintgetHint ()
 
CullFacegocCullFace ()
 
const CullFacegetCullFace () const
 
CullFacegetCullFace ()
 
FrontFacegocFrontFace ()
 
const FrontFacegetFrontFace () const
 
FrontFacegetFrontFace ()
 
DepthFuncgocDepthFunc ()
 
const DepthFuncgetDepthFunc () const
 
DepthFuncgetDepthFunc ()
 
DepthMaskgocDepthMask ()
 
const DepthMaskgetDepthMask () const
 
DepthMaskgetDepthMask ()
 
ColorgocColor ()
 
const ColorgetColor () const
 
ColorgetColor ()
 
SecondaryColorgocSecondaryColor ()
 
const SecondaryColorgetSecondaryColor () const
 
SecondaryColorgetSecondaryColor ()
 
NormalgocNormal ()
 
const NormalgetNormal () const
 
NormalgetNormal ()
 
ColorMaskgocColorMask ()
 
const ColorMaskgetColorMask () const
 
ColorMaskgetColorMask ()
 
PolygonModegocPolygonMode ()
 
const PolygonModegetPolygonMode () const
 
PolygonModegetPolygonMode ()
 
ShadeModelgocShadeModel ()
 
const ShadeModelgetShadeModel () const
 
ShadeModelgetShadeModel ()
 
BlendEquationgocBlendEquation ()
 
const BlendEquationgetBlendEquation () const
 
BlendEquationgetBlendEquation ()
 
AlphaFuncgocAlphaFunc ()
 
const AlphaFuncgetAlphaFunc () const
 
AlphaFuncgetAlphaFunc ()
 
MaterialgocMaterial ()
 
const MaterialgetMaterial () const
 
MaterialgetMaterial ()
 
LightModelgocLightModel ()
 
const LightModelgetLightModel () const
 
LightModelgetLightModel ()
 
FoggocFog ()
 
const FoggetFog () const
 
FoggetFog ()
 
PolygonOffsetgocPolygonOffset ()
 
const PolygonOffsetgetPolygonOffset () const
 
PolygonOffsetgetPolygonOffset ()
 
LogicOpgocLogicOp ()
 
const LogicOpgetLogicOp () const
 
LogicOpgetLogicOp ()
 
DepthRangegocDepthRange ()
 
const DepthRangegetDepthRange () const
 
DepthRangegetDepthRange ()
 
LineWidthgocLineWidth ()
 
const LineWidthgetLineWidth () const
 
LineWidthgetLineWidth ()
 
PointSizegocPointSize ()
 
const PointSizegetPointSize () const
 
PointSizegetPointSize ()
 
LineStipplegocLineStipple ()
 
const LineStipplegetLineStipple () const
 
LineStipplegetLineStipple ()
 
PolygonStipplegocPolygonStipple ()
 
const PolygonStipplegetPolygonStipple () const
 
PolygonStipplegetPolygonStipple ()
 
PointParametergocPointParameter ()
 
const PointParametergetPointParameter () const
 
PointParametergetPointParameter ()
 
StencilFuncgocStencilFunc ()
 
const StencilFuncgetStencilFunc () const
 
StencilFuncgetStencilFunc ()
 
StencilOpgocStencilOp ()
 
const StencilOpgetStencilOp () const
 
StencilOpgetStencilOp ()
 
StencilMaskgocStencilMask ()
 
const StencilMaskgetStencilMask () const
 
StencilMaskgetStencilMask ()
 
BlendColorgocBlendColor ()
 
const BlendColorgetBlendColor () const
 
BlendColorgetBlendColor ()
 
BlendFuncgocBlendFunc ()
 
const BlendFuncgetBlendFunc () const
 
BlendFuncgetBlendFunc ()
 
SampleCoveragegocSampleCoverage ()
 
const SampleCoveragegetSampleCoverage () const
 
SampleCoveragegetSampleCoverage ()
 
VertexAttribgocVertexAttrib (int attr_index)
 
const VertexAttribgetVertexAttrib (int attr_index) const
 
VertexAttribgetVertexAttrib (int attr_index)
 
LightgocLight (int light_index)
 
const LightgetLight (int light_index) const
 
LightgetLight (int light_index)
 
ClipPlanegocClipPlane (int plane_index)
 
const ClipPlanegetClipPlane (int plane_index) const
 
ClipPlanegetClipPlane (int plane_index)
 
TextureSamplergocTextureSampler (int unit_index)
 
const TextureSamplergetTextureSampler (int unit_index) const
 
TextureSamplergetTextureSampler (int unit_index)
 
TexEnvgocTexEnv (int unit_index)
 
const TexEnvgetTexEnv (int unit_index) const
 
TexEnvgetTexEnv (int unit_index)
 
TexGengocTexGen (int unit_index)
 
const TexGengetTexGen (int unit_index) const
 
TexGengetTexGen (int unit_index)
 
TextureMatrixgocTextureMatrix (int unit_index)
 
const TextureMatrixgetTextureMatrix (int unit_index) const
 
TextureMatrixgetTextureMatrix (int unit_index)
 
void enable (EEnable capability)
 
void disable (EEnable capability)
 
const std::vector< EEnable > & enables () const
 
int isEnabled (EEnable capability) const
 
void disableAll ()
 
bool isBlendingEnabled () const
 
void setRenderState (RenderStateNonIndexed *renderstate)
 
void setRenderState (RenderState *renderstate, int index)
 
const RenderStaterenderState (ERenderState type, int index=0) const
 
RenderStaterenderState (ERenderState type, int index=0)
 
size_t renderStatesCount () const
 
const RenderStateSlotrenderStates () const
 
RenderStateSlotrenderStates ()
 
void eraseRenderState (ERenderState type, int index=-1)
 If index == -1 all the renderstates of the given type are removed regardless of their binding index. More...
 
void eraseRenderState (RenderState *rs, int index)
 
void eraseAllRenderStates ()
 
const GLSLProgramglslProgram () const
 Returns the GLSLProgram associated to a Shader (if any) More...
 
GLSLProgramglslProgram ()
 Returns the GLSLProgram associated to a Shader (if any) More...
 
void setUniform (Uniform *uniform)
 Equivalent to gocUniformSet()->setUniform(...) More...
 
const std::vector< ref< Uniform > > & uniforms () const
 Equivalent to gocUniformSet()->uniforms(...) More...
 
void eraseUniform (const char *name)
 Equivalent to gocUniformSet()->eraseUniform(...) More...
 
void eraseUniform (const Uniform *uniform)
 Equivalent to gocUniformSet()->eraseUniform(...) More...
 
void eraseAllUniforms ()
 Equivalent to gocUniformSet()->eraseAllUniforms(...) More...
 
UniformgocUniform (const char *name)
 Equivalent to gocUniformSet()->gocUniform(...) More...
 
UniformgetUniform (const char *name)
 Equivalent to gocUniformSet()->getUniform(...) More...
 
const UniformgetUniform (const char *name) const
 Equivalent to gocUniformSet()->getUniform(...) More...
 
EnableSetgocEnableSet ()
 
EnableSetgetEnableSet ()
 
const EnableSetgetEnableSet () const
 
RenderStateSetgocRenderStateSet ()
 
RenderStateSetgetRenderStateSet ()
 
const RenderStateSetgetRenderStateSet () const
 
UniformSetgocUniformSet ()
 Returns the UniformSet installed (creating it if no UniformSet has been installed) More...
 
UniformSetgetUniformSet ()
 Returns the UniformSet installed. More...
 
const UniformSetgetUniformSet () const
 Returns the UniformSet installed. More...
 
void setEnableSet (EnableSet *es)
 
void setRenderStateSet (RenderStateSet *rss)
 
void setUniformSet (UniformSet *us)
 Installs a new UniformSet. More...
 
void setScissor (Scissor *scissor)
 Sets the Scissor to be used when rendering an Actor. More...
 
const Scissorscissor () const
 Returns the Scissor to be used when rendering an Actor. More...
 
Scissorscissor ()
 Returns the Scissor to be used when rendering an Actor. More...
 
void setShaderAnimator (ShaderAnimator *animator)
 Installs the ShaderAnimator used to update/animate a Shader (see vl::ShaderAnimator documentation). More...
 
ShaderAnimatorshaderAnimator ()
 Returns the ShaderAnimator used to update/animate a Shader (see vl::ShaderAnimator documentation). More...
 
const ShaderAnimatorshaderAnimator () const
 Returns the ShaderAnimator used to update/animate a Shader (see vl::ShaderAnimator documentation). More...
 
real lastUpdateTime () const
 Last time this Actor was animated/updated using a shaderAnimator(). More...
 
void setLastUpdateTime (real time)
 Used internally. More...
 
- Public Member Functions inherited from vl::Object
 Object ()
 Constructor. More...
 
 Object (const Object &other)
 Copy constructor: copies the name, ref count mutex and user data. More...
 
Objectoperator= (const Object &other)
 Copy operator: copies the object's name, ref count mutex and user data. More...
 
const std::string & objectName () const
 The name of the object, by default set to the object's class name. More...
 
void setObjectName (const char *name)
 The name of the object, by default set to the object's class name in debug builds. More...
 
void setObjectName (const std::string &name)
 The name of the object, by default set to the object's class name in debug builds. More...
 
void setRefCountMutex (IMutex *mutex)
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
IMutexrefCountMutex ()
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
const IMutexrefCountMutex () const
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
int referenceCount () const
 Returns the number of references of an object. More...
 
void incReference () const
 Increments the reference count of an object. More...
 
void decReference ()
 Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More...
 
void setAutomaticDelete (bool autodel_on)
 If set to true the Object is deleted when its reference count reaches 0. More...
 
bool automaticDelete () const
 If set to true the Object is deleted when its reference count reaches 0. More...
 
template<class T >
T * as ()
 Casts an Object to the specified class. More...
 
template<class T >
const T * as () const
 Casts an Object to the specified class. More...
 

Protected Attributes

ref< RenderStateSetmRenderStateSet
 
ref< EnableSetmEnableSet
 
ref< UniformSetmUniformSet
 
ref< ScissormScissor
 
ref< ShaderAnimatormShaderAnimator
 
real mLastUpdateTime
 
- Protected Attributes inherited from vl::Object
std::string mObjectName
 
IMutexmRefCountMutex
 
int mReferenceCount
 
bool mAutomaticDelete
 

Additional Inherited Members

- Protected Member Functions inherited from vl::Object
virtual ~Object ()
 

Detailed Description

Manages most of the OpenGL rendering states responsible of the final aspect of the rendered objects.

A Shader represents a rendering pass. Using the Effect class you can assign more rendering passes to an Actor. You can also specify different sets of rendering passes for each Effect LOD, for more information see Effect.

Remarks
The Uniforms defined in the Actor and the ones defined in the Shader must not overlap, that is, an Actor must not define Uniforms present in the Shader and vice versa.
See also
Effect, Actor

Definition at line 1841 of file Shader.hpp.

Constructor & Destructor Documentation

◆ Shader()

Shader::Shader ( )

Constructor.

Definition at line 45 of file Shader.cpp.

References mLastUpdateTime, and NULL.

◆ ~Shader()

Shader::~Shader ( )
virtual

Destructor.

Definition at line 55 of file Shader.cpp.

Member Function Documentation

◆ deepCopy()

ref<Shader> vl::Shader::deepCopy ( ) const
inline

Returns the deep copy of a Shader.

Definition at line 1912 of file Shader.hpp.

References deepCopyFrom().

◆ deepCopyFrom()

Shader& vl::Shader::deepCopyFrom ( const Shader other)
inline

Performs a deep copy from the given Shader.

Definition at line 1920 of file Shader.hpp.

References vl::RenderStateSet::deepCopyFrom(), vl::UniformSet::deepCopyFrom(), mEnableSet, mRenderStateSet, mScissor, mShaderAnimator, mUniformSet, and NULL.

Referenced by deepCopy().

◆ disable()

void vl::Shader::disable ( EEnable  capability)
inline

Definition at line 2171 of file Shader.hpp.

Referenced by vl::ObjLoader::loadOBJ().

◆ disableAll()

void vl::Shader::disableAll ( )
inline

Definition at line 2177 of file Shader.hpp.

Referenced by vl::ShaderNode::inherit().

◆ enable()

void vl::Shader::enable ( EEnable  capability)
inline

◆ enables()

const std::vector<EEnable>& vl::Shader::enables ( ) const
inline

Definition at line 2173 of file Shader.hpp.

◆ eraseAllRenderStates()

void vl::Shader::eraseAllRenderStates ( )
inline

Definition at line 2202 of file Shader.hpp.

Referenced by vl::ShaderNode::inherit().

◆ eraseAllUniforms()

void vl::Shader::eraseAllUniforms ( )
inline

Equivalent to gocUniformSet()->eraseAllUniforms(...)

Definition at line 2225 of file Shader.hpp.

Referenced by vl::ShaderNode::inherit().

◆ eraseRenderState() [1/2]

void vl::Shader::eraseRenderState ( ERenderState  type,
int  index = -1 
)
inline

If index == -1 all the renderstates of the given type are removed regardless of their binding index.

Definition at line 2198 of file Shader.hpp.

◆ eraseRenderState() [2/2]

void vl::Shader::eraseRenderState ( RenderState rs,
int  index 
)
inline

Definition at line 2200 of file Shader.hpp.

References vl::RenderState::type().

◆ eraseUniform() [1/2]

void vl::Shader::eraseUniform ( const char *  name)
inline

Equivalent to gocUniformSet()->eraseUniform(...)

Definition at line 2219 of file Shader.hpp.

◆ eraseUniform() [2/2]

void vl::Shader::eraseUniform ( const Uniform uniform)
inline

Equivalent to gocUniformSet()->eraseUniform(...)

Definition at line 2222 of file Shader.hpp.

◆ getAlphaFunc() [1/2]

const AlphaFunc* vl::Shader::getAlphaFunc ( ) const
inline

Definition at line 2038 of file Shader.hpp.

References NULL, and vl::RS_AlphaFunc.

◆ getAlphaFunc() [2/2]

AlphaFunc* vl::Shader::getAlphaFunc ( )
inline

Definition at line 2039 of file Shader.hpp.

References NULL, and vl::RS_AlphaFunc.

◆ getBlendColor() [1/2]

const BlendColor* vl::Shader::getBlendColor ( ) const
inline

Definition at line 2098 of file Shader.hpp.

References NULL, and vl::RS_BlendColor.

◆ getBlendColor() [2/2]

BlendColor* vl::Shader::getBlendColor ( )
inline

Definition at line 2099 of file Shader.hpp.

References NULL, and vl::RS_BlendColor.

◆ getBlendEquation() [1/2]

const BlendEquation* vl::Shader::getBlendEquation ( ) const
inline

Definition at line 2034 of file Shader.hpp.

References NULL, and vl::RS_BlendEquation.

◆ getBlendEquation() [2/2]

BlendEquation* vl::Shader::getBlendEquation ( )
inline

Definition at line 2035 of file Shader.hpp.

References NULL, and vl::RS_BlendEquation.

◆ getBlendFunc() [1/2]

const BlendFunc* vl::Shader::getBlendFunc ( ) const
inline

Definition at line 2102 of file Shader.hpp.

References NULL, and vl::RS_BlendFunc.

◆ getBlendFunc() [2/2]

BlendFunc* vl::Shader::getBlendFunc ( )
inline

Definition at line 2103 of file Shader.hpp.

References NULL, and vl::RS_BlendFunc.

◆ getClipPlane() [1/2]

const ClipPlane * Shader::getClipPlane ( int  plane_index) const

◆ getClipPlane() [2/2]

ClipPlane * Shader::getClipPlane ( int  plane_index)

◆ getColor() [1/2]

const Color* vl::Shader::getColor ( ) const
inline

Definition at line 2010 of file Shader.hpp.

References NULL, and vl::RS_Color.

◆ getColor() [2/2]

Color* vl::Shader::getColor ( )
inline

Definition at line 2011 of file Shader.hpp.

References NULL, and vl::RS_Color.

◆ getColorMask() [1/2]

const ColorMask* vl::Shader::getColorMask ( ) const
inline

Definition at line 2022 of file Shader.hpp.

References NULL, and vl::RS_ColorMask.

◆ getColorMask() [2/2]

ColorMask* vl::Shader::getColorMask ( )
inline

Definition at line 2023 of file Shader.hpp.

References NULL, and vl::RS_ColorMask.

◆ getCullFace() [1/2]

const CullFace* vl::Shader::getCullFace ( ) const
inline

Definition at line 1994 of file Shader.hpp.

References NULL, and vl::RS_CullFace.

◆ getCullFace() [2/2]

CullFace* vl::Shader::getCullFace ( )
inline

Definition at line 1995 of file Shader.hpp.

References NULL, and vl::RS_CullFace.

◆ getDepthFunc() [1/2]

const DepthFunc* vl::Shader::getDepthFunc ( ) const
inline

Definition at line 2002 of file Shader.hpp.

References NULL, and vl::RS_DepthFunc.

◆ getDepthFunc() [2/2]

DepthFunc* vl::Shader::getDepthFunc ( )
inline

Definition at line 2003 of file Shader.hpp.

References NULL, and vl::RS_DepthFunc.

◆ getDepthMask() [1/2]

const DepthMask* vl::Shader::getDepthMask ( ) const
inline

Definition at line 2006 of file Shader.hpp.

References NULL, and vl::RS_DepthMask.

◆ getDepthMask() [2/2]

DepthMask* vl::Shader::getDepthMask ( )
inline

Definition at line 2007 of file Shader.hpp.

References NULL, and vl::RS_DepthMask.

◆ getDepthRange() [1/2]

const DepthRange* vl::Shader::getDepthRange ( ) const
inline

Definition at line 2062 of file Shader.hpp.

References NULL, and vl::RS_DepthRange.

◆ getDepthRange() [2/2]

DepthRange* vl::Shader::getDepthRange ( )
inline

Definition at line 2063 of file Shader.hpp.

References NULL, and vl::RS_DepthRange.

◆ getEnableSet() [1/2]

EnableSet* vl::Shader::getEnableSet ( )
inline

◆ getEnableSet() [2/2]

const EnableSet* vl::Shader::getEnableSet ( ) const
inline

Definition at line 2242 of file Shader.hpp.

◆ getFog() [1/2]

const Fog* vl::Shader::getFog ( ) const
inline

Definition at line 2050 of file Shader.hpp.

References NULL, and vl::RS_Fog.

◆ getFog() [2/2]

Fog* vl::Shader::getFog ( )
inline

Definition at line 2051 of file Shader.hpp.

References NULL, and vl::RS_Fog.

◆ getFrontFace() [1/2]

const FrontFace* vl::Shader::getFrontFace ( ) const
inline

Definition at line 1998 of file Shader.hpp.

References NULL, and vl::RS_FrontFace.

◆ getFrontFace() [2/2]

FrontFace* vl::Shader::getFrontFace ( )
inline

Definition at line 1999 of file Shader.hpp.

References NULL, and vl::RS_FrontFace.

◆ getGLSLProgram() [1/2]

const GLSLProgram * Shader::getGLSLProgram ( ) const

◆ getGLSLProgram() [2/2]

GLSLProgram * Shader::getGLSLProgram ( )

Returns a GLSLProgram if it exists or NULL otherwise.

Definition at line 64 of file Shader.cpp.

References getRenderStateSet(), vl::RenderStateSet::renderState(), and vl::RS_GLSLProgram.

◆ getHint() [1/2]

const Hint* vl::Shader::getHint ( ) const
inline

Definition at line 1990 of file Shader.hpp.

References NULL, and vl::RS_Hint.

◆ getHint() [2/2]

Hint* vl::Shader::getHint ( )
inline

Definition at line 1991 of file Shader.hpp.

References NULL, and vl::RS_Hint.

◆ getLight() [1/2]

const Light * Shader::getLight ( int  light_index) const

◆ getLight() [2/2]

Light * Shader::getLight ( int  light_index)

Definition at line 163 of file Shader.cpp.

References getRenderStateSet(), NULL, vl::RenderStateSet::renderState(), and vl::RS_Light.

◆ getLightModel() [1/2]

const LightModel* vl::Shader::getLightModel ( ) const
inline

Definition at line 2046 of file Shader.hpp.

References NULL, and vl::RS_LightModel.

◆ getLightModel() [2/2]

LightModel* vl::Shader::getLightModel ( )
inline

Definition at line 2047 of file Shader.hpp.

References NULL, and vl::RS_LightModel.

◆ getLineStipple() [1/2]

const LineStipple* vl::Shader::getLineStipple ( ) const
inline

Definition at line 2074 of file Shader.hpp.

References NULL, and vl::RS_LineStipple.

◆ getLineStipple() [2/2]

LineStipple* vl::Shader::getLineStipple ( )
inline

Definition at line 2075 of file Shader.hpp.

References NULL, and vl::RS_LineStipple.

◆ getLineWidth() [1/2]

const LineWidth* vl::Shader::getLineWidth ( ) const
inline

Definition at line 2066 of file Shader.hpp.

References NULL, and vl::RS_LineWidth.

◆ getLineWidth() [2/2]

LineWidth* vl::Shader::getLineWidth ( )
inline

Definition at line 2067 of file Shader.hpp.

References NULL, and vl::RS_LineWidth.

◆ getLogicOp() [1/2]

const LogicOp* vl::Shader::getLogicOp ( ) const
inline

Definition at line 2058 of file Shader.hpp.

References NULL, and vl::RS_LogicOp.

◆ getLogicOp() [2/2]

LogicOp* vl::Shader::getLogicOp ( )
inline

Definition at line 2059 of file Shader.hpp.

References NULL, and vl::RS_LogicOp.

◆ getMaterial() [1/2]

const Material* vl::Shader::getMaterial ( ) const
inline

Definition at line 2042 of file Shader.hpp.

References NULL, and vl::RS_Material.

◆ getMaterial() [2/2]

Material* vl::Shader::getMaterial ( )
inline

Definition at line 2043 of file Shader.hpp.

References NULL, and vl::RS_Material.

◆ getNormal() [1/2]

const Normal* vl::Shader::getNormal ( ) const
inline

Definition at line 2018 of file Shader.hpp.

References NULL, and vl::RS_Normal.

◆ getNormal() [2/2]

Normal* vl::Shader::getNormal ( )
inline

Definition at line 2019 of file Shader.hpp.

References NULL, and vl::RS_Normal.

◆ getPixelTransfer() [1/2]

const PixelTransfer* vl::Shader::getPixelTransfer ( ) const
inline

Definition at line 1986 of file Shader.hpp.

References NULL, and vl::RS_PixelTransfer.

◆ getPixelTransfer() [2/2]

PixelTransfer* vl::Shader::getPixelTransfer ( )
inline

Definition at line 1987 of file Shader.hpp.

References NULL, and vl::RS_PixelTransfer.

◆ getPointParameter() [1/2]

const PointParameter* vl::Shader::getPointParameter ( ) const
inline

Definition at line 2082 of file Shader.hpp.

References NULL, and vl::RS_PointParameter.

◆ getPointParameter() [2/2]

PointParameter* vl::Shader::getPointParameter ( )
inline

Definition at line 2083 of file Shader.hpp.

References NULL, and vl::RS_PointParameter.

◆ getPointSize() [1/2]

const PointSize* vl::Shader::getPointSize ( ) const
inline

Definition at line 2070 of file Shader.hpp.

References NULL, and vl::RS_PointSize.

◆ getPointSize() [2/2]

PointSize* vl::Shader::getPointSize ( )
inline

Definition at line 2071 of file Shader.hpp.

References NULL, and vl::RS_PointSize.

◆ getPolygonMode() [1/2]

const PolygonMode* vl::Shader::getPolygonMode ( ) const
inline

Definition at line 2026 of file Shader.hpp.

References NULL, and vl::RS_PolygonMode.

◆ getPolygonMode() [2/2]

PolygonMode* vl::Shader::getPolygonMode ( )
inline

Definition at line 2027 of file Shader.hpp.

References NULL, and vl::RS_PolygonMode.

◆ getPolygonOffset() [1/2]

const PolygonOffset* vl::Shader::getPolygonOffset ( ) const
inline

Definition at line 2054 of file Shader.hpp.

References NULL, and vl::RS_PolygonOffset.

◆ getPolygonOffset() [2/2]

PolygonOffset* vl::Shader::getPolygonOffset ( )
inline

Definition at line 2055 of file Shader.hpp.

References NULL, and vl::RS_PolygonOffset.

◆ getPolygonStipple() [1/2]

const PolygonStipple* vl::Shader::getPolygonStipple ( ) const
inline

Definition at line 2078 of file Shader.hpp.

References NULL, and vl::RS_PolygonStipple.

◆ getPolygonStipple() [2/2]

PolygonStipple* vl::Shader::getPolygonStipple ( )
inline

Definition at line 2079 of file Shader.hpp.

References NULL, and vl::RS_PolygonStipple.

◆ getRenderStateSet() [1/2]

RenderStateSet* vl::Shader::getRenderStateSet ( )
inline

◆ getRenderStateSet() [2/2]

const RenderStateSet* vl::Shader::getRenderStateSet ( ) const
inline

Definition at line 2248 of file Shader.hpp.

◆ getSampleCoverage() [1/2]

const SampleCoverage* vl::Shader::getSampleCoverage ( ) const
inline

Definition at line 2106 of file Shader.hpp.

References NULL, and vl::RS_SampleCoverage.

◆ getSampleCoverage() [2/2]

SampleCoverage* vl::Shader::getSampleCoverage ( )
inline

Definition at line 2107 of file Shader.hpp.

References NULL, and vl::RS_SampleCoverage.

◆ getSecondaryColor() [1/2]

const SecondaryColor* vl::Shader::getSecondaryColor ( ) const
inline

Definition at line 2014 of file Shader.hpp.

References NULL, and vl::RS_SecondaryColor.

◆ getSecondaryColor() [2/2]

SecondaryColor* vl::Shader::getSecondaryColor ( )
inline

Definition at line 2015 of file Shader.hpp.

References NULL, and vl::RS_SecondaryColor.

◆ getShadeModel() [1/2]

const ShadeModel* vl::Shader::getShadeModel ( ) const
inline

Definition at line 2030 of file Shader.hpp.

References NULL, and vl::RS_ShadeModel.

◆ getShadeModel() [2/2]

ShadeModel* vl::Shader::getShadeModel ( )
inline

Definition at line 2031 of file Shader.hpp.

References NULL, and vl::RS_ShadeModel.

◆ getStencilFunc() [1/2]

const StencilFunc* vl::Shader::getStencilFunc ( ) const
inline

Definition at line 2086 of file Shader.hpp.

References NULL, and vl::RS_StencilFunc.

◆ getStencilFunc() [2/2]

StencilFunc* vl::Shader::getStencilFunc ( )
inline

Definition at line 2087 of file Shader.hpp.

References NULL, and vl::RS_StencilFunc.

◆ getStencilMask() [1/2]

const StencilMask* vl::Shader::getStencilMask ( ) const
inline

Definition at line 2094 of file Shader.hpp.

References NULL, and vl::RS_StencilMask.

◆ getStencilMask() [2/2]

StencilMask* vl::Shader::getStencilMask ( )
inline

Definition at line 2095 of file Shader.hpp.

References NULL, and vl::RS_StencilMask.

◆ getStencilOp() [1/2]

const StencilOp* vl::Shader::getStencilOp ( ) const
inline

Definition at line 2090 of file Shader.hpp.

References NULL, and vl::RS_StencilOp.

◆ getStencilOp() [2/2]

StencilOp* vl::Shader::getStencilOp ( )
inline

Definition at line 2091 of file Shader.hpp.

References NULL, and vl::RS_StencilOp.

◆ getTexEnv() [1/2]

const TexEnv* vl::Shader::getTexEnv ( int  unit_index) const
inline

Definition at line 2147 of file Shader.hpp.

References vl::RS_TexEnv.

◆ getTexEnv() [2/2]

TexEnv* vl::Shader::getTexEnv ( int  unit_index)
inline

Definition at line 2149 of file Shader.hpp.

References vl::RS_TexEnv.

◆ getTexGen() [1/2]

const TexGen* vl::Shader::getTexGen ( int  unit_index) const
inline

Definition at line 2155 of file Shader.hpp.

References vl::RS_TexGen.

◆ getTexGen() [2/2]

TexGen* vl::Shader::getTexGen ( int  unit_index)
inline

Definition at line 2157 of file Shader.hpp.

References vl::RS_TexGen.

◆ getTextureMatrix() [1/2]

const TextureMatrix* vl::Shader::getTextureMatrix ( int  unit_index) const
inline

Definition at line 2163 of file Shader.hpp.

References vl::RS_TextureMatrix.

◆ getTextureMatrix() [2/2]

TextureMatrix* vl::Shader::getTextureMatrix ( int  unit_index)
inline

Definition at line 2165 of file Shader.hpp.

References vl::RS_TextureMatrix.

◆ getTextureSampler() [1/2]

const TextureSampler* vl::Shader::getTextureSampler ( int  unit_index) const
inline

Definition at line 2139 of file Shader.hpp.

References vl::RS_TextureSampler.

Referenced by vl::RaycastVolume::updateUniforms().

◆ getTextureSampler() [2/2]

TextureSampler* vl::Shader::getTextureSampler ( int  unit_index)
inline

Definition at line 2141 of file Shader.hpp.

References vl::RS_TextureSampler.

◆ getUniform() [1/2]

Uniform* vl::Shader::getUniform ( const char *  name)
inline

Equivalent to gocUniformSet()->getUniform(...)

Definition at line 2231 of file Shader.hpp.

References vl::Uniform::getUniform().

◆ getUniform() [2/2]

const Uniform* vl::Shader::getUniform ( const char *  name) const
inline

Equivalent to gocUniformSet()->getUniform(...)

Definition at line 2234 of file Shader.hpp.

References vl::Uniform::getUniform().

◆ getUniformSet() [1/2]

UniformSet* vl::Shader::getUniformSet ( )
inline

◆ getUniformSet() [2/2]

const UniformSet* vl::Shader::getUniformSet ( ) const
inline

◆ getVertexAttrib() [1/2]

const VertexAttrib * Shader::getVertexAttrib ( int  attr_index) const

◆ getVertexAttrib() [2/2]

VertexAttrib * Shader::getVertexAttrib ( int  attr_index)

◆ glslProgram() [1/2]

const GLSLProgram* vl::Shader::glslProgram ( ) const
inline

◆ glslProgram() [2/2]

GLSLProgram* vl::Shader::glslProgram ( )
inline

Returns the GLSLProgram associated to a Shader (if any)

Definition at line 2208 of file Shader.hpp.

◆ gocAlphaFunc()

AlphaFunc * Shader::gocAlphaFunc ( )

Definition at line 117 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::ObjLoader::loadOBJ(), and vl::VectorGraphics::popScissor().

◆ gocBlendColor()

BlendColor * Shader::gocBlendColor ( )

Definition at line 147 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocBlendEquation()

BlendEquation * Shader::gocBlendEquation ( )

Definition at line 115 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocBlendFunc()

BlendFunc * Shader::gocBlendFunc ( )

Definition at line 149 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::loadAC3D(), and vl::VectorGraphics::popScissor().

◆ gocClipPlane()

ClipPlane * Shader::gocClipPlane ( int  plane_index)

Definition at line 165 of file Shader.cpp.

References GET_OR_CREATE_IDX.

◆ gocColor()

Color * Shader::gocColor ( )

◆ gocColorMask()

ColorMask * Shader::gocColorMask ( )

◆ gocCullFace()

CullFace * Shader::gocCullFace ( )

Definition at line 95 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocDepthFunc()

DepthFunc * Shader::gocDepthFunc ( )

Definition at line 99 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::OcclusionCullRenderer::OcclusionCullRenderer().

◆ gocDepthMask()

DepthMask * Shader::gocDepthMask ( )

Definition at line 101 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::OcclusionCullRenderer::OcclusionCullRenderer().

◆ gocDepthRange()

DepthRange * Shader::gocDepthRange ( )

Definition at line 129 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocEnableSet()

EnableSet* vl::Shader::gocEnableSet ( )
inline

Definition at line 2238 of file Shader.hpp.

◆ gocFog()

Fog * Shader::gocFog ( )

Definition at line 123 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocFrontFace()

FrontFace * Shader::gocFrontFace ( )

Definition at line 97 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocGLSLProgram()

GLSLProgram * Shader::gocGLSLProgram ( )

Gets or creates a GLSLProgram and returns it.

Definition at line 89 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocHint()

Hint * Shader::gocHint ( )

Definition at line 93 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocLight()

Light * Shader::gocLight ( int  light_index)

Definition at line 159 of file Shader.cpp.

References GET_OR_CREATE_IDX.

◆ gocLightModel()

LightModel * Shader::gocLightModel ( )

◆ gocLineStipple()

LineStipple * Shader::gocLineStipple ( )

Definition at line 135 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocLineWidth()

LineWidth * Shader::gocLineWidth ( )

◆ gocLogicOp()

LogicOp * Shader::gocLogicOp ( )

Definition at line 127 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocMaterial()

Material * Shader::gocMaterial ( )

◆ gocNormal()

Normal * Shader::gocNormal ( )

Definition at line 107 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocPixelTransfer()

PixelTransfer * Shader::gocPixelTransfer ( )

Definition at line 91 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocPointParameter()

PointParameter * Shader::gocPointParameter ( )

Definition at line 139 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocPointSize()

PointSize * Shader::gocPointSize ( )

Definition at line 133 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocPolygonMode()

PolygonMode * Shader::gocPolygonMode ( )

Definition at line 111 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::DaeLoader::setupLights().

◆ gocPolygonOffset()

PolygonOffset * Shader::gocPolygonOffset ( )

Definition at line 125 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::OcclusionCullRenderer::OcclusionCullRenderer().

◆ gocPolygonStipple()

PolygonStipple * Shader::gocPolygonStipple ( )

Definition at line 137 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocRenderStateSet()

RenderStateSet* vl::Shader::gocRenderStateSet ( )
inline

Definition at line 2244 of file Shader.hpp.

Referenced by vl::Rendering::fillRenderQueue().

◆ gocSampleCoverage()

SampleCoverage * Shader::gocSampleCoverage ( )

Definition at line 151 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocSecondaryColor()

SecondaryColor * Shader::gocSecondaryColor ( )

Definition at line 105 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocShadeModel()

ShadeModel * Shader::gocShadeModel ( )

Definition at line 113 of file Shader.cpp.

References GET_OR_CREATE.

◆ gocStencilFunc()

StencilFunc * Shader::gocStencilFunc ( )

Definition at line 141 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocStencilMask()

StencilMask * Shader::gocStencilMask ( )

Definition at line 145 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocStencilOp()

StencilOp * Shader::gocStencilOp ( )

Definition at line 143 of file Shader.cpp.

References GET_OR_CREATE.

Referenced by vl::VectorGraphics::popScissor().

◆ gocTexEnv()

TexEnv * Shader::gocTexEnv ( int  unit_index)

Definition at line 175 of file Shader.cpp.

References GET_OR_CREATE_IDX.

Referenced by vl::VectorGraphics::popScissor().

◆ gocTexGen()

TexGen * Shader::gocTexGen ( int  unit_index)

Definition at line 173 of file Shader.cpp.

References GET_OR_CREATE_IDX.

◆ gocTextureMatrix()

TextureMatrix * Shader::gocTextureMatrix ( int  unit_index)

Definition at line 177 of file Shader.cpp.

References GET_OR_CREATE_IDX.

◆ gocTextureSampler()

TextureSampler * Shader::gocTextureSampler ( int  unit_index)

◆ gocUniform()

Uniform* vl::Shader::gocUniform ( const char *  name)
inline

Equivalent to gocUniformSet()->gocUniform(...)

Definition at line 2228 of file Shader.hpp.

◆ gocUniformSet()

UniformSet* vl::Shader::gocUniformSet ( )
inline

Returns the UniformSet installed (creating it if no UniformSet has been installed)

See also

Definition at line 2260 of file Shader.hpp.

◆ gocVertexAttrib()

VertexAttrib * Shader::gocVertexAttrib ( int  attr_index)

Definition at line 153 of file Shader.cpp.

References GET_OR_CREATE_IDX.

◆ isBlendingEnabled()

bool vl::Shader::isBlendingEnabled ( ) const
inline

◆ isEnabled()

int vl::Shader::isEnabled ( EEnable  capability) const
inline

Definition at line 2175 of file Shader.hpp.

Referenced by vl::DaeLoader::load().

◆ lastUpdateTime()

real vl::Shader::lastUpdateTime ( ) const
inline

Last time this Actor was animated/updated using a shaderAnimator().

Definition at line 2341 of file Shader.hpp.

Referenced by vl::Rendering::fillRenderQueue().

◆ renderState() [1/2]

const RenderState* vl::Shader::renderState ( ERenderState  type,
int  index = 0 
) const
inline

Definition at line 2187 of file Shader.hpp.

References NULL.

◆ renderState() [2/2]

RenderState* vl::Shader::renderState ( ERenderState  type,
int  index = 0 
)
inline

Definition at line 2189 of file Shader.hpp.

◆ renderStates() [1/2]

const RenderStateSlot* vl::Shader::renderStates ( ) const
inline

Definition at line 2193 of file Shader.hpp.

◆ renderStates() [2/2]

RenderStateSlot* vl::Shader::renderStates ( )
inline

Definition at line 2195 of file Shader.hpp.

◆ renderStatesCount()

size_t vl::Shader::renderStatesCount ( ) const
inline

Definition at line 2191 of file Shader.hpp.

◆ reset()

void vl::Shader::reset ( )
inline

Disables everything, erases all the render states, erases all the uniforms.

Definition at line 1967 of file Shader.hpp.

◆ scissor() [1/2]

const Scissor* vl::Shader::scissor ( ) const
inline

Returns the Scissor to be used when rendering an Actor.

See also

Definition at line 2320 of file Shader.hpp.

Referenced by vl::OcclusionCullRenderer::render_pass2(), and vl::Renderer::renderRaw().

◆ scissor() [2/2]

Scissor* vl::Shader::scissor ( )
inline

Returns the Scissor to be used when rendering an Actor.

See also

Definition at line 2329 of file Shader.hpp.

◆ setEnableSet()

void vl::Shader::setEnableSet ( EnableSet es)
inline

Definition at line 2286 of file Shader.hpp.

Referenced by vl::DaeLoader::load().

◆ setLastUpdateTime()

void vl::Shader::setLastUpdateTime ( real  time)
inline

Used internally.

Definition at line 2344 of file Shader.hpp.

Referenced by vl::Rendering::fillRenderQueue().

◆ setRenderState() [1/2]

void vl::Shader::setRenderState ( RenderStateNonIndexed renderstate)
inline

◆ setRenderState() [2/2]

void vl::Shader::setRenderState ( RenderState renderstate,
int  index 
)
inline

Definition at line 2185 of file Shader.hpp.

◆ setRenderStateSet()

void vl::Shader::setRenderStateSet ( RenderStateSet rss)
inline

Definition at line 2288 of file Shader.hpp.

Referenced by vl::DaeLoader::load().

◆ setScissor()

void vl::Shader::setScissor ( Scissor scissor)
inline

Sets the Scissor to be used when rendering an Actor.

Note
You can also define a Scissor on a per-Actor basis using the function Actor::setScissor(). In case both the Shader's and the Actor's Scissor are defined the Actor's Scissor is used.
See also

Definition at line 2311 of file Shader.hpp.

◆ setShaderAnimator()

void vl::Shader::setShaderAnimator ( ShaderAnimator animator)
inline

Installs the ShaderAnimator used to update/animate a Shader (see vl::ShaderAnimator documentation).

Definition at line 2332 of file Shader.hpp.

◆ setUniform()

void vl::Shader::setUniform ( Uniform uniform)
inline

Equivalent to gocUniformSet()->setUniform(...)

Definition at line 2213 of file Shader.hpp.

References VL_CHECK.

Referenced by vl::VLXClassWrapper_Shader::importShader(), vl::ShaderNode::inherit(), and vl::Terrain::init().

◆ setUniformSet()

void vl::Shader::setUniformSet ( UniformSet us)
inline

◆ shaderAnimator() [1/2]

ShaderAnimator* vl::Shader::shaderAnimator ( )
inline

Returns the ShaderAnimator used to update/animate a Shader (see vl::ShaderAnimator documentation).

Definition at line 2335 of file Shader.hpp.

Referenced by vl::Rendering::fillRenderQueue().

◆ shaderAnimator() [2/2]

const ShaderAnimator* vl::Shader::shaderAnimator ( ) const
inline

Returns the ShaderAnimator used to update/animate a Shader (see vl::ShaderAnimator documentation).

Definition at line 2338 of file Shader.hpp.

◆ shallowCopy()

ref<Shader> vl::Shader::shallowCopy ( ) const
inline

Returns the shallow copy of a Shader.

Definition at line 1857 of file Shader.hpp.

References shallowCopyFrom().

◆ shallowCopyFrom()

Shader& vl::Shader::shallowCopyFrom ( const Shader other)
inline

Performs a shallow copy from the given Shader.

The render states and the uniforms are shallow-copied however the Shader retains its own RenderStateSet, UniformSet and EnableSet.

Definition at line 1866 of file Shader.hpp.

References mEnableSet, mRenderStateSet, mScissor, mShaderAnimator, mUniformSet, NULL, vl::RenderStateSet::shallowCopyFrom(), and vl::UniformSet::shallowCopyFrom().

Referenced by shallowCopy().

◆ uniforms()

const std::vector< ref<Uniform> >& vl::Shader::uniforms ( ) const
inline

Equivalent to gocUniformSet()->uniforms(...)

Definition at line 2216 of file Shader.hpp.

Referenced by vl::VLXClassWrapper_Shader::exportShader().

Member Data Documentation

◆ mEnableSet

ref<EnableSet> vl::Shader::mEnableSet
protected

Definition at line 2358 of file Shader.hpp.

Referenced by deepCopyFrom(), and shallowCopyFrom().

◆ mLastUpdateTime

real vl::Shader::mLastUpdateTime
protected

Definition at line 2362 of file Shader.hpp.

Referenced by Shader().

◆ mRenderStateSet

ref<RenderStateSet> vl::Shader::mRenderStateSet
protected

Definition at line 2357 of file Shader.hpp.

Referenced by deepCopyFrom(), and shallowCopyFrom().

◆ mScissor

ref<Scissor> vl::Shader::mScissor
protected

Definition at line 2360 of file Shader.hpp.

Referenced by deepCopyFrom(), and shallowCopyFrom().

◆ mShaderAnimator

ref<ShaderAnimator> vl::Shader::mShaderAnimator
protected

Definition at line 2361 of file Shader.hpp.

Referenced by deepCopyFrom(), and shallowCopyFrom().

◆ mUniformSet

ref<UniformSet> vl::Shader::mUniformSet
protected

Definition at line 2359 of file Shader.hpp.

Referenced by deepCopyFrom(), and shallowCopyFrom().


The documentation for this class was generated from the following files: