Skip to content

Instantly share code, notes, and snippets.

@smiler
Created July 23, 2012 07:14
Show Gist options
  • Save smiler/3162393 to your computer and use it in GitHub Desktop.
Save smiler/3162393 to your computer and use it in GitHub Desktop.
#include "glstuff.h"
PFNGLATTACHSHADERPROC _glAttachShader;
PFNGLBINDBUFFERPROC _glBindBuffer;
PFNGLBINDVERTEXARRAYPROC _glBindVertexArray;
PFNGLBUFFERDATAPROC _glBufferData;
PFNGLCOMPILESHADERPROC _glCompileShader;
PFNGLCREATEPROGRAMPROC _glCreateProgram;
PFNGLCREATESHADERPROC _glCreateShader;
PFNGLDELETESHADERPROC _glDeleteShader;
PFNGLDETACHSHADERPROC _glDetachShader;
PFNGLDISABLEVERTEXATTRIBARRAYPROC _glDisableVertexAttribArray;
PFNGLENABLEVERTEXATTRIBARRAYPROC _glEnableVertexAttribArray;
PFNGLGENBUFFERSPROC _glGenBuffers;
PFNGLGENVERTEXARRAYSPROC _glGenVertexArrays;
PFNGLGETATTRIBLOCATIONPROC _glGetAttribLocation;
PFNGLGETPROGRAMINFOLOGPROC _glGetProgramInfoLog;
PFNGLGETPROGRAMIVPROC _glGetProgramiv;
PFNGLGETSHADERINFOLOGPROC _glGetShaderInfoLog;
PFNGLGETSHADERIVPROC _glGetShaderiv;
PFNGLGETUNIFORMLOCATIONPROC _glGetUniformLocation;
PFNGLLINKPROGRAMPROC _glLinkProgram;
PFNGLSHADERSOURCEPROC _glShaderSource;
PFNGLUNIFORM1DPROC _glUniform1d;
PFNGLUNIFORM1FPROC _glUniform1f;
PFNGLUSEPROGRAMPROC _glUseProgram;
PFNGLVERTEXATTRIBI1UIPROC _glVertexAttribI1ui;
PFNGLVERTEXATTRIBPOINTERPROC _glVertexAttribPointer;
void setupGLFunctions() {
glAttachShader = (PFNGLATTACHSHADERPROC) glfwGetProcAddress("glAttachShader");
glBindBuffer = (PFNGLBINDBUFFERPROC) glfwGetProcAddress("glBindBuffer");
glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) glfwGetProcAddress("glBindVertexArray");
glBufferData = (PFNGLBUFFERDATAPROC) glfwGetProcAddress("glBufferData");
glCompileShader = (PFNGLCOMPILESHADERPROC) glfwGetProcAddress("glCompileShader");
glCreateProgram = (PFNGLCREATEPROGRAMPROC) glfwGetProcAddress("glCreateProgram");
glCreateShader = (PFNGLCREATESHADERPROC) glfwGetProcAddress("glCreateShader");
glDeleteShader = (PFNGLDELETESHADERPROC) glfwGetProcAddress("glDeleteShader");
glDetachShader = (PFNGLDETACHSHADERPROC) glfwGetProcAddress("glDetachShader");
glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) glfwGetProcAddress("glDisableVertexAttribArray");
glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) glfwGetProcAddress("glEnableVertexAttribArray");
glGenBuffers = (PFNGLGENBUFFERSPROC) glfwGetProcAddress("glGenBuffers");
glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) glfwGetProcAddress("glGenVertexArrays");
glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) glfwGetProcAddress("glGetAttribLocation");
glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) glfwGetProcAddress("glGetProgramInfoLog");
glGetProgramiv = (PFNGLGETPROGRAMIVPROC) glfwGetProcAddress("glGetProgramiv");
glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) glfwGetProcAddress("glGetShaderInfoLog");
glGetShaderiv = (PFNGLGETSHADERIVPROC) glfwGetProcAddress("glGetShaderiv");
glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) glfwGetProcAddress("glGetUniformLocation");
glLinkProgram = (PFNGLLINKPROGRAMPROC) glfwGetProcAddress("glLinkProgram");
glShaderSource = (PFNGLSHADERSOURCEPROC) glfwGetProcAddress("glShaderSource");
glUniform1d = (PFNGLUNIFORM1DPROC) glfwGetProcAddress("glUniform1d");
glUniform1f = (PFNGLUNIFORM1FPROC) glfwGetProcAddress("glUniform1f");
glUseProgram = (PFNGLUSEPROGRAMPROC) glfwGetProcAddress("glUseProgram");
glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) glfwGetProcAddress("glVertexAttribI1ui");
glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) glfwGetProcAddress("glVertexAttribPointer");
}
/*
* glstuff.h
*
* Setup OpenGL function pointers
*/
#ifndef _GLSTUFF_H
#define _GLSTUFF_H
#define GLFW_INCLUDE_GL3
#include "GL/glfw3.h"
extern PFNGLATTACHSHADERPROC _glAttachShader;
extern PFNGLBINDBUFFERPROC _glBindBuffer;
extern PFNGLBINDVERTEXARRAYPROC _glBindVertexArray;
extern PFNGLBUFFERDATAPROC _glBufferData;
extern PFNGLCOMPILESHADERPROC _glCompileShader;
extern PFNGLCREATEPROGRAMPROC _glCreateProgram;
extern PFNGLCREATESHADERPROC _glCreateShader;
extern PFNGLDELETESHADERPROC _glDeleteShader;
extern PFNGLDETACHSHADERPROC _glDetachShader;
extern PFNGLDISABLEVERTEXATTRIBARRAYPROC _glDisableVertexAttribArray;
extern PFNGLENABLEVERTEXATTRIBARRAYPROC _glEnableVertexAttribArray;
extern PFNGLGENBUFFERSPROC _glGenBuffers;
extern PFNGLGENVERTEXARRAYSPROC _glGenVertexArrays;
extern PFNGLGETATTRIBLOCATIONPROC _glGetAttribLocation;
extern PFNGLGETPROGRAMINFOLOGPROC _glGetProgramInfoLog;
extern PFNGLGETPROGRAMIVPROC _glGetProgramiv;
extern PFNGLGETSHADERINFOLOGPROC _glGetShaderInfoLog;
extern PFNGLGETSHADERIVPROC _glGetShaderiv;
extern PFNGLGETUNIFORMLOCATIONPROC _glGetUniformLocation;
extern PFNGLLINKPROGRAMPROC _glLinkProgram;
extern PFNGLSHADERSOURCEPROC _glShaderSource;
extern PFNGLUSEPROGRAMPROC _glUseProgram;
extern PFNGLUNIFORM1DPROC _glUniform1d;
extern PFNGLUNIFORM1FPROC _glUniform1f;
extern PFNGLVERTEXATTRIBI1UIPROC _glVertexAttribI1ui;
extern PFNGLVERTEXATTRIBPOINTERPROC _glVertexAttribPointer;
#define glAttachShader _glAttachShader
#define glBindBuffer _glBindBuffer
#define glBindVertexArray _glBindVertexArray
#define glBufferData _glBufferData
#define glCompileShader _glCompileShader
#define glCreateProgram _glCreateProgram
#define glCreateShader _glCreateShader
#define glDeleteShader _glDeleteShader
#define glDetachShader _glDetachShader
#define glDisableVertexAttribArray _glDisableVertexAttribArray
#define glEnableVertexAttribArray _glEnableVertexAttribArray
#define glGenBuffers _glGenBuffers
#define glGenVertexArrays _glGenVertexArrays
#define glGetAttribLocation _glGetAttribLocation
#define glGetProgramInfoLog _glGetProgramInfoLog
#define glGetProgramiv _glGetProgramiv
#define glGetShaderInfoLog _glGetShaderInfoLog
#define glGetShaderiv _glGetShaderiv
#define glGetUniformLocation _glGetUniformLocation
#define glGetVertexAttribI1ui _glGetVertexAttribI1ui
#define glLinkProgram _glLinkProgram
#define glShaderSource _glShaderSource
#define glUniform1d _glUniform1d
#define glUniform1f _glUniform1f
#define glUseProgram _glUseProgram
#define glVertexAttribI1ui _glVertexAttribI1ui
#define glVertexAttribPointer _glVertexAttribPointer
void setupGLFunctions();
#endif /* _GLSTUFF_H */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment