/** * GLAD - OpenGL Loader Generator * Generated for OpenGL 3.3 Core Profile * * This is a minimal GLAD loader for OpenGL 3.3 Core with the extensions * needed for framebuffer operations in the DragonX acrylic effects system. * * Generated from glad.dav1d.de with settings: * - Language: C/C++ * - Specification: OpenGL * - API: gl 3.3 * - Profile: Core * - Extensions: None (core only) * - Options: Loader enabled */ #ifndef GLAD_GL_H_ #define GLAD_GL_H_ #ifdef __cplusplus extern "C" { #endif #include /* Type definitions */ typedef void (*GLADloadproc)(void); typedef void (*GLADapiproc)(void); /* GLAD API */ #define GLAD_VERSION_MAJOR(version) (version / 10000) #define GLAD_VERSION_MINOR(version) (version % 10000) /* Function pointer loader type */ typedef GLADapiproc (*GLADloadfunc)(const char *name); /* Initialize GLAD loader - returns version (major * 10000 + minor) or 0 on failure */ int gladLoadGL(GLADloadfunc load); /* SDL3 specific loader helper */ #ifdef SDL_VERSION_ATLEAST #include static inline GLADapiproc glad_sdl_get_proc(const char* name) { return (GLADapiproc)SDL_GL_GetProcAddress(name); } #define gladLoadGL_SDL() gladLoadGL(glad_sdl_get_proc) #endif /* Feature flags */ extern int GLAD_GL_VERSION_1_0; extern int GLAD_GL_VERSION_1_1; extern int GLAD_GL_VERSION_1_2; extern int GLAD_GL_VERSION_1_3; extern int GLAD_GL_VERSION_1_4; extern int GLAD_GL_VERSION_1_5; extern int GLAD_GL_VERSION_2_0; extern int GLAD_GL_VERSION_2_1; extern int GLAD_GL_VERSION_3_0; extern int GLAD_GL_VERSION_3_1; extern int GLAD_GL_VERSION_3_2; extern int GLAD_GL_VERSION_3_3; /* OpenGL type definitions */ typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef void GLvoid; typedef khronos_int8_t GLbyte; typedef khronos_uint8_t GLubyte; typedef khronos_int16_t GLshort; typedef khronos_uint16_t GLushort; typedef int GLint; typedef unsigned int GLuint; typedef khronos_int32_t GLclampx; typedef int GLsizei; typedef khronos_float_t GLfloat; typedef khronos_float_t GLclampf; typedef double GLdouble; typedef double GLclampd; typedef void *GLeglClientBufferEXT; typedef void *GLeglImageOES; typedef char GLchar; typedef char GLcharARB; #ifdef __APPLE__ typedef void *GLhandleARB; #else typedef unsigned int GLhandleARB; #endif typedef khronos_uint16_t GLhalf; typedef khronos_uint16_t GLhalfARB; typedef khronos_int32_t GLfixed; typedef khronos_intptr_t GLintptr; typedef khronos_intptr_t GLintptrARB; typedef khronos_ssize_t GLsizeiptr; typedef khronos_ssize_t GLsizeiptrARB; typedef khronos_int64_t GLint64; typedef khronos_int64_t GLint64EXT; typedef khronos_uint64_t GLuint64; typedef khronos_uint64_t GLuint64EXT; typedef struct __GLsync *GLsync; /* OpenGL constants */ #define GL_FALSE 0 #define GL_TRUE 1 #define GL_NONE 0 #define GL_ZERO 0 #define GL_ONE 1 /* Depth buffer */ #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_DEPTH_TEST 0x0B71 /* Blending */ #define GL_BLEND 0x0BE2 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 /* Texture */ #define GL_TEXTURE_2D 0x0DE1 #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_LINEAR 0x2601 #define GL_NEAREST 0x2600 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_CLAMP_TO_EDGE 0x812F #define GL_REPEAT 0x2901 #define GL_RGBA 0x1908 #define GL_RGBA8 0x8058 #define GL_UNSIGNED_BYTE 0x1401 /* Framebuffer */ #define GL_FRAMEBUFFER 0x8D40 #define GL_READ_FRAMEBUFFER 0x8CA8 #define GL_DRAW_FRAMEBUFFER 0x8CA9 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A #define GL_DEPTH24_STENCIL8 0x88F0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 /* Renderbuffer */ #define GL_RENDERBUFFER 0x8D41 /* Shaders */ #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_COMPILE_STATUS 0x8B81 #define GL_LINK_STATUS 0x8B82 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_FLOAT 0x1406 /* Draw */ #define GL_TRIANGLES 0x0004 #define GL_ARRAY_BUFFER 0x8892 #define GL_STATIC_DRAW 0x88E4 /* -------------------- Function declarations -------------------- */ /* Core 1.0 */ typedef void (KHRONOS_APIENTRY *PFNGLCLEARPROC)(GLbitfield mask); typedef void (KHRONOS_APIENTRY *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (KHRONOS_APIENTRY *PFNGLENABLEPROC)(GLenum cap); typedef void (KHRONOS_APIENTRY *PFNGLDISABLEPROC)(GLenum cap); typedef void (KHRONOS_APIENTRY *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); typedef void (KHRONOS_APIENTRY *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (KHRONOS_APIENTRY *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); typedef void (KHRONOS_APIENTRY *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); typedef void (KHRONOS_APIENTRY *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures); typedef void (KHRONOS_APIENTRY *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures); typedef void (KHRONOS_APIENTRY *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); typedef const GLubyte *(KHRONOS_APIENTRY *PFNGLGETSTRINGPROC)(GLenum name); typedef void (KHRONOS_APIENTRY *PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data); /* Core 1.3 */ typedef void (KHRONOS_APIENTRY *PFNGLACTIVETEXTUREPROC)(GLenum texture); /* Core 1.5 */ typedef void (KHRONOS_APIENTRY *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); typedef void (KHRONOS_APIENTRY *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); typedef void (KHRONOS_APIENTRY *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); typedef void (KHRONOS_APIENTRY *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data, GLenum usage); /* Core 2.0 */ typedef GLuint (KHRONOS_APIENTRY *PFNGLCREATESHADERPROC)(GLenum type); typedef void (KHRONOS_APIENTRY *PFNGLDELETESHADERPROC)(GLuint shader); typedef void (KHRONOS_APIENTRY *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); typedef void (KHRONOS_APIENTRY *PFNGLCOMPILESHADERPROC)(GLuint shader); typedef void (KHRONOS_APIENTRY *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); typedef void (KHRONOS_APIENTRY *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef GLuint (KHRONOS_APIENTRY *PFNGLCREATEPROGRAMPROC)(void); typedef void (KHRONOS_APIENTRY *PFNGLDELETEPROGRAMPROC)(GLuint program); typedef void (KHRONOS_APIENTRY *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); typedef void (KHRONOS_APIENTRY *PFNGLLINKPROGRAMPROC)(GLuint program); typedef void (KHRONOS_APIENTRY *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); typedef void (KHRONOS_APIENTRY *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (KHRONOS_APIENTRY *PFNGLUSEPROGRAMPROC)(GLuint program); typedef GLint (KHRONOS_APIENTRY *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); typedef void (KHRONOS_APIENTRY *PFNGLUNIFORM1IPROC)(GLint location, GLint v0); typedef void (KHRONOS_APIENTRY *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); typedef void (KHRONOS_APIENTRY *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); typedef void (KHRONOS_APIENTRY *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (KHRONOS_APIENTRY *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (KHRONOS_APIENTRY *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); typedef void (KHRONOS_APIENTRY *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); typedef void (KHRONOS_APIENTRY *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); typedef void (KHRONOS_APIENTRY *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); typedef void (KHRONOS_APIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); typedef void (KHRONOS_APIENTRY *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); /* Core 3.0 - Framebuffer */ typedef void (KHRONOS_APIENTRY *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); typedef void (KHRONOS_APIENTRY *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers); typedef void (KHRONOS_APIENTRY *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); typedef void (KHRONOS_APIENTRY *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef GLenum (KHRONOS_APIENTRY *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); typedef void (KHRONOS_APIENTRY *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); typedef void (KHRONOS_APIENTRY *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers); typedef void (KHRONOS_APIENTRY *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); typedef void (KHRONOS_APIENTRY *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (KHRONOS_APIENTRY *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (KHRONOS_APIENTRY *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* Core 3.0 - Mipmap */ typedef void (KHRONOS_APIENTRY *PFNGLGENERATEMIPMAPPROC)(GLenum target); /* Core 3.0 - VAO */ typedef void (KHRONOS_APIENTRY *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); typedef void (KHRONOS_APIENTRY *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays); typedef void (KHRONOS_APIENTRY *PFNGLBINDVERTEXARRAYPROC)(GLuint array); /* -------------------- Function pointers -------------------- */ /* Core 1.0 */ extern PFNGLCLEARPROC glad_glClear; #define glClear glad_glClear extern PFNGLCLEARCOLORPROC glad_glClearColor; #define glClearColor glad_glClearColor extern PFNGLENABLEPROC glad_glEnable; #define glEnable glad_glEnable extern PFNGLDISABLEPROC glad_glDisable; #define glDisable glad_glDisable extern PFNGLVIEWPORTPROC glad_glViewport; #define glViewport glad_glViewport extern PFNGLTEXIMAGE2DPROC glad_glTexImage2D; #define glTexImage2D glad_glTexImage2D extern PFNGLTEXPARAMETERIPROC glad_glTexParameteri; #define glTexParameteri glad_glTexParameteri extern PFNGLBINDTEXTUREPROC glad_glBindTexture; #define glBindTexture glad_glBindTexture extern PFNGLDELETETEXTURESPROC glad_glDeleteTextures; #define glDeleteTextures glad_glDeleteTextures extern PFNGLGENTEXTURESPROC glad_glGenTextures; #define glGenTextures glad_glGenTextures extern PFNGLDRAWARRAYSPROC glad_glDrawArrays; #define glDrawArrays glad_glDrawArrays extern PFNGLGETSTRINGPROC glad_glGetString; #define glGetString glad_glGetString extern PFNGLGETINTEGERVPROC glad_glGetIntegerv; #define glGetIntegerv glad_glGetIntegerv extern PFNGLBLENDFUNCPROC glad_glBlendFunc; #define glBlendFunc glad_glBlendFunc /* Core 1.3 */ extern PFNGLACTIVETEXTUREPROC glad_glActiveTexture; #define glActiveTexture glad_glActiveTexture /* Core 1.5 */ extern PFNGLGENBUFFERSPROC glad_glGenBuffers; #define glGenBuffers glad_glGenBuffers extern PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; #define glDeleteBuffers glad_glDeleteBuffers extern PFNGLBINDBUFFERPROC glad_glBindBuffer; #define glBindBuffer glad_glBindBuffer extern PFNGLBUFFERDATAPROC glad_glBufferData; #define glBufferData glad_glBufferData /* Core 2.0 */ extern PFNGLCREATESHADERPROC glad_glCreateShader; #define glCreateShader glad_glCreateShader extern PFNGLDELETESHADERPROC glad_glDeleteShader; #define glDeleteShader glad_glDeleteShader extern PFNGLSHADERSOURCEPROC glad_glShaderSource; #define glShaderSource glad_glShaderSource extern PFNGLCOMPILESHADERPROC glad_glCompileShader; #define glCompileShader glad_glCompileShader extern PFNGLGETSHADERIVPROC glad_glGetShaderiv; #define glGetShaderiv glad_glGetShaderiv extern PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; #define glGetShaderInfoLog glad_glGetShaderInfoLog extern PFNGLCREATEPROGRAMPROC glad_glCreateProgram; #define glCreateProgram glad_glCreateProgram extern PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; #define glDeleteProgram glad_glDeleteProgram extern PFNGLATTACHSHADERPROC glad_glAttachShader; #define glAttachShader glad_glAttachShader extern PFNGLLINKPROGRAMPROC glad_glLinkProgram; #define glLinkProgram glad_glLinkProgram extern PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; #define glGetProgramiv glad_glGetProgramiv extern PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; #define glGetProgramInfoLog glad_glGetProgramInfoLog extern PFNGLUSEPROGRAMPROC glad_glUseProgram; #define glUseProgram glad_glUseProgram extern PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; #define glGetUniformLocation glad_glGetUniformLocation extern PFNGLUNIFORM1IPROC glad_glUniform1i; #define glUniform1i glad_glUniform1i extern PFNGLUNIFORM1FPROC glad_glUniform1f; #define glUniform1f glad_glUniform1f extern PFNGLUNIFORM2FPROC glad_glUniform2f; #define glUniform2f glad_glUniform2f extern PFNGLUNIFORM4FPROC glad_glUniform4f; #define glUniform4f glad_glUniform4f extern PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; #define glUniformMatrix4fv glad_glUniformMatrix4fv extern PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; #define glBindAttribLocation glad_glBindAttribLocation extern PFNGLDETACHSHADERPROC glad_glDetachShader; #define glDetachShader glad_glDetachShader extern PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; #define glVertexAttribPointer glad_glVertexAttribPointer extern PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; #define glEnableVertexAttribArray glad_glEnableVertexAttribArray extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; #define glDisableVertexAttribArray glad_glDisableVertexAttribArray /* Core 3.0 - Framebuffer */ extern PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; #define glGenFramebuffers glad_glGenFramebuffers extern PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; #define glDeleteFramebuffers glad_glDeleteFramebuffers extern PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; #define glBindFramebuffer glad_glBindFramebuffer extern PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; #define glFramebufferTexture2D glad_glFramebufferTexture2D extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; #define glCheckFramebufferStatus glad_glCheckFramebufferStatus extern PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; #define glGenRenderbuffers glad_glGenRenderbuffers extern PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; #define glDeleteRenderbuffers glad_glDeleteRenderbuffers extern PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; #define glBindRenderbuffer glad_glBindRenderbuffer extern PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; #define glRenderbufferStorage glad_glRenderbufferStorage extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; #define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer extern PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; #define glBlitFramebuffer glad_glBlitFramebuffer /* Core 3.0 - Mipmap */ extern PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; #define glGenerateMipmap glad_glGenerateMipmap /* Core 3.0 - VAO */ extern PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; #define glGenVertexArrays glad_glGenVertexArrays extern PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; #define glDeleteVertexArrays glad_glDeleteVertexArrays extern PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; #define glBindVertexArray glad_glBindVertexArray #ifdef __cplusplus } #endif #endif /* GLAD_GL_H_ */