GL Studio 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) 2015 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
14 reproduced, in whole or part, in any form, or by any means of electronic,
15 mechanical, or otherwise, without the written permission of DiSTI. Said
16 permission may be derived through the purchase of applicable DiSTI product
17 licenses which detail the distribution rights of this content and any
18 Derivative Works based on this or other copyrighted DiSTI Software.
19 
20  NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21 AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22 PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23 AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24 IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25 PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26 
27  LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28 IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29 INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30 DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31 INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32 INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33 OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34 EXCEED FIVE DOLLARS (US$5.00).
35 
36  The aforementioned terms and restrictions are governed by the laws of the
37 State 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  #include <GL/gl.h>
80 #endif
81 
82 #include "gls_include.h"
83 
84 #ifndef GLES
85 // define GLS_DEBUG or GLS_GL_DEBUGGING to use the OpenGL debug functions
86 // define NO_GLS_GL_DEBUGGING to disable the functions when GLS_DEBUG is defined
87 #if defined(GLS_DEBUG) && !defined(NO_GLS_GL_DEBUGGING)
88 #define GLS_GL_DEBUGGING
89 #endif
90 
91 namespace disti
92 {
93 
94 #ifdef GLS_GL_DEBUGGING
95  /**** alias OpenGL routines for debug library */
96  GLS_EXPORT void glColor3f(GLfloat red, GLfloat green, GLfloat blue);
97  GLS_EXPORT void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
98  GLS_EXPORT void glColor4ub(GLubyte red,GLubyte green, GLubyte blue, GLubyte alpha);
99  GLS_EXPORT void glColor4ubv(const GLubyte *v);
100  GLS_EXPORT void glNormal3fv(const GLfloat *v);
101  GLS_EXPORT void glShadeModel(GLenum mode);
102  GLS_EXPORT void glMaterialf(GLenum face, GLenum pname, GLfloat param);
103  GLS_EXPORT void glMaterialfv(GLenum face, GLenum pname, const GLfloat* params);
104 
105  GLS_EXPORT void glAlphaFunc(GLenum func, GLclampf ref);
106  GLS_EXPORT void glDepthMask(GLboolean flag);
107  GLS_EXPORT void glDepthFunc(GLenum func);
108  GLS_EXPORT void glBlendFunc(GLenum sfactor, GLenum dfactor);
109 
110  GLS_EXPORT void glLineWidth(GLfloat width);
111  GLS_EXPORT void glPolygonMode(GLenum face, GLenum mode);
112  GLS_EXPORT void glLineStipple(GLint factor, GLushort pattern);
113 
114  GLS_EXPORT void glGetFloatv(GLenum pname, GLfloat *params);
115  GLS_EXPORT void glGetIntegerv(GLenum pname, GLint *params);
116 
117  GLS_EXPORT void glEnable(GLenum cap);
118  GLS_EXPORT void glDisable(GLenum cap);
119 
120  GLS_EXPORT void glBegin(GLenum mode);
121  GLS_EXPORT void glEnd(void);
122  GLS_EXPORT void glVertex2f(GLfloat x, GLfloat y);
123  GLS_EXPORT void glVertex3f(GLfloat x, GLfloat y, GLfloat z);
124  GLS_EXPORT void glVertex3fv(const GLfloat *v);
125  GLS_EXPORT void glPolygonOffset(GLfloat factor, GLfloat units);
126 
127  GLS_EXPORT void glTexParameteri(GLenum target, GLenum pname, GLint param);
128  GLS_EXPORT void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
129  GLS_EXPORT void glTexEnvf(GLenum target, GLenum pname, GLfloat param);
130  GLS_EXPORT void glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
131  GLS_EXPORT void glTexEnvi (GLenum target, GLenum pname, GLint param);
132  GLS_EXPORT void glTexCoord2f(GLfloat s, GLfloat t);
133  GLS_EXPORT void glTexCoord2fv(const GLfloat *v);
134  GLS_EXPORT void glBindTexture(GLenum target, GLuint texture);
135 
136  GLS_EXPORT void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
137  GLS_EXPORT void glTranslatef(GLfloat x, GLfloat y, GLfloat z);
138  GLS_EXPORT void glScalef(GLfloat x, GLfloat y, GLfloat z);
139  GLS_EXPORT void glLoadIdentity(void);
140  GLS_EXPORT void glMatrixMode(GLenum mode);
141  GLS_EXPORT void glLoadMatrixf(const GLfloat *m);
142  GLS_EXPORT void glPushMatrix(void);
143  GLS_EXPORT void glPopMatrix(void);
144  GLS_EXPORT void glMultMatrixf(const GLfloat *m);
145  GLS_EXPORT void glMultMatrixd(const GLdouble *m);
146  GLS_EXPORT void glLightfv(GLenum light,GLenum pname,const GLfloat *params);
147  GLS_EXPORT void glLightiv(GLenum light,GLenum pname,const GLint *params);
148  GLS_EXPORT void glLighti(GLenum light,GLenum pname,GLint param);
149  GLS_EXPORT void glLightf(GLenum light,GLenum pname,GLfloat param);
150 
151  GLS_EXPORT void glViewport(GLint x,GLint y,GLsizei width,GLsizei height);
152 
153  GLS_EXPORT void glPixelStorei(GLenum pname, GLint param);
154  GLS_EXPORT void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
155  GLS_EXPORT void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * data);
156  GLS_EXPORT void glRasterPos2d(GLdouble x, GLdouble y);
157  GLS_EXPORT void glGenTextures(GLsizei n, GLuint* textures);
158  GLS_EXPORT void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* data);
159  GLS_EXPORT void glDeleteTextures(GLsizei n, const GLuint *textures);
160  GLS_EXPORT GLboolean glIsTexture(GLuint texture);
161  GLS_EXPORT GLuint glGenLists( GLsizei range );
162  GLS_EXPORT void glNewList( GLuint list, GLenum mode );
163  GLS_EXPORT void glEndList( void );
164  GLS_EXPORT void glCallList( GLuint list );
165 
166  // Call this if an OpenGL error may have been set, but you want the strict checking to ignore it.
167  // This will temporarily disable strict checking, print out any errors, then enable strict checking again.
168  GLS_EXPORT void StrictOpenGLChecking_ClearErrors(const char *label);
169 
170  // Checks for OpenGL errors and throws a disti assertion when found. Input variable label is string to notify where
171  // error occured.
172  GLS_EXPORT void CheckOpenGLErrors(const char* label);
173 #endif // GLS_GL_DEBUGGING
174 } // end namespace disti
175 #endif // !GLES
176 
177 #endif // _GLS_GL_H
A file for all GL Studio files to include.
Definition: bmpimage.h:46