diff options
Diffstat (limited to 'gl.h')
-rw-r--r-- | gl.h | 75 |
1 files changed, 75 insertions, 0 deletions
@@ -0,0 +1,75 @@ +/* + * Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com> + * SPDX-License-Identifier: MIT + */ +#ifndef GL_H +#define GL_H + +#include <stdint.h> +#include <stddef.h> + +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_NO_ERROR = 0, + GL_FALSE = 0, + GL_TRUE = 1, + GL_TRIANGLES = 0x0004, + GL_FRONT_AND_BACK = 0x0408, + GL_INVALID_ENUM = 0x0500, + GL_INVALID_VALUE = 0x0501, + GL_INVALID_OPERATION = 0x0502, + GL_STACK_OVERFLOW = 0x0503, + GL_STACK_UNDERFLOW = 0x0504, + GL_OUT_OF_MEMORY = 0x0505, + GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506, + GL_CONTEXT_LOST = 0x0507, + GL_UNSIGNED_INT = 0x1405, + GL_FLOAT = 0x1406, + GL_LINE = 0x1B01, + GL_COLOR_BUFFER_BIT = 0x4000, + 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, +}; + +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 |