diff options
Diffstat (limited to 'gl.cpp')
-rw-r--r-- | gl.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
@@ -0,0 +1,78 @@ +#include "gl.h" + +#include <SDL.h> + +#ifdef WIN32 + +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 (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 (APIENTRY *glActiveTexture)(GLenum); + +/* program/shader */ +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(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 |