- Updated UI - OpenGL 3.0 with GLSL/GLSLP-support - Improvements to Windows version - Minor changes/bugfixes Patch from bit.
92 lines
4.8 KiB
C
92 lines
4.8 KiB
C
#ifndef SRC_WX_SDL2_GLW_H_
|
|
#define SRC_WX_SDL2_GLW_H_
|
|
|
|
typedef struct glw_t {
|
|
PFNGLACTIVETEXTUREPROC glActiveTexture;
|
|
PFNGLCREATESHADERPROC glCreateShader;
|
|
PFNGLSHADERSOURCEPROC glShaderSource;
|
|
PFNGLCOMPILESHADERPROC glCompileShader;
|
|
PFNGLGETSHADERIVPROC glGetShaderiv;
|
|
PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
|
|
PFNGLCREATEPROGRAMPROC glCreateProgram;
|
|
PFNGLATTACHSHADERPROC glAttachShader;
|
|
PFNGLLINKPROGRAMPROC glLinkProgram;
|
|
PFNGLGETPROGRAMIVPROC glGetProgramiv;
|
|
PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
|
|
PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
|
|
PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
|
|
PFNGLUSEPROGRAMPROC glUseProgram;
|
|
PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
|
|
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
|
PFNGLDELETESHADERPROC glDeleteShader;
|
|
PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
|
PFNGLDELETEBUFFERSPROC glDeleteBuffers;
|
|
PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
|
|
PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
|
|
PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
|
|
PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
|
|
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
|
PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
|
|
PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
|
|
PFNGLGENBUFFERSPROC glGenBuffers;
|
|
PFNGLBINDBUFFERPROC glBindBuffer;
|
|
PFNGLBUFFERDATAPROC glBufferData;
|
|
PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
|
|
PFNGLUNIFORM1IPROC glUniform1i;
|
|
PFNGLUNIFORM1FPROC glUniform1f;
|
|
PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
|
|
PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
|
|
PFNGLUNIFORM2FVPROC glUniform2fv;
|
|
PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
|
|
PFNGLBUFFERSUBDATAPROC glBufferSubData;
|
|
} glw_t;
|
|
|
|
glw_t* glw_init()
|
|
{
|
|
glw_t* glw = malloc(sizeof(glw_t));
|
|
glw->glActiveTexture = SDL_GL_GetProcAddress("glActiveTexture");
|
|
glw->glCreateShader = SDL_GL_GetProcAddress("glCreateShader");
|
|
glw->glShaderSource = SDL_GL_GetProcAddress("glShaderSource");
|
|
glw->glCompileShader = SDL_GL_GetProcAddress("glCompileShader");
|
|
glw->glGetShaderiv = SDL_GL_GetProcAddress("glGetShaderiv");
|
|
glw->glGetShaderInfoLog = SDL_GL_GetProcAddress("glGetShaderInfoLog");
|
|
glw->glCreateProgram = SDL_GL_GetProcAddress("glCreateProgram");
|
|
glw->glAttachShader = SDL_GL_GetProcAddress("glAttachShader");
|
|
glw->glLinkProgram = SDL_GL_GetProcAddress("glLinkProgram");
|
|
glw->glGetProgramiv = SDL_GL_GetProcAddress("glGetProgramiv");
|
|
glw->glGetProgramInfoLog = SDL_GL_GetProcAddress("glGetProgramInfoLog");
|
|
glw->glGetUniformLocation = SDL_GL_GetProcAddress("glGetUniformLocation");
|
|
glw->glGetAttribLocation = SDL_GL_GetProcAddress("glGetAttribLocation");
|
|
glw->glUseProgram = SDL_GL_GetProcAddress("glUseProgram");
|
|
glw->glGenerateMipmap = SDL_GL_GetProcAddress("glGenerateMipmap");
|
|
glw->glDeleteFramebuffers = SDL_GL_GetProcAddress("glDeleteFramebuffers");
|
|
glw->glDeleteShader = SDL_GL_GetProcAddress("glDeleteShader");
|
|
glw->glDeleteProgram = SDL_GL_GetProcAddress("glDeleteProgram");
|
|
glw->glDeleteBuffers = SDL_GL_GetProcAddress("glDeleteBuffers");
|
|
glw->glDeleteVertexArrays = SDL_GL_GetProcAddress("glDeleteVertexArrays");
|
|
glw->glGenFramebuffers = SDL_GL_GetProcAddress("glGenFramebuffers");
|
|
glw->glBindFramebuffer = SDL_GL_GetProcAddress("glBindFramebuffer");
|
|
glw->glFramebufferTexture2D = SDL_GL_GetProcAddress("glFramebufferTexture2D");
|
|
glw->glCheckFramebufferStatus = SDL_GL_GetProcAddress("glCheckFramebufferStatus");
|
|
glw->glGenVertexArrays = SDL_GL_GetProcAddress("glGenVertexArrays");
|
|
glw->glBindVertexArray = SDL_GL_GetProcAddress("glBindVertexArray");
|
|
glw->glGenBuffers = SDL_GL_GetProcAddress("glGenBuffers");
|
|
glw->glBindBuffer = SDL_GL_GetProcAddress("glBindBuffer");
|
|
glw->glBufferData = SDL_GL_GetProcAddress("glBufferData");
|
|
glw->glVertexAttribPointer = SDL_GL_GetProcAddress("glVertexAttribPointer");
|
|
glw->glUniform1i = SDL_GL_GetProcAddress("glUniform1i");
|
|
glw->glUniform1f = SDL_GL_GetProcAddress("glUniform1f");
|
|
glw->glEnableVertexAttribArray = SDL_GL_GetProcAddress("glEnableVertexAttribArray");
|
|
glw->glUniformMatrix4fv = SDL_GL_GetProcAddress("glUniformMatrix4fv");
|
|
glw->glUniform2fv = SDL_GL_GetProcAddress("glUniform2fv");
|
|
glw->glDisableVertexAttribArray = SDL_GL_GetProcAddress("glDisableVertexAttribArray");
|
|
glw->glBufferSubData = SDL_GL_GetProcAddress("glBufferSubData");
|
|
return glw;
|
|
}
|
|
|
|
void glw_free(glw_t* glw)
|
|
{
|
|
free(glw);
|
|
}
|
|
|
|
#endif /* SRC_WX_SDL2_GLW_H_ */
|