/* * Copyright (C) 2018 Tomasz Kramkowski * SPDX-License-Identifier: MIT */ #ifndef GL_H #define GL_H #include #include typedef uint8_t GLboolean; typedef int8_t GLbyte; typedef uint8_t GLubyte; typedef char GLchar; typedef int16_t GLshort; typedef uint16_t GLushort; typedef int32_t GLint; typedef uint32_t GLuint; typedef int32_t GLfixed; typedef int64_t GLint64; typedef uint64_t GLuint64; typedef int32_t GLsizei; typedef int32_t GLenum; typedef ptrdiff_t GLintptr; typedef ptrdiff_t GLsizeiptr; typedef struct gl_sync *GLsync; typedef uint32_t GLbitfield; typedef uint16_t GLhalf; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; enum { GL_DEPTH_BUFFER_BIT = 0x100, GL_COLOR_BUFFER_BIT = 0x4000, }; enum { GL_NO_ERROR = 0, GL_FALSE = 0, GL_TRUE = 1, GL_TRIANGLES = 0x0004, GL_FRONT_AND_BACK = 0x0408, GL_INVALID_ENUM = 0x0500, GL_INVALID_VALUE, GL_INVALID_OPERATION, GL_STACK_OVERFLOW, GL_STACK_UNDERFLOW, GL_OUT_OF_MEMORY, GL_INVALID_FRAMEBUFFER_OPERATION, GL_CONTEXT_LOST, GL_CULL_FACE = 0x0b44, GL_DEPTH_TEST = 0x0b71, GL_TEXTURE_2D = 0x0de1, GL_UNSIGNED_BYTE = 0x1401, GL_UNSIGNED_INT = 0x1405, GL_FLOAT = 0x1406, GL_RGB = 0x1907, GL_LINE = 0x1B01, GL_NEAREST = 0x2600, GL_LINEAR, GL_NEAREST_MIPMAP_NEAREST = 0x2700, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR, GL_TEXTURE_MAG_FILTER = 0x2800, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_CLAMP = 0x2900, GL_REPEAT, GL_TEXTURE0 = 0x84c0, GL_ARRAY_BUFFER = 0x8892, GL_ELEMENT_ARRAY_BUFFER = 0x8893, GL_STREAM_DRAW = 0x88e0, GL_STATIC_DRAW = 0x88e4, GL_DYNAMIC_DRAW = 0x88e8, GL_FRAGMENT_SHADER = 0x8b30, GL_VERTEX_SHADER = 0x8b31, GL_COMPILE_STATUS = 0x8b81, GL_LINK_STATUS = 0x8b82, GL_FRAMEBUFFER_SRGB = 0x8db9, }; typedef void *gl_loadfunc(const char *name); void gl_load(gl_loadfunc *load); const char *gl_strerror(GLenum error); #define _GL_FUNC(rtype, name, type, ...) \ typedef rtype type(__VA_ARGS__); \ extern type *name; #define GL_FUNC(glname, rtype, name, ...) _GL_FUNC(rtype, name, name##_func, __VA_ARGS__) #include "glfunc.h" #undef GL_FUNC #undef _GL_FUNC #endif // GL_H