GL Studio C++ Runtime API
IGlsStateManagerES20 Interface Referenceabstract

#include <gls_state_manager_es20_interface.h>

Inheritance diagram for IGlsStateManagerES20:
IGlsStateManager NonCopyable

Classes

struct  gl_LightSourceParameters
 

Public Member Functions

virtual GlsMatrixTypeGetTopModelViewMatrix ()=0
 
virtual GlsMatrixTypeGetTopProjMatrix ()=0
 
virtual void TangentArrayEnabled (bool val)=0
 
virtual void BinormalArrayEnabled (bool val)=0
 
virtual void TangentPointer (GLenum type, GLsizei stride, const GLvoid *pointer)=0
 
virtual void BinormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer)=0
 
virtual void AlphaBlendFuncSeparate (GLenum srcColor, GLenum dstColor, GLenum srcAlpha, GLenum dstAlpha)=0
 
virtual void AlphaBlendFunc (GLenum src, GLenum dst)=0
 
virtual void PushAlphaBlendFunc ()=0
 Push the current alpha blend function on the stack. More...
 
virtual void PopAlphaBlendFunc ()=0
 Pop the current alpha blend function off the stack. More...
 
virtual gl_LightSourceParametersGetLightSourceParameters (unsigned int index)=0
 
virtual void PushCustomShaderProgram (GlsEffect *effect, const GLboolean useProgramImmediately)=0
 
virtual void PopCustomShaderProgram ()=0
 
virtual bool HasCustomShader () const =0
 
virtual void UpdateShaderProgram (const GLboolean forceUpdate)=0
 
virtual void UpdateShaderAttributes ()=0
 
virtual void UpdateShaderUniforms ()=0
 
- Public Member Functions inherited from IGlsStateManager
virtual void AlphaBlendFuncSeparate (GLenum srcColor, GLenum dstColor, GLenum srcAlpha, GLenum dstAlpha)=0
 
virtual void SetDefaultAlphaBlendFunc ()=0
 Sets the default blend function for GL Studio.
 
virtual void PushAlphaBlendFunc ()=0
 Pushes the current alpha blend func onto an internal stack. Can restore the pushed alpha blend func by calling PopAlphaBlendFunc. More...
 
virtual void PopAlphaBlendFunc ()=0
 Pops the previously pushed alpha blend func from the stack and restores its state to the opengl context. More...
 
virtual void AlphaBlendFunc (GLenum src, GLenum dst)=0
 

Protected Member Functions

 IGlsStateManagerES20 ()
 
 ~IGlsStateManagerES20 ()
 
- Protected Member Functions inherited from IGlsStateManager
 IGlsStateManager ()
 
virtual ~IGlsStateManager ()
 

Detailed Description

The interface to a state manager that manages the GL Studio runtime library's use of the OpenGL context, minimizing unnecessary state changes, and has support for managing shaders.

Constructor & Destructor Documentation

◆ IGlsStateManagerES20()

IGlsStateManagerES20 ( )
inlineprotected

empty ctor

◆ ~IGlsStateManagerES20()

~IGlsStateManagerES20 ( )
inlineprotected

empty dtor

Member Function Documentation

◆ AlphaBlendFunc()

virtual void AlphaBlendFunc ( GLenum  src,
GLenum  dst 
)
pure virtual

Set the alpha blend function.

Parameters
srcFunction to use for source color.
dstFunction to use for destination color.

Implements IGlsStateManager.

◆ AlphaBlendFuncSeparate()

virtual void AlphaBlendFuncSeparate ( GLenum  srcColor,
GLenum  dstColor,
GLenum  srcAlpha,
GLenum  dstAlpha 
)
pure virtual

Set the alpha blend function separately for RGB and A channels.

Parameters
srcColorFunction to use for source color.
dstColorFunction to use for destination color.
srcAlphaFunction to use for source alpha.
dstAlphaFunction to use for destination alpha.

Implements IGlsStateManager.

◆ BinormalArrayEnabled()

virtual void BinormalArrayEnabled ( bool  val)
pure virtual

Enable or disable the binormal array vertex attribute.

Parameters
valThe new state flag to set.

◆ BinormalPointer()

virtual void BinormalPointer ( GLenum  type,
GLsizei  stride,
const GLvoid *  pointer 
)
pure virtual

Set the vertex attribute pointer (to underlying data) for the binormal array.

Parameters
typeMust be GL_FLOAT.
strideThe stride in bytes between binormal elements in the vertex data.
pointerThe vertex data.

◆ GetLightSourceParameters()

virtual gl_LightSourceParameters & GetLightSourceParameters ( unsigned int  index)
pure virtual
Returns
The light source paramters for the given light index.
Parameters
indexThe light index whose parameters are to be returned.

◆ GetTopModelViewMatrix()

virtual GlsMatrixType & GetTopModelViewMatrix ( )
pure virtual
Returns
A reference to the top of the modelview matrix stack.

◆ GetTopProjMatrix()

virtual GlsMatrixType & GetTopProjMatrix ( )
pure virtual
Returns
A reference to the top of the projection matrix stack.

◆ HasCustomShader()

virtual bool HasCustomShader ( ) const
pure virtual
Returns
True if there is at least one custom shader on the stack.

◆ PopAlphaBlendFunc()

virtual void PopAlphaBlendFunc ( )
pure virtual

Pop the current alpha blend function off the stack.

Implements IGlsStateManager.

◆ PopCustomShaderProgram()

virtual void PopCustomShaderProgram ( )
pure virtual

Pop the custom shader program stack enabling the next custom shader program on the stack if there is one

Precondition
number of custom shader programs is > 0
Postcondition
the custom shader program stack is popped enabling the next custom shader program on the stack if there is one

◆ PushAlphaBlendFunc()

virtual void PushAlphaBlendFunc ( )
pure virtual

Push the current alpha blend function on the stack.

Implements IGlsStateManager.

◆ PushCustomShaderProgram()

virtual void PushCustomShaderProgram ( GlsEffect effect,
const GLboolean  useProgramImmediately 
)
pure virtual

Enable the given custom shader program and push it to the top of the custom shader program stack

Parameters
effectcustom shader program
useProgramImmediatelyGL_TRUE if custom shader program should immediately be set as the active shader program else GL_FALSE to allow the state manager to set the program active when it is needed
Precondition
number of custom shader programs is < CUSTOM_SHADER_PROGRAM_STACK_DEPTH
Postcondition
the given custom shader program is at the top of the custom shader program stack and is enabled, it is set to the current active shader program if useProgramImmediately is GL_TRUE

◆ TangentArrayEnabled()

virtual void TangentArrayEnabled ( bool  val)
pure virtual

Enable or disable the tangent array vertex attribute.

Parameters
valThe new state flag to set.

◆ TangentPointer()

virtual void TangentPointer ( GLenum  type,
GLsizei  stride,
const GLvoid *  pointer 
)
pure virtual

Set the vertex attribute pointer (to underlying data) for the tangent array.

Parameters
typeMust be GL_FLOAT.
strideThe stride in bytes between tangent elements in the vertex data.
pointerThe vertex data.

◆ UpdateShaderAttributes()

virtual void UpdateShaderAttributes ( )
pure virtual

Update the attributes for the current shader as needed

Precondition
none
Postcondition
Appropriate attributes for the current shader are updated

◆ UpdateShaderProgram()

virtual void UpdateShaderProgram ( const GLboolean  forceUpdate)
pure virtual

Select the appropriate shader program based on the current settings and update the current shader program if needed

Parameters
forceUpdateGL_TRUE to force uniforms to be updated as if shader program changed
Precondition
none
Postcondition
appropriate shader program based on the current settings is active

◆ UpdateShaderUniforms()

virtual void UpdateShaderUniforms ( )
pure virtual

Update the uniforms for the current shader as needed

Precondition
none
Postcondition
Appropriate uniforms for the current shader are updated

The documentation for this interface was generated from the following file: