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.