44#ifndef DISTI_GLS_STATE_MANAGER_INTERFACE_H_INCLUDED 
   45#define DISTI_GLS_STATE_MANAGER_INTERFACE_H_INCLUDED 
   56#ifndef LESS_MAX_LIGHTS 
   96        GLS_TEXTURE_MAP_MODE_MODULATE = 0x2100, 
 
   97        GLS_TEXTURE_MAP_MODE_DECAL    = 0x2101, 
 
   98        GLS_TEXTURE_MAP_MODE_BLEND    = 0x0BE2, 
 
   99        GLS_TEXTURE_MAP_MODE_REPLACE  = 0x1E01  
 
  106    GLS_EXPORT virtual void SetDefaultState( 
bool forceResetUnmanagedState = 
false ) = 0;
 
  114        MATRIX_STACK_DEPTH                = 64u, 
 
  115        PROJECTION_STACK_DEPTH            = 64u, 
 
  116        TEXTURE_STACK_DEPTH               = 64u, 
 
  117        CUSTOM_SHADER_PROGRAM_STACK_DEPTH = 64u  
 
  126    GLS_EXPORT virtual void LoadProjectionIdentityMatrix() = 0;
 
  128    GLS_EXPORT virtual void PushProjectionMatrix() = 0;
 
  130    GLS_EXPORT virtual void PopProjectionMatrix() = 0;
 
  138    GLS_EXPORT virtual void LoadModelViewIdentityMatrix() = 0;
 
  155    GLS_EXPORT virtual void TranslateModelViewMatrixf( GLfloat x, GLfloat y, GLfloat z ) = 0;
 
  161    GLS_EXPORT virtual void PushModelViewMatrix() = 0;
 
  167    GLS_EXPORT virtual void PopModelViewMatrix() = 0;
 
  175    GLS_EXPORT virtual void LoadTextureIdentityMatrix() = 0;
 
  182    GLS_EXPORT virtual void ScaleTextureMatrixf( GLfloat x, GLfloat y, GLfloat z ) = 0;
 
  189    GLS_EXPORT virtual void TranslateTextureMatrixf( GLfloat x, GLfloat y, GLfloat z ) = 0;
 
  195    GLS_EXPORT virtual void PushTextureMatrix() = 0;
 
  201    GLS_EXPORT virtual void PopTextureMatrix() = 0;
 
  208    GLS_EXPORT virtual void AlphaBlendEnabled( 
bool val )             = 0;
 
  209    GLS_EXPORT virtual void AlphaTestEnabled( 
bool val )              = 0;
 
  210    GLS_EXPORT virtual void AlphaTestFunc( GLenum func, GLfloat val ) = 0;
 
  212    GLS_EXPORT virtual void DepthTestEnabled( 
bool val )           = 0;
 
  213    GLS_EXPORT virtual void DepthMaskEnabled( 
bool val )           = 0;
 
  214    GLS_EXPORT virtual bool IsDepthMaskEnabled()                   = 0;
 
  215    GLS_EXPORT virtual void DepthFunc( GLenum func )               = 0;
 
  216    GLS_EXPORT virtual void DepthRange( GLfloat min, GLfloat max ) = 0;
 
  218    GLS_EXPORT virtual void BackfaceCullingEnabled( 
bool val ) = 0;
 
  220    GLS_EXPORT virtual void Texture2DEnabled( 
bool val )           = 0;
 
  221    GLS_EXPORT virtual void ActiveTexture( GLenum textureUnit )    = 0;
 
  222    GLS_EXPORT virtual void BindTexture( IFontImage* texture )     = 0;
 
  223    GLS_EXPORT virtual void DeleteTexture( IFontImage* texture )   = 0;
 
  224    GLS_EXPORT virtual void SetTextureWrapS( GLenum mode )         = 0;
 
  225    GLS_EXPORT virtual void SetTextureWrapT( GLenum mode )         = 0;
 
  226    GLS_EXPORT virtual void SetTextureEnvMode( GLenum mode )       = 0;
 
  227    GLS_EXPORT virtual void SetTextureBlendColor( GLfloat* color ) = 0;
 
  228    GLS_EXPORT virtual void SetTextureMinFilter( GLenum mode )     = 0;
 
  229    GLS_EXPORT virtual void SetTextureMagFilter( GLenum mode )     = 0;
 
  231    GLS_EXPORT virtual void BindIndexBuffer( 
unsigned int handle )  = 0;
 
  232    GLS_EXPORT virtual void BindVertexBuffer( 
unsigned int handle ) = 0;
 
  234    GLS_EXPORT virtual void VertexArrayEnabled( 
bool val )  = 0;
 
  235    GLS_EXPORT virtual void NormalArrayEnabled( 
bool val )  = 0;
 
  236    GLS_EXPORT virtual void TextureArrayEnabled( 
bool val ) = 0;
 
  237    GLS_EXPORT virtual void ColorArrayEnabled( 
bool val )   = 0;
 
  239    GLS_EXPORT virtual void VertexPointer( GLint size, GLenum type, GLsizei stride, 
const GLvoid* pointer )   = 0;
 
  240    GLS_EXPORT virtual void TexCoordPointer( GLint size, GLenum type, GLsizei stride, 
const GLvoid* pointer ) = 0;
 
  241    GLS_EXPORT virtual void NormalPointer( GLenum type, GLsizei stride, 
const GLvoid* pointer )               = 0;
 
  242    GLS_EXPORT virtual void ColorPointer( GLint size, GLenum type, GLsizei stride, 
const GLvoid* pointer )    = 0;
 
  244    GLS_EXPORT virtual void  LineSmoothEnabled( 
bool val )                                  = 0;
 
  245    GLS_EXPORT virtual void  LineWidth( 
float width )                                       = 0;
 
  246    GLS_EXPORT virtual float GetMaximumLineWidth()                                          = 0;
 
  247    GLS_EXPORT virtual void  PointSize( 
float size )                                        = 0;
 
  248    GLS_EXPORT virtual void  LineStipple( 
unsigned short pattern, 
unsigned int multiplier ) = 0;
 
  250    GLS_EXPORT virtual void  Normal3f( 
float x, 
float y, 
float z )                          = 0;
 
  256    GLS_EXPORT virtual void ShininessMaterial( 
float shininess )      = 0;
 
  258    GLS_EXPORT virtual void         LightingEnabled( 
bool val )                         = 0;
 
  259    GLS_EXPORT virtual void         GouraudShadingEnabled( 
bool val )                   = 0;
 
  260    GLS_EXPORT virtual bool         IsLightingEnabled()                                 = 0;
 
  261    GLS_EXPORT virtual bool         IsLightSourceEnabled( 
unsigned int index )          = 0;
 
  262    GLS_EXPORT virtual unsigned int GetMaxNumLights()                                   = 0;
 
  263    GLS_EXPORT virtual void         SetLightEnabled( 
unsigned int index, 
bool enabled ) = 0;
 
  267    GLS_EXPORT virtual void    SetLightAmbientColor( 
unsigned int index, GLfloat* color )                                        = 0;
 
  268    GLS_EXPORT virtual void    GetLightAmbientColor( 
unsigned int index, GLfloat* color )                                        = 0;
 
  269    GLS_EXPORT virtual void    SetLightDiffuseColor( 
unsigned int index, GLfloat* color )                                        = 0;
 
  270    GLS_EXPORT virtual void    GetLightDiffuseColor( 
unsigned int index, GLfloat* color )                                        = 0;
 
  271    GLS_EXPORT virtual void    SetLightSpecularColor( 
unsigned int index, GLfloat* color )                                       = 0;
 
  272    GLS_EXPORT virtual void    GetLightSpecularColor( 
unsigned int index, GLfloat* color )                                       = 0;
 
  273    GLS_EXPORT virtual void    SetLightPosition( 
unsigned int index, GLfloat* position )                                         = 0;
 
  274    GLS_EXPORT virtual void    GetLightPosition( 
unsigned int index, GLfloat* position )                                         = 0;
 
  275    GLS_EXPORT virtual void    SetSpotlightDirection( 
unsigned int index, GLfloat* direction )                                   = 0;
 
  276    GLS_EXPORT virtual void    GetSpotlightDirection( 
unsigned int index, GLfloat* direction )                                   = 0;
 
  277    GLS_EXPORT virtual void    SetSpotlightCutoff( 
unsigned int index, GLfloat cutoff )                                          = 0;
 
  278    GLS_EXPORT virtual GLfloat GetSpotlightCutoff( 
unsigned int index )                                                          = 0;
 
  279    GLS_EXPORT virtual void    SetSpotlightExponent( 
unsigned int index, GLfloat exponent )                                      = 0;
 
  280    GLS_EXPORT virtual GLfloat GetSpotlightExponent( 
unsigned int index )                                                        = 0;
 
  281    GLS_EXPORT virtual void    SetLightAttenuation( 
unsigned int index, GLfloat constant, GLfloat linear, GLfloat quadratic )    = 0;
 
  282    GLS_EXPORT virtual void    GetLightAttenuation( 
unsigned int index, GLfloat& constant, GLfloat& linear, GLfloat& quadratic ) = 0;
 
  284    GLS_EXPORT virtual unsigned int GetMaxClipPlanes() = 0;
 
  288    GLS_EXPORT virtual void ClipPlanef( 
unsigned int index, 
float* equation )    = 0;
 
  289    GLS_EXPORT virtual void GetClipPlanef( 
unsigned int index, 
float* equation ) = 0;
 
  291    GLS_EXPORT virtual void EnableClipPlane( 
unsigned int index )    = 0;
 
  292    GLS_EXPORT virtual void DisableClipPlane( 
unsigned int index )   = 0;
 
  293    GLS_EXPORT virtual bool IsClipPlaneEnabled( 
unsigned int index ) = 0;
 
  304    GLS_EXPORT virtual void DrawArrays( 
const GLenum mode, 
const GLint first, 
const GLsizei count ) = 0;
 
  317    GLS_EXPORT virtual void DrawElements( 
const GLenum mode, 
const GLsizei count, 
const GLenum type, 
const GLvoid* indices ) = 0;
 
Definition: gls_state_manager_interface.h:69
virtual ~IGlsStateManager()
Definition: gls_state_manager_interface.h:327
virtual void SetDefaultAlphaBlendFunc()=0
Sets the default blend function for GL Studio.
IGlsStateManager()
Definition: gls_state_manager_interface.h:322
virtual void PushAlphaBlendFunc()=0
Pushes the current alpha blend func onto an internal stack. Can restore the pushed alpha blend func b...
virtual void AlphaBlendFuncSeparate(GLenum srcColor, GLenum dstColor, GLenum srcAlpha, GLenum dstAlpha)=0
virtual void AlphaBlendFunc(GLenum src, GLenum dst)=0
virtual void PopAlphaBlendFunc()=0
Pops the previously pushed alpha blend func from the stack and restores its state to the opengl conte...
Definition: non_copyable.h:47
Definition: scoped_ptr.h:54
The Color class: Implements a 4 component RGBA color.
A file for all GL Studio files to include.
#define GLS_EXPORT
Macro denoting which functions should be visible from the runtime library.
Definition: gls_include.h:52
The GlsMatrixAffine class.
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47
GlsColor glsColor
Alias for backwards compatibility.
Definition: gls_color.h:286
GlsMatrixAffineD GlsMatrixType
Typedef for a generic (float or double elements) matrix.
Definition: gls_matrix_affine.h:774
A base class for objects that are not copyable via the standard C++ copy constructor.
A smart pointer with unique ownership – poor man's std::unique_ptr.