From 63e3b825580c8fbf6b84d441c92ed39348e51c17 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Wed, 11 May 2011 19:30:31 +0200 Subject: Working win32 port. --- gl.cpp | 116 +++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 59 insertions(+), 57 deletions(-) (limited to 'gl.cpp') diff --git a/gl.cpp b/gl.cpp index 54ab4c5..9cefa53 100644 --- a/gl.cpp +++ b/gl.cpp @@ -4,73 +4,75 @@ #ifdef WIN32 -void (*glGenBuffers)(GLsizei, GLuint*); -void (*glDeleteBuffers)(GLsizei, GLuint*); -void (*glBindBuffer)(GLenum, GLuint); -void (*glBufferData)(GLenum, GLsizeiptr, const GLvoid*, GLenum); -GLvoid* (*glMapBuffer)(GLenum, GLenum); -GLboolean (*glUnmapBuffer)(GLenum); +void (APIENTRY *glGenBuffers)(GLsizei, GLuint*); +void (APIENTRY *glDeleteBuffers)(GLsizei, GLuint*); +void (APIENTRY *glBindBuffer)(GLenum, GLuint); +void (APIENTRY *glBufferData)(GLenum, GLsizeiptr, const GLvoid*, GLenum); +GLvoid* (APIENTRY *glMapBuffer)(GLenum, GLenum); +GLboolean (APIENTRY *glUnmapBuffer)(GLenum); /* uniform */ -GLint (*glGetUniformLocation)(GLuint, const GLchar*); -void (*glUniform1i)(GLint, GLint); -void (*glUniform2f)(GLint, GLfloat, GLfloat); -void (*glUniform3f)(GLint, GLfloat, GLfloat, GLfloat); +GLint (APIENTRY *glGetUniformLocation)(GLuint, const GLchar*); +void (APIENTRY *glUniform1i)(GLint, GLint); +void (APIENTRY *glUniform2f)(GLint, GLfloat, GLfloat); +void (APIENTRY *glUniform3f)(GLint, GLfloat, GLfloat, GLfloat); +void (APIENTRY *glUniform1iv)(GLint, GLsizei, const GLint*); /* texture */ -void (*glActiveTexture)(GLenum); +void (APIENTRY *glActiveTexture)(GLenum); /* program/shader */ -GLuint (*glCreateProgram)(void); -void (*glLinkProgram)(GLuint); -void (*glGetProgramiv)(GLuint, GLenum, GLint*); -void (*glGetProgramInfoLog)(GLuint, GLsizei, GLsizei*, GLchar*); -void (*glUseProgram)(GLuint); -void (*glDeleteProgram)(GLuint); - -GLuint (*glCreateShader)(GLenum); -void (*glShaderSource)(GLuint, GLsizei, const GLchar**, const GLint*); -void (*glCompileShader)(GLuint); -void (*glGetShaderiv)(GLuint, GLenum, GLint*); -void (*glGetShaderInfoLog)(GLuint, GLsizei, GLsizei*, GLchar*); - -void (*glAttachShader)(GLuint, GLuint); -void (*glDetachShader)(GLuint, GLuint); -void (*glDeleteShader)(GLuint); +GLuint (APIENTRY *glCreateProgram)(void); +void (APIENTRY *glLinkProgram)(GLuint); +void (APIENTRY *glGetProgramiv)(GLuint, GLenum, GLint*); +void (APIENTRY *glGetProgramInfoLog)(GLuint, GLsizei, GLsizei*, GLchar*); +void (APIENTRY *glUseProgram)(GLuint); +void (APIENTRY *glDeleteProgram)(GLuint); + +GLuint (APIENTRY *glCreateShader)(GLenum); +void (APIENTRY *glShaderSource)(GLuint, GLsizei, const GLchar**, const GLint*); +void (APIENTRY *glCompileShader)(GLuint); +void (APIENTRY *glGetShaderiv)(GLuint, GLenum, GLint*); +void (APIENTRY *glGetShaderInfoLog)(GLuint, GLsizei, GLsizei*, GLchar*); + +void (APIENTRY *glAttachShader)(GLuint, GLuint); +void (APIENTRY *glDetachShader)(GLuint, GLuint); +void (APIENTRY *glDeleteShader)(GLuint); //GL_DeleteBuffers glDeleteBuffers = NULL; void win32_gl_init() { - glGenBuffers = (void(*)(GLsizei, GLuint*))SDL_GL_GetProcAddress("glGenBuffers"); - glDeleteBuffers = (void(*)(GLsizei, GLuint*))SDL_GL_GetProcAddress("glDeleteBuffers"); - glBindBuffer = (void(*)(GLenum, GLuint))SDL_GL_GetProcAddress("glBindBuffer"); - glBufferData = (void(*)(GLenum, GLsizeiptr, const GLvoid*, GLenum))SDL_GL_GetProcAddress("glBufferData"); - glMapBuffer = (GLvoid*(*)(GLenum, GLenum))SDL_GL_GetProcAddress("glMapBuffer"); - glUnmapBuffer = (GLboolean(*)(GLenum))SDL_GL_GetProcAddress("glUnmapBuffer"); - - glGetUniformLocation = (GLint(*)(GLuint, const GLchar*))SDL_GL_GetProcAddress("glGetUniformLocation"); - glUniform1i = (void(*)(GLint, GLint))SDL_GL_GetProcAddress("glUniform1i"); - glUniform2f = (void(*)(GLint, GLfloat, GLfloat))SDL_GL_GetProcAddress("glUniform2f"); - glUniform3f = (void(*)(GLint, GLfloat, GLfloat, GLfloat))SDL_GL_GetProcAddress("glUniform3f"); - - glActiveTexture = (void(*)(GLenum))SDL_GL_GetProcAddress("glActiveTexture"); - - glCreateProgram = (GLuint(*)(void))SDL_GL_GetProcAddress("glCreateProgram"); - glLinkProgram = (void(*)(GLuint))SDL_GL_GetProcAddress("glLinkProgram"); - glGetProgramiv = (void(*)(GLuint, GLenum, GLint*))SDL_GL_GetProcAddress("glGetProgramiv"); - glGetProgramInfoLog = (void(*)(GLuint, GLsizei, GLsizei*, GLchar*))SDL_GL_GetProcAddress("glGetProgramInfoLog"); - glUseProgram = (void(*)(GLuint))SDL_GL_GetProcAddress("glUseProgram"); - glDeleteProgram = (void(*)(GLuint))SDL_GL_GetProcAddress("glDeleteProgram"); - - glCreateShader = (GLuint(*)(GLenum))SDL_GL_GetProcAddress("glCreateShader"); - glShaderSource = (void(*)(GLuint, GLsizei, const GLchar**, const GLint*))SDL_GL_GetProcAddress("glShaderSource"); - glCompileShader = (void(*)(GLuint))SDL_GL_GetProcAddress("glCompileShader"); - glGetShaderiv = (void(*)(GLuint, GLenum, GLint*))SDL_GL_GetProcAddress("glGetShaderiv"); - glGetShaderInfoLog = (void(*)(GLuint, GLsizei, GLsizei*, GLchar*))SDL_GL_GetProcAddress("glGetShaderInfoLog"); - - glAttachShader = (void(*)(GLuint, GLuint))SDL_GL_GetProcAddress("glAttachShader"); - glDetachShader = (void(*)(GLuint, GLuint))SDL_GL_GetProcAddress("glDetachShader"); - glDeleteShader = (void(*)(GLuint))SDL_GL_GetProcAddress("glDeleteShader"); + glGenBuffers = (void(APIENTRY*)(GLsizei, GLuint*))SDL_GL_GetProcAddress("glGenBuffers"); + glDeleteBuffers = (void(APIENTRY*)(GLsizei, GLuint*))SDL_GL_GetProcAddress("glDeleteBuffers"); + glBindBuffer = (void(APIENTRY*)(GLenum, GLuint))SDL_GL_GetProcAddress("glBindBuffer"); + glBufferData = (void(APIENTRY*)(GLenum, GLsizeiptr, const GLvoid*, GLenum))SDL_GL_GetProcAddress("glBufferData"); + glMapBuffer = (GLvoid*(APIENTRY*)(GLenum, GLenum))SDL_GL_GetProcAddress("glMapBuffer"); + glUnmapBuffer = (GLboolean(APIENTRY*)(GLenum))SDL_GL_GetProcAddress("glUnmapBuffer"); + + glGetUniformLocation = (GLint(APIENTRY*)(GLuint, const GLchar*))SDL_GL_GetProcAddress("glGetUniformLocation"); + glUniform1i = (void(APIENTRY*)(GLint, GLint))SDL_GL_GetProcAddress("glUniform1i"); + glUniform2f = (void(APIENTRY*)(GLint, GLfloat, GLfloat))SDL_GL_GetProcAddress("glUniform2f"); + glUniform3f = (void(APIENTRY*)(GLint, GLfloat, GLfloat, GLfloat))SDL_GL_GetProcAddress("glUniform3f"); + glUniform1iv = (void(APIENTRY*)(GLint, GLsizei, const GLint*))SDL_GL_GetProcAddress("glUniform1iv"); + + glActiveTexture = (void(APIENTRY*)(GLenum))SDL_GL_GetProcAddress("glActiveTexture"); + + glCreateProgram = (GLuint(APIENTRY*)(void))SDL_GL_GetProcAddress("glCreateProgram"); + glLinkProgram = (void(APIENTRY*)(GLuint))SDL_GL_GetProcAddress("glLinkProgram"); + glGetProgramiv = (void(APIENTRY*)(GLuint, GLenum, GLint*))SDL_GL_GetProcAddress("glGetProgramiv"); + glGetProgramInfoLog = (void(APIENTRY*)(GLuint, GLsizei, GLsizei*, GLchar*))SDL_GL_GetProcAddress("glGetProgramInfoLog"); + glUseProgram = (void(APIENTRY*)(GLuint))SDL_GL_GetProcAddress("glUseProgram"); + glDeleteProgram = (void(APIENTRY*)(GLuint))SDL_GL_GetProcAddress("glDeleteProgram"); + + glCreateShader = (GLuint(APIENTRY*)(GLenum))SDL_GL_GetProcAddress("glCreateShader"); + glShaderSource = (void(APIENTRY*)(GLuint, GLsizei, const GLchar**, const GLint*))SDL_GL_GetProcAddress("glShaderSource"); + glCompileShader = (void(APIENTRY*)(GLuint))SDL_GL_GetProcAddress("glCompileShader"); + glGetShaderiv = (void(APIENTRY*)(GLuint, GLenum, GLint*))SDL_GL_GetProcAddress("glGetShaderiv"); + glGetShaderInfoLog = (void(APIENTRY*)(GLuint, GLsizei, GLsizei*, GLchar*))SDL_GL_GetProcAddress("glGetShaderInfoLog"); + + glAttachShader = (void(APIENTRY*)(GLuint, GLuint))SDL_GL_GetProcAddress("glAttachShader"); + glDetachShader = (void(APIENTRY*)(GLuint, GLuint))SDL_GL_GetProcAddress("glDetachShader"); + glDeleteShader = (void(APIENTRY*)(GLuint))SDL_GL_GetProcAddress("glDeleteShader"); } #endif -- cgit v1.2.3