2017-12-29 11:06:38 +00:00
|
|
|
#ifndef opengl_compat_h
|
|
|
|
#define opengl_compat_h
|
|
|
|
|
|
|
|
#define GL_GLEXT_PROTOTYPES
|
2019-06-26 03:01:54 +00:00
|
|
|
#include <SDL_opengl.h>
|
|
|
|
#include <SDL_video.h>
|
2017-12-29 11:06:38 +00:00
|
|
|
|
|
|
|
#ifndef __APPLE__
|
|
|
|
#define GL_COMPAT_NAME(func) gl_compat_##func
|
|
|
|
|
|
|
|
#define GL_COMPAT_WRAPPER(func) \
|
|
|
|
({ extern typeof(func) *GL_COMPAT_NAME(func); \
|
2020-04-24 17:37:57 +00:00
|
|
|
if (!GL_COMPAT_NAME(func)) GL_COMPAT_NAME(func) = SDL_GL_GetProcAddress(#func); \
|
2017-12-29 11:06:38 +00:00
|
|
|
GL_COMPAT_NAME(func); \
|
|
|
|
})
|
|
|
|
|
|
|
|
#define glCreateShader GL_COMPAT_WRAPPER(glCreateShader)
|
|
|
|
#define glGetAttribLocation GL_COMPAT_WRAPPER(glGetAttribLocation)
|
|
|
|
#define glGetUniformLocation GL_COMPAT_WRAPPER(glGetUniformLocation)
|
|
|
|
#define glUseProgram GL_COMPAT_WRAPPER(glUseProgram)
|
|
|
|
#define glGenVertexArrays GL_COMPAT_WRAPPER(glGenVertexArrays)
|
|
|
|
#define glBindVertexArray GL_COMPAT_WRAPPER(glBindVertexArray)
|
|
|
|
#define glGenBuffers GL_COMPAT_WRAPPER(glGenBuffers)
|
|
|
|
#define glBindBuffer GL_COMPAT_WRAPPER(glBindBuffer)
|
|
|
|
#define glBufferData GL_COMPAT_WRAPPER(glBufferData)
|
|
|
|
#define glEnableVertexAttribArray GL_COMPAT_WRAPPER(glEnableVertexAttribArray)
|
|
|
|
#define glVertexAttribPointer GL_COMPAT_WRAPPER(glVertexAttribPointer)
|
|
|
|
#define glCreateProgram GL_COMPAT_WRAPPER(glCreateProgram)
|
|
|
|
#define glAttachShader GL_COMPAT_WRAPPER(glAttachShader)
|
|
|
|
#define glLinkProgram GL_COMPAT_WRAPPER(glLinkProgram)
|
|
|
|
#define glGetProgramiv GL_COMPAT_WRAPPER(glGetProgramiv)
|
|
|
|
#define glGetProgramInfoLog GL_COMPAT_WRAPPER(glGetProgramInfoLog)
|
|
|
|
#define glDeleteShader GL_COMPAT_WRAPPER(glDeleteShader)
|
|
|
|
#define glUniform2f GL_COMPAT_WRAPPER(glUniform2f)
|
|
|
|
#define glActiveTexture GL_COMPAT_WRAPPER(glActiveTexture)
|
|
|
|
#define glUniform1i GL_COMPAT_WRAPPER(glUniform1i)
|
|
|
|
#define glBindFragDataLocation GL_COMPAT_WRAPPER(glBindFragDataLocation)
|
|
|
|
#define glDeleteProgram GL_COMPAT_WRAPPER(glDeleteProgram)
|
|
|
|
#define glShaderSource GL_COMPAT_WRAPPER(glShaderSource)
|
|
|
|
#define glCompileShader GL_COMPAT_WRAPPER(glCompileShader)
|
|
|
|
#define glGetShaderiv GL_COMPAT_WRAPPER(glGetShaderiv)
|
|
|
|
#define glGetShaderInfoLog GL_COMPAT_WRAPPER(glGetShaderInfoLog)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* opengl_compat_h */
|