GL Studio C++ Runtime API
gls_gl.h
Go to the documentation of this file.
1/*! \file
2 \brief The gls_gl.
3
4 \par Copyright Information
5
6 Copyright (c) 2017 by The DiSTI Corporation.<br>
7 11301 Corporate Blvd; Suite 100<br>
8 Orlando, Florida 32817<br>
9 USA<br>
10 <br>
11 All rights reserved.<br>
12
13 This Software contains proprietary trade secrets of DiSTI and may not be
14reproduced, in whole or part, in any form, or by any means of electronic,
15mechanical, or otherwise, without the written permission of DiSTI. Said
16permission may be derived through the purchase of applicable DiSTI product
17licenses which detail the distribution rights of this content and any
18Derivative Works based on this or other copyrighted DiSTI Software.
19
20 NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26
27 LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34EXCEED FIVE DOLLARS (US$5.00).
35
36 The aforementioned terms and restrictions are governed by the laws of the
37State of Florida and the United States of America.
38
39*/
40#ifndef _GLS_GL_H
41#define _GLS_GL_H
42
43#ifdef WIN32
44# include <windows.h>
45#endif
46
47#ifdef GLES
48
49# ifdef GLES20 // OpenGL ES2.0
50# ifdef __APPLE__
51# include <OpenGLES/ES2/gl.h>
52# include <OpenGLES/ES2/glext.h>
53# else
54# include <GLES2/gl2.h>
55# include <GLES2/gl2ext.h>
56# endif
57# else // OpenGL ES1.1
58# ifdef __APPLE__
59# include <OpenGLES/ES1/gl.h>
60# include <OpenGLES/ES1/glext.h>
61# define GL_UNSIGNED_INT GL_UNSIGNED_INT_OES
62# else
63# include <GLES/gl.h>
64# include <GLES/glext.h>
65# endif
66# endif
67
68// hack for ES driver that doesn't define GL_UNSIGNED_INT
69# ifndef GL_UNSIGNED_INT
70# define GL_UNSIGNED_INT 0x1405
71# endif
72
73// hack for imx.53 board which does not define GLchar in gl2.h or gl2ext.h
74# ifndef GLchar
75# define GLchar char
76# endif
77
78#else // Standard OpenGL
79# ifdef __APPLE__
80# include <OpenGL/gl.h>
81# else
82# include <GL/gl.h>
83# endif
84#endif
85
86#include "gls_include.h"
87
88#ifndef GLES
89// To use these debugging methods, add #define GLS_GL_DEBUGGING here.
90
91namespace disti
92{
93# ifdef GLS_GL_DEBUGGING
94/**** alias OpenGL routines for debug library */
95GLS_EXPORT void glColor3f( GLfloat red, GLfloat green, GLfloat blue );
96GLS_EXPORT void glColor4f( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
97GLS_EXPORT void glColor4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
98GLS_EXPORT void glColor4ubv( const GLubyte* v );
99GLS_EXPORT void glNormal3fv( const GLfloat* v );
100GLS_EXPORT void glShadeModel( GLenum mode );
101GLS_EXPORT void glMaterialf( GLenum face, GLenum pname, GLfloat param );
102GLS_EXPORT void glMaterialfv( GLenum face, GLenum pname, const GLfloat* params );
103
104GLS_EXPORT void glAlphaFunc( GLenum func, GLclampf ref );
105GLS_EXPORT void glDepthMask( GLboolean flag );
106GLS_EXPORT void glDepthFunc( GLenum func );
107GLS_EXPORT void glBlendFunc( GLenum sfactor, GLenum dfactor );
108
109GLS_EXPORT void glLineWidth( GLfloat width );
110GLS_EXPORT void glPolygonMode( GLenum face, GLenum mode );
111GLS_EXPORT void glLineStipple( GLint factor, GLushort pattern );
112
113GLS_EXPORT void glGetFloatv( GLenum pname, GLfloat* params );
114GLS_EXPORT void glGetIntegerv( GLenum pname, GLint* params );
115
116GLS_EXPORT void glEnable( GLenum cap );
117GLS_EXPORT void glDisable( GLenum cap );
118
119GLS_EXPORT void glBegin( GLenum mode );
120GLS_EXPORT void glEnd();
121GLS_EXPORT void glVertex2f( GLfloat x, GLfloat y );
122GLS_EXPORT void glVertex3f( GLfloat x, GLfloat y, GLfloat z );
123GLS_EXPORT void glVertex3fv( const GLfloat* v );
124GLS_EXPORT void glPolygonOffset( GLfloat factor, GLfloat units );
125
126GLS_EXPORT void glTexParameteri( GLenum target, GLenum pname, GLint param );
127GLS_EXPORT void glTexParameterf( GLenum target, GLenum pname, GLfloat param );
128GLS_EXPORT void glTexEnvf( GLenum target, GLenum pname, GLfloat param );
129GLS_EXPORT void glTexEnvfv( GLenum target, GLenum pname, const GLfloat* params );
130GLS_EXPORT void glTexEnvi( GLenum target, GLenum pname, GLint param );
131GLS_EXPORT void glTexCoord2f( GLfloat s, GLfloat t );
132GLS_EXPORT void glTexCoord2fv( const GLfloat* v );
133GLS_EXPORT void glBindTexture( GLenum target, GLuint texture );
134
135GLS_EXPORT void glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
136GLS_EXPORT void glTranslatef( GLfloat x, GLfloat y, GLfloat z );
137GLS_EXPORT void glScalef( GLfloat x, GLfloat y, GLfloat z );
138GLS_EXPORT void glLoadIdentity();
139GLS_EXPORT void glMatrixMode( GLenum mode );
140GLS_EXPORT void glLoadMatrixf( const GLfloat* m );
141GLS_EXPORT void glPushMatrix();
142GLS_EXPORT void glPopMatrix();
143GLS_EXPORT void glMultMatrixf( const GLfloat* m );
144GLS_EXPORT void glMultMatrixd( const GLdouble* m );
145GLS_EXPORT void glLightfv( GLenum light, GLenum pname, const GLfloat* params );
146GLS_EXPORT void glLightiv( GLenum light, GLenum pname, const GLint* params );
147GLS_EXPORT void glLighti( GLenum light, GLenum pname, GLint param );
148GLS_EXPORT void glLightf( GLenum light, GLenum pname, GLfloat param );
149
150GLS_EXPORT void glViewport( GLint x, GLint y, GLsizei width, GLsizei height );
151
152GLS_EXPORT void glPixelStorei( GLenum pname, GLint param );
153GLS_EXPORT void glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels );
154GLS_EXPORT void glDrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* data );
155GLS_EXPORT void glRasterPos2d( GLdouble x, GLdouble y );
156GLS_EXPORT void glGenTextures( GLsizei n, GLuint* textures );
157GLS_EXPORT void glTexImage2D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* data );
158GLS_EXPORT void glDeleteTextures( GLsizei n, const GLuint* textures );
159GLS_EXPORT GLboolean glIsTexture( GLuint texture );
160GLS_EXPORT GLuint glGenLists( GLsizei range );
161GLS_EXPORT void glNewList( GLuint list, GLenum mode );
162GLS_EXPORT void glEndList();
163GLS_EXPORT void glCallList( GLuint list );
164
165// Call this if an OpenGL error may have been set, but you want the strict checking to ignore it.
166// This will temporarily disable strict checking, print out any errors, then enable strict checking again.
167GLS_EXPORT void StrictOpenGLChecking_ClearErrors( const char* label );
168
169// Checks for OpenGL errors and throws a disti assertion when found. Input variable label is string to notify where
170// error occured.
171GLS_EXPORT void CheckOpenGLErrors( const char* label );
172# endif // GLS_GL_DEBUGGING
173} // end namespace disti
174#endif // !GLES
175
176#endif // _GLS_GL_H
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
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47