pcem/src/wx-sdl2-glw.h
pcem_emulator 2881d35680 Changes to wxWidgets/SDL2 port :
- Updated UI
- OpenGL 3.0 with GLSL/GLSLP-support
- Improvements to Windows version
- Minor changes/bugfixes
Patch from bit.
2017-07-30 10:39:27 +01:00

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_ */