Warning, /include/Geant4/toolx/Windows/gl_functions is written in an unsupported language. File is not indexed.
0001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
0002 // See the file tools.license for terms.
0003
0004 #ifndef toolx_Windows_gl_functions
0005 #define toolx_Windows_gl_functions
0006
0007 #ifndef GL_VERSION_1_1
0008 #error You have to include OpenGL header(s) before including this file.
0009 #endif
0010
0011 #ifdef TOOLS_USE_GL_VERSION_3_2
0012 #include <wingdi.h>
0013 typedef LONG_PTR GLsizeiptr;
0014 typedef char GLchar;
0015 #define GL_ARRAY_BUFFER 0x8892
0016 #define GL_STATIC_DRAW 0x88E4
0017 #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
0018 #define GL_FRAMEBUFFER 0x8D40
0019 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5
0020 #define GL_COMPILE_STATUS 0x8B81
0021 #define GL_VERTEX_SHADER 0x8B31
0022 #define GL_LINK_STATUS 0x8B82
0023 #define GL_FRAGMENT_SHADER 0x8B30
0024 #endif
0025
0026 namespace toolx {
0027 namespace Windows {
0028
0029 #ifdef TOOLS_USE_GL_VERSION_3_2
0030
0031 class gl_functions {
0032 public:
0033 gl_functions() {}
0034 virtual ~gl_functions() {}
0035 protected:
0036 gl_functions(const gl_functions&) {}
0037 gl_functions& operator=(const gl_functions&) {return *this;}
0038 public:
0039 virtual bool initialize() {
0040 return true;
0041 }
0042 public:
0043 /*GL_VERSION_1_1*/
0044 void gl__BindTexture(GLenum target, GLuint texture) {::glBindTexture(target,texture);}
0045 void gl__BlendFunc(GLenum sfactor, GLenum dfactor) {::glBlendFunc(sfactor,dfactor);}
0046 void gl__ClearDepth(GLdouble depth) {::glClearDepth(depth);}
0047 void gl__ClearStencil(GLint s) {::glClearStencil(s);}
0048 void gl__ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {::glClearColor(red,green,blue,alpha);}
0049 void gl__Clear(GLbitfield mask) {::glClear(mask);}
0050
0051 void gl__DeleteTextures(GLsizei n, const GLuint *textures) {::glDeleteTextures(n,textures);}
0052 void gl__Disable(GLenum cap) {::glDisable(cap);}
0053 void gl__DrawArrays(GLenum mode, GLint first, GLsizei count) {::glDrawArrays(mode,first,count);}
0054
0055 void gl__Enable(GLenum cap) {::glEnable(cap);}
0056 void gl__FrontFace(GLenum mode) {::glFrontFace(mode);}
0057 void gl__GenTextures(GLsizei n, GLuint *textures) {::glGenTextures(n,textures);}
0058 GLenum gl__GetError() {return ::glGetError();}
0059 void gl__GetIntegerv(GLenum pname, GLint *params) {::glGetIntegerv(pname,params);}
0060 const GLubyte * gl__GetString(GLenum name) {return ::glGetString(name);}
0061 GLboolean gl__IsTexture(GLuint texture) {return ::glIsTexture(texture);}
0062 void gl__LineWidth(GLfloat width) {::glLineWidth(width);}
0063 void gl__PixelStorei(GLenum pname, GLint param) {::glPixelStorei(pname,param);}
0064 void gl__PointSize(GLfloat size) {::glPointSize(size);}
0065 void gl__PolygonOffset(GLfloat factor, GLfloat units) {::glPolygonOffset(factor,units);}
0066 void gl__ReadBuffer(GLenum mode) {::glReadBuffer(mode);}
0067 void gl__ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) {::glReadPixels(x,y,width,height,format,type,pixels);}
0068 void gl__TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {::glTexImage2D(target,level,internalformat,width,height,border,format,type,pixels);}
0069 void gl__TexParameteriv(GLenum target, GLenum pname, const GLint *params) {::glTexParameteriv(target,pname,params);}
0070 void gl__TexParameteri(GLenum target, GLenum pname, GLint param) {::glTexParameteri(target,pname,param);}
0071 void gl__Viewport(GLint x, GLint y, GLsizei width, GLsizei height) {::glViewport(x,y,width,height);}
0072 void gl__Hint(GLenum target,GLenum mode) {::glHint(target,mode);}
0073 void gl__DepthFunc(GLenum func) {::glDepthFunc(func);}
0074 void gl__DepthMask(GLboolean flag) {::glDepthMask(flag);}
0075
0076 /*GL_VERSION_1_5*/
0077 void gl__GenBuffers(GLsizei n, GLuint *buffers) {
0078 PROC proc = ::wglGetProcAddress("glGenBuffers");if(proc==NULL) return;
0079 typedef void (*function)(GLsizei n, GLuint *buffers);
0080 (function(proc))(n,buffers);
0081 }
0082 void gl__BindBuffer(GLenum target, GLuint buffer) {
0083 PROC proc = ::wglGetProcAddress("glBindBuffer");if(proc==NULL) return;
0084 typedef void (*function)(GLenum target, GLuint buffer);
0085 (function(proc))(target,buffer);
0086 }
0087 void gl__DeleteBuffers(GLsizei n, const GLuint *buffers) {
0088 PROC proc = ::wglGetProcAddress("glDeleteBuffers");if(proc==NULL) return;
0089 typedef void (*function)(GLsizei n, const GLuint *buffers);
0090 (function(proc))(n,buffers);
0091 }
0092 void gl__BufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) {
0093 PROC proc = ::wglGetProcAddress("glBufferData");if(proc==NULL) return;
0094 typedef void (*function)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
0095 (function(proc))(target,size,data,usage);
0096 }
0097 GLboolean gl__IsBuffer(GLuint buffer) {
0098 PROC proc = ::wglGetProcAddress("glIsBuffer(buffer");if(proc==NULL) return GL_FALSE;
0099 typedef GLboolean (*function)(GLuint buffer);
0100 return (function(proc))(buffer);
0101 }
0102 void gl__EnableVertexAttribArray(GLuint index) {
0103 PROC proc = ::wglGetProcAddress("glEnableVertexAttribArray");if(proc==NULL) return;
0104 typedef void (*function)(GLuint index);
0105 (function(proc))(index);
0106 }
0107 void gl__DisableVertexAttribArray(GLuint index) {
0108 PROC proc = ::wglGetProcAddress("glDisableVertexAttribArray");if(proc==NULL) return;
0109 typedef void (*function)(GLuint index);
0110 (function(proc))(index);
0111 }
0112
0113 /*GL_VERSION_2_0*/
0114 GLuint gl__CreateProgram() {
0115 PROC proc = ::wglGetProcAddress("glCreateProgram");if(proc==NULL) return 0;
0116 typedef GLuint (*function)();
0117 return (function(proc))();
0118 }
0119 void gl__DeleteProgram(GLuint program) {
0120 PROC proc = ::wglGetProcAddress("glDeleteProgram");if(proc==NULL) return;
0121 typedef void (*function)(GLuint program);
0122 (function(proc))(program);
0123 }
0124 void gl__UseProgram(GLuint program) {
0125 PROC proc = ::wglGetProcAddress("glUseProgram");if(proc==NULL) return;
0126 typedef void (*function)(GLuint program);
0127 (function(proc))(program);
0128 }
0129 void gl__LinkProgram(GLuint program) {
0130 PROC proc = ::wglGetProcAddress("glLinkProgram");if(proc==NULL) return;
0131 typedef void (*function)(GLuint program);
0132 (function(proc))(program);
0133 }
0134 void gl__GetProgramiv(GLuint program, GLenum pname, GLint *params) {
0135 PROC proc = ::wglGetProcAddress("glGetProgramiv");if(proc==NULL) return;
0136 typedef void (*function)(GLuint program, GLenum pname, GLint *params);
0137 (function(proc))(program,pname,params);
0138 }
0139
0140 void gl__Uniform1i(GLint location, GLint v0) {
0141 PROC proc = ::wglGetProcAddress("glUniform1i");if(proc==NULL) return;
0142 typedef void (*function)(GLint location, GLint v0);
0143 (function(proc))(location,v0);
0144 }
0145 void gl__Uniform1f(GLint location, GLfloat v0) {
0146 PROC proc = ::wglGetProcAddress("glUniform1f");if(proc==NULL) return;
0147 typedef void (*function)(GLint location, GLfloat v0);
0148 (function(proc))(location,v0);
0149 }
0150 void gl__Uniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
0151 PROC proc = ::wglGetProcAddress("glUniform3f");if(proc==NULL) return;
0152 typedef void (*function)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
0153 (function(proc))(location,v0,v1,v2);
0154 }
0155 void gl__Uniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
0156 PROC proc = ::wglGetProcAddress("glUniform4f");if(proc==NULL) return;
0157 typedef void (*function)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
0158 (function(proc))(location,v0,v1,v2,v3);
0159 }
0160 void gl__UniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) {
0161 PROC proc = ::wglGetProcAddress("glUniformMatrix4fv");if(proc==NULL) return;
0162 typedef void (*function)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
0163 (function(proc))(location,count,transpose,value);
0164 }
0165 GLint gl__GetUniformLocation(GLuint program, const GLchar *name) {
0166 PROC proc = ::wglGetProcAddress("glGetUniformLocation");if(proc==NULL) return -1;
0167 typedef GLint (*function)(GLuint program, const GLchar *name);
0168 return (function(proc))(program,name);
0169 }
0170 void gl__ShaderSource(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length) {
0171 PROC proc = ::wglGetProcAddress("glShaderSource");if(proc==NULL) return;
0172 typedef void (*function)(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
0173 (function(proc))(shader,count,string,length);
0174 }
0175 GLboolean gl__IsShader(GLuint shader) {
0176 PROC proc = ::wglGetProcAddress("glIsShader");if(proc==NULL) return GL_FALSE;
0177 typedef GLboolean (*function)(GLuint shader);
0178 return (function(proc))(shader);
0179 }
0180 void gl__GetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source) {
0181 PROC proc = ::wglGetProcAddress("glGetShaderSource");if(proc==NULL) return;
0182 typedef void (*function)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
0183 (function(proc))(shader,bufSize,length,source);
0184 }
0185 void gl__GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) {
0186 PROC proc = ::wglGetProcAddress("glGetShaderInfoLog");if(proc==NULL) return;
0187 typedef void (*function)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
0188 (function(proc))(shader,bufSize,length,infoLog);
0189 }
0190 void gl__GetShaderiv(GLuint shader, GLenum pname, GLint *params) {
0191 PROC proc = ::wglGetProcAddress("glGetShaderiv");if(proc==NULL) return;
0192 typedef void (*function)(GLuint shader, GLenum pname, GLint *params);
0193 (function(proc))(shader,pname,params);
0194 }
0195 void gl__GetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj) {
0196 PROC proc = ::wglGetProcAddress("glGetAttachedShaders");if(proc==NULL) return;
0197 typedef void (*function)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
0198 (function(proc))(program,maxCount,count,obj);
0199 }
0200 void gl__DetachShader(GLuint program, GLuint shader) {
0201 PROC proc = ::wglGetProcAddress("glDetachShader");if(proc==NULL) return;
0202 typedef void (*function)(GLuint program, GLuint shader);
0203 (function(proc))(program,shader);
0204 }
0205 void gl__DeleteShader(GLuint shader) {
0206 PROC proc = ::wglGetProcAddress("glDeleteShader");if(proc==NULL) return;
0207 typedef void (*function)(GLuint shader);
0208 (function(proc))(shader);
0209 }
0210 GLuint gl__CreateShader(GLenum type) {
0211 PROC proc = ::wglGetProcAddress("glCreateShader");if(proc==NULL) return 0;
0212 typedef GLuint (*function)(GLenum type);
0213 return (function(proc))(type);
0214 }
0215 void gl__CompileShader(GLuint shader) {
0216 PROC proc = ::wglGetProcAddress("glCompileShader");if(proc==NULL) return;
0217 typedef void (*function)(GLuint shader);
0218 (function(proc))(shader);
0219 }
0220 void gl__AttachShader(GLuint program, GLuint shader) {
0221 PROC proc = ::wglGetProcAddress("glAttachShader");if(proc==NULL) return;
0222 typedef void (*function)(GLuint program, GLuint shader);
0223 (function(proc))(program,shader);
0224 }
0225
0226 void gl__VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer) {
0227 PROC proc = ::wglGetProcAddress("glVertexAttribPointer");if(proc==NULL) return;
0228 typedef void (*function)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
0229 (function(proc))(index,size,type,normalized,stride,pointer);
0230 }
0231 GLint gl__GetAttribLocation(GLuint program, const GLchar *name) {
0232 PROC proc = ::wglGetProcAddress("glGetAttribLocation");if(proc==NULL) return -1;
0233 typedef GLint (*function)(GLuint program, const GLchar *name);
0234 return (function(proc))(program,name);
0235 }
0236
0237 /*GL_VERSION_3_0*/
0238 void gl__BindVertexArray(GLuint array) {
0239 PROC proc = ::wglGetProcAddress("glBindVertexArray");if(proc==NULL) return;
0240 typedef void (*function)(GLuint array);
0241 (function(proc))(array);
0242 }
0243 void gl__GenVertexArrays(GLsizei n, GLuint *arrays) {
0244 PROC proc = ::wglGetProcAddress("glGenVertexArrays");if(proc==NULL) return;
0245 typedef void (*function)(GLsizei n, GLuint *arrays);
0246 (function(proc))(n,arrays);
0247 }
0248 void gl__DeleteVertexArrays(GLsizei n, const GLuint *arrays) {
0249 PROC proc = ::wglGetProcAddress("glDeleteVertexArrays");if(proc==NULL) return;
0250 typedef void (*function)(GLsizei n, const GLuint *arrays);
0251 (function(proc))(n,arrays);
0252 }
0253 GLboolean gl__IsVertexArray(GLuint array) {
0254 PROC proc = ::wglGetProcAddress("glIsVertexArray");if(proc==NULL) return GL_FALSE;
0255 typedef GLboolean (*function)(GLuint array);
0256 return (function(proc))(array);
0257 }
0258 GLenum gl__CheckFramebufferStatus(GLenum target) {
0259 PROC proc = ::wglGetProcAddress("glCheckFramebufferStatus");if(proc==NULL) return 0;
0260 typedef GLenum (*function)(GLenum target);
0261 return (function(proc))(target);
0262 }
0263 };
0264
0265 #else //not TOOLS_USE_GL_VERSION_3_2
0266
0267 class gl_functions {
0268 public:
0269 gl_functions() {}
0270 virtual ~gl_functions() {}
0271 protected:
0272 gl_functions(const gl_functions&) {}
0273 gl_functions& operator=(const gl_functions&) {return *this;}
0274 public:
0275 virtual bool initialize() {
0276 return true;
0277 }
0278 public:
0279 /*GL_VERSION_1_1*/
0280 void gl__Accum(GLenum op, GLfloat value) {::glAccum(op,value);}
0281 void gl__Begin(GLenum mode) {::glBegin(mode);}
0282 void gl__BindTexture(GLenum target, GLuint texture) {::glBindTexture(target,texture);}
0283 void gl__BlendFunc(GLenum sfactor, GLenum dfactor) {::glBlendFunc(sfactor,dfactor);}
0284 void gl__ClearDepth(GLdouble depth) {::glClearDepth(depth);}
0285 void gl__ClearStencil(GLint s) {::glClearStencil(s);}
0286 void gl__ClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {::glClearColor(red,green,blue,alpha);}
0287 void gl__Clear(GLbitfield mask) {::glClear(mask);}
0288 void gl__ClearIndex(GLfloat c) {::glClearIndex(c);}
0289 void gl__ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {::glClearAccum(red,green,blue,alpha);}
0290 void gl__Color4fv(const GLfloat *v) {::glColor4fv(v);}
0291 void gl__Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {::glColor4f(red,green,blue,alpha);}
0292 void gl__ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {::glColorPointer(size,type,stride,pointer);}
0293 void gl__DeleteTextures(GLsizei n, const GLuint *textures) {::glDeleteTextures(n,textures);}
0294 void gl__Disable(GLenum cap) {::glDisable(cap);}
0295 void gl__DisableClientState(GLenum array) {::glDisableClientState(array);}
0296 void gl__DrawArrays(GLenum mode, GLint first, GLsizei count) {::glDrawArrays(mode,first,count);}
0297 void gl__Enable(GLenum cap) {::glEnable(cap);}
0298 void gl__EnableClientState(GLenum array) {::glEnableClientState(array);}
0299 void gl__End() {::glEnd();}
0300 void gl__FrontFace(GLenum mode) {::glFrontFace(mode);}
0301 void gl__GenTextures(GLsizei n, GLuint *textures) {::glGenTextures(n,textures);}
0302 GLenum gl__GetError() {return ::glGetError();}
0303 void gl__GetIntegerv(GLenum pname, GLint *params) {::glGetIntegerv(pname,params);}
0304 void gl__GetLightfv(GLenum light, GLenum pname, GLfloat *params) {::glGetLightfv(light,pname,params);}
0305 void gl__GetMaterialfv(GLenum face, GLenum pname, GLfloat *params) {::glGetMaterialfv(face,pname,params);}
0306 const GLubyte * gl__GetString(GLenum name) {return ::glGetString(name);}
0307 GLboolean gl__IsTexture(GLuint texture) {return ::glIsTexture(texture);}
0308 void gl__Lightfv(GLenum light, GLenum pname, const GLfloat *params) {::glLightfv(light,pname,params);}
0309 void gl__Lightf(GLenum light, GLenum pname, GLfloat param) {::glLightf(light,pname,param);}
0310 void gl__LineWidth(GLfloat width) {::glLineWidth(width);}
0311 void gl__LoadIdentity() {::glLoadIdentity();}
0312 void gl__LoadMatrixf(const GLfloat *m) {::glLoadMatrixf(m);}
0313 void gl__MatrixMode(GLenum mode) {::glMatrixMode(mode);}
0314 void gl__Normal3fv(const GLfloat *v) {::glNormal3fv(v);}
0315 void gl__Normal3f(GLfloat nx, GLfloat ny, GLfloat nz) {::glNormal3f(nx,ny,nz);}
0316 void gl__NormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) {::glNormalPointer(type,stride,pointer);}
0317 void gl__PixelStorei(GLenum pname, GLint param) {::glPixelStorei(pname,param);}
0318 void gl__PointSize(GLfloat size) {::glPointSize(size);}
0319 void gl__PolygonOffset(GLfloat factor, GLfloat units) {::glPolygonOffset(factor,units);}
0320 void gl__ReadBuffer(GLenum mode) {::glReadBuffer(mode);}
0321 void gl__ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) {::glReadPixels(x,y,width,height,format,type,pixels);}
0322 void gl__ShadeModel(GLenum mode) {::glShadeModel(mode);}
0323 void gl__TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {::glTexCoordPointer(size,type,stride,pointer);}
0324 void gl__TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {::glTexImage2D(target,level,internalformat,width,height,border,format,type,pixels);}
0325 void gl__TexParameteriv(GLenum target, GLenum pname, const GLint *params) {::glTexParameteriv(target,pname,params);}
0326 void gl__TexParameteri(GLenum target, GLenum pname, GLint param) {::glTexParameteri(target,pname,param);}
0327 void gl__Vertex3fv(const GLfloat *v) {::glVertex3fv(v);}
0328 void gl__Vertex3f(GLfloat x, GLfloat y, GLfloat z) {::glVertex3f(x,y,z);}
0329 void gl__VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {::glVertexPointer(size,type,stride,pointer);}
0330 void gl__Viewport(GLint x, GLint y, GLsizei width, GLsizei height) {::glViewport(x,y,width,height);}
0331 void gl__Hint(GLenum target,GLenum mode) {::glHint(target,mode);}
0332 void gl__DepthFunc(GLenum func) {::glDepthFunc(func);}
0333 void gl__DepthMask(GLboolean flag) {::glDepthMask(flag);}
0334
0335 void gl__NewList(GLuint list, GLenum mode) {::glNewList(list,mode);}
0336 void gl__DeleteLists(GLuint list, GLsizei range) {::glDeleteLists(list,range);}
0337 void gl__CallLists(GLsizei n, GLenum type, const GLvoid *lists) {::glCallLists(n,type,lists);}
0338 void gl__CallList(GLuint list) {::glCallList(list);}
0339 void gl__EndList() {::glEndList();}
0340 GLuint gl__GenLists(GLsizei range) {return ::glGenLists(range);}
0341 GLboolean gl__IsList(GLuint list) {return ::glIsList(list);}
0342
0343 /*GL_VERSION_3_0*/
0344 };
0345
0346
0347 #endif //not TOOLS_USE_GL_VERSION_3_2
0348
0349 }}
0350
0351 #endif