44 #ifndef DISTI_GLS_STATE_MANAGER_INTERFACE_H_INCLUDED
45 #define DISTI_GLS_STATE_MANAGER_INTERFACE_H_INCLUDED
55 #ifndef LESS_MAX_LIGHTS
73 GLS_EXPORT
virtual void AlphaBlendFuncSeparate( GLenum srcColor, GLenum dstColor, GLenum srcAlpha, GLenum dstAlpha ) = 0;
81 GLS_EXPORT
virtual void AlphaBlendFunc( GLenum src, GLenum dst ) = 0;
86 GLS_TEXTURE_MAP_MODE_MODULATE = 0x2100,
87 GLS_TEXTURE_MAP_MODE_DECAL = 0x2101,
88 GLS_TEXTURE_MAP_MODE_BLEND = 0x0BE2,
89 GLS_TEXTURE_MAP_MODE_REPLACE = 0x1E01
96 GLS_EXPORT
virtual void SetDefaultState(
bool forceResetUnmanagedState =
false ) = 0;
104 MATRIX_STACK_DEPTH = 64u,
105 PROJECTION_STACK_DEPTH = 64u,
106 TEXTURE_STACK_DEPTH = 64u,
107 CUSTOM_SHADER_PROGRAM_STACK_DEPTH = 64u
114 GLS_EXPORT
virtual void LoadProjectionMatrixf(
const GlsMatrixType& m ) = 0;
116 GLS_EXPORT
virtual void LoadProjectionIdentityMatrix(
void ) = 0;
118 GLS_EXPORT
virtual void PushProjectionMatrix(
void ) = 0;
120 GLS_EXPORT
virtual void PopProjectionMatrix(
void ) = 0;
126 GLS_EXPORT
virtual void LoadModelViewMatrixf(
const GlsMatrixType& m ) = 0;
128 GLS_EXPORT
virtual void LoadModelViewIdentityMatrix(
void ) = 0;
138 GLS_EXPORT
virtual void MultModelViewMatrixf(
const GlsMatrixType& m,
const GLboolean pushMatrix ) = 0;
145 GLS_EXPORT
virtual void TranslateModelViewMatrixf( GLfloat x, GLfloat y, GLfloat z ) = 0;
151 GLS_EXPORT
virtual void PushModelViewMatrix(
void ) = 0;
157 GLS_EXPORT
virtual void PopModelViewMatrix(
void ) = 0;
163 GLS_EXPORT
virtual void LoadTextureMatrixf(
const GlsMatrixType& m ) = 0;
165 GLS_EXPORT
virtual void LoadTextureIdentityMatrix(
void ) = 0;
172 GLS_EXPORT
virtual void ScaleTextureMatrixf( GLfloat x, GLfloat y, GLfloat z ) = 0;
179 GLS_EXPORT
virtual void TranslateTextureMatrixf( GLfloat x, GLfloat y, GLfloat z ) = 0;
185 GLS_EXPORT
virtual void PushTextureMatrix(
void ) = 0;
191 GLS_EXPORT
virtual void PopTextureMatrix(
void ) = 0;
198 GLS_EXPORT
virtual void AlphaBlendEnabled(
bool val ) = 0;
199 GLS_EXPORT
virtual void AlphaTestEnabled(
bool val ) = 0;
200 GLS_EXPORT
virtual void AlphaTestFunc( GLenum func, GLfloat val ) = 0;
202 GLS_EXPORT
virtual void DepthTestEnabled(
bool val ) = 0;
203 GLS_EXPORT
virtual void DepthMaskEnabled(
bool val ) = 0;
204 GLS_EXPORT
virtual bool IsDepthMaskEnabled(
void ) = 0;
205 GLS_EXPORT
virtual void DepthFunc( GLenum func ) = 0;
206 GLS_EXPORT
virtual void DepthRange( GLfloat min, GLfloat max ) = 0;
208 GLS_EXPORT
virtual void BackfaceCullingEnabled(
bool val ) = 0;
210 GLS_EXPORT
virtual void Texture2DEnabled(
bool val ) = 0;
211 GLS_EXPORT
virtual void ActiveTexture( GLenum textureUnit ) = 0;
212 GLS_EXPORT
virtual void BindTexture(
IFontImage* texture ) = 0;
213 GLS_EXPORT
virtual void DeleteTexture(
IFontImage* texture ) = 0;
214 GLS_EXPORT
virtual void SetTextureWrapS( GLenum mode ) = 0;
215 GLS_EXPORT
virtual void SetTextureWrapT( GLenum mode ) = 0;
216 GLS_EXPORT
virtual void SetTextureEnvMode( GLenum mode ) = 0;
217 GLS_EXPORT
virtual void SetTextureBlendColor( GLfloat* color ) = 0;
218 GLS_EXPORT
virtual void SetTextureMinFilter( GLenum mode ) = 0;
219 GLS_EXPORT
virtual void SetTextureMagFilter( GLenum mode ) = 0;
221 GLS_EXPORT
virtual void BindIndexBuffer(
unsigned int handle ) = 0;
222 GLS_EXPORT
virtual void BindVertexBuffer(
unsigned int handle ) = 0;
224 GLS_EXPORT
virtual void VertexArrayEnabled(
bool val ) = 0;
225 GLS_EXPORT
virtual void NormalArrayEnabled(
bool val ) = 0;
226 GLS_EXPORT
virtual void TextureArrayEnabled(
bool val ) = 0;
227 GLS_EXPORT
virtual void ColorArrayEnabled(
bool val ) = 0;
229 GLS_EXPORT
virtual void VertexPointer( GLint size, GLenum type, GLsizei stride,
const GLvoid* pointer ) = 0;
230 GLS_EXPORT
virtual void TexCoordPointer( GLint size, GLenum type, GLsizei stride,
const GLvoid* pointer ) = 0;
231 GLS_EXPORT
virtual void NormalPointer( GLenum type, GLsizei stride,
const GLvoid* pointer ) = 0;
232 GLS_EXPORT
virtual void ColorPointer( GLint size, GLenum type, GLsizei stride,
const GLvoid* pointer ) = 0;
234 GLS_EXPORT
virtual void LineSmoothEnabled(
bool val ) = 0;
235 GLS_EXPORT
virtual void LineWidth(
float width ) = 0;
236 GLS_EXPORT
virtual void PointSize(
float size ) = 0;
237 GLS_EXPORT
virtual void LineStipple(
unsigned short pattern,
unsigned int multiplier ) = 0;
238 GLS_EXPORT
virtual void SetColor(
const glsColor& color ) = 0;
239 GLS_EXPORT
virtual void Normal3f(
float x,
float y,
float z ) = 0;
241 GLS_EXPORT
virtual void AmbientMaterial(
const glsColor& color ) = 0;
242 GLS_EXPORT
virtual void DiffuseMaterial(
const glsColor& color ) = 0;
243 GLS_EXPORT
virtual void SpecularMaterial(
const glsColor& color ) = 0;
244 GLS_EXPORT
virtual void EmissionMaterial(
const glsColor& color ) = 0;
245 GLS_EXPORT
virtual void ShininessMaterial(
float shininess ) = 0;
247 GLS_EXPORT
virtual void LightingEnabled(
bool val ) = 0;
248 GLS_EXPORT
virtual void GouraudShadingEnabled(
bool val ) = 0;
249 GLS_EXPORT
virtual bool IsLightingEnabled(
void ) = 0;
250 GLS_EXPORT
virtual bool IsLightSourceEnabled(
unsigned int index ) = 0;
251 GLS_EXPORT
virtual unsigned int GetMaxNumLights(
void ) = 0;
252 GLS_EXPORT
virtual void SetLightEnabled(
unsigned int index,
bool enabled ) = 0;
256 GLS_EXPORT
virtual void SetLightAmbientColor(
unsigned int index, GLfloat* color ) = 0;
257 GLS_EXPORT
virtual void GetLightAmbientColor(
unsigned int index, GLfloat* color ) = 0;
258 GLS_EXPORT
virtual void SetLightDiffuseColor(
unsigned int index, GLfloat* color ) = 0;
259 GLS_EXPORT
virtual void GetLightDiffuseColor(
unsigned int index, GLfloat* color ) = 0;
260 GLS_EXPORT
virtual void SetLightSpecularColor(
unsigned int index, GLfloat* color ) = 0;
261 GLS_EXPORT
virtual void GetLightSpecularColor(
unsigned int index, GLfloat* color ) = 0;
262 GLS_EXPORT
virtual void SetLightPosition(
unsigned int index, GLfloat* position ) = 0;
263 GLS_EXPORT
virtual void GetLightPosition(
unsigned int index, GLfloat* position ) = 0;
264 GLS_EXPORT
virtual void SetSpotlightDirection(
unsigned int index, GLfloat* direction ) = 0;
265 GLS_EXPORT
virtual void GetSpotlightDirection(
unsigned int index, GLfloat* direction ) = 0;
266 GLS_EXPORT
virtual void SetSpotlightCutoff(
unsigned int index, GLfloat cutoff ) = 0;
267 GLS_EXPORT
virtual GLfloat GetSpotlightCutoff(
unsigned int index ) = 0;
268 GLS_EXPORT
virtual void SetSpotlightExponent(
unsigned int index, GLfloat exponent ) = 0;
269 GLS_EXPORT
virtual GLfloat GetSpotlightExponent(
unsigned int index ) = 0;
270 GLS_EXPORT
virtual void SetLightAttenuation(
unsigned int index, GLfloat constant, GLfloat linear, GLfloat quadratic ) = 0;
271 GLS_EXPORT
virtual void GetLightAttenuation(
unsigned int index, GLfloat& constant, GLfloat& linear, GLfloat& quadratic ) = 0;
273 GLS_EXPORT
virtual unsigned int GetMaxClipPlanes(
void ) = 0;
277 GLS_EXPORT
virtual void ClipPlanef(
unsigned int index,
float* equation ) = 0;
278 GLS_EXPORT
virtual void GetClipPlanef(
unsigned int index,
float* equation ) = 0;
280 GLS_EXPORT
virtual void EnableClipPlane(
unsigned int index ) = 0;
281 GLS_EXPORT
virtual void DisableClipPlane(
unsigned int index ) = 0;
282 GLS_EXPORT
virtual bool IsClipPlaneEnabled(
unsigned int index ) = 0;
293 GLS_EXPORT
virtual void DrawArrays(
const GLenum mode,
const GLint first,
const GLsizei count ) = 0;
306 GLS_EXPORT
virtual void DrawElements(
const GLenum mode,
const GLsizei count,
const GLenum type,
const GLvoid* indices ) = 0;
322 #endif // DISTI_GLS_STATE_MANAGER_INTERFACE_H_INCLUDED
virtual void AlphaBlendFuncSeparate(GLenum srcColor, GLenum dstColor, GLenum srcAlpha, GLenum dstAlpha)=0
Definition: IFontImage.h:53
virtual void PopAlphaBlendFunc()=0
A base class for objects that are not copyable via the standard C++ copy constructor.
The GlsMatrixAffine class.
IGlsStateManager()
Definition: gls_state_manager_interface.h:311
Definition: gls_state_manager_interface.h:67
The Color class: Implements a 4 component RGBA color.
A file for all GL Studio files to include.
virtual void PushAlphaBlendFunc()=0
Definition: scoped_ptr.h:53
Definition: gls_color.h:53
A smart pointer with unique ownership – poor man's std::unique_ptr.
virtual void SetDefaultAlphaBlendFunc()=0
Definition: non_copyable.h:45
Definition: bmpimage.h:46
virtual void AlphaBlendFunc(GLenum src, GLenum dst)=0
virtual ~IGlsStateManager()
Definition: gls_state_manager_interface.h:316