Back to home page

EIC code displayed by LXR

 
 

    


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