summaryrefslogtreecommitdiff
path: root/gl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gl.cpp')
-rw-r--r--gl.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/gl.cpp b/gl.cpp
new file mode 100644
index 0000000..c0bdcbb
--- /dev/null
+++ b/gl.cpp
@@ -0,0 +1,42 @@
+#include "gl.h"
+
+#ifdef WIN32
+
+/* 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);
+
+void win32_gl_init() {
+ glCreateProgram = (GLuint(APIENTRY*)(void))wglGetProcAddress("glCreateProgram");
+ glLinkProgram = (void(APIENTRY*)(GLuint))wglGetProcAddress("glLinkProgram");
+ glGetProgramiv = (void(APIENTRY*)(GLuint, GLenum, GLint*))wglGetProcAddress("glGetProgramiv");
+ glGetProgramInfoLog = (void(APIENTRY*)(GLuint, GLsizei, GLsizei*, GLchar*))wglGetProcAddress("glGetProgramInfoLog");
+ glUseProgram = (void(APIENTRY*)(GLuint))wglGetProcAddress("glUseProgram");
+ glDeleteProgram = (void(APIENTRY*)(GLuint))wglGetProcAddress("glDeleteProgram");
+
+ glCreateShader = (GLuint(APIENTRY*)(GLenum))wglGetProcAddress("glCreateShader");
+ glShaderSource = (void(APIENTRY*)(GLuint, GLsizei, const GLchar**, const GLint*))wglGetProcAddress("glShaderSource");
+ glCompileShader = (void(APIENTRY*)(GLuint))wglGetProcAddress("glCompileShader");
+ glGetShaderiv = (void(APIENTRY*)(GLuint, GLenum, GLint*))wglGetProcAddress("glGetShaderiv");
+ glGetShaderInfoLog = (void(APIENTRY*)(GLuint, GLsizei, GLsizei*, GLchar*))wglGetProcAddress("glGetShaderInfoLog");
+
+ glAttachShader = (void(APIENTRY*)(GLuint, GLuint))wglGetProcAddress("glAttachShader");
+ glDetachShader = (void(APIENTRY*)(GLuint, GLuint))wglGetProcAddress("glDetachShader");
+ glDeleteShader = (void(APIENTRY*)(GLuint))wglGetProcAddress("glDeleteShader");
+}
+
+#endif