From 83b3fe86b1c13f40a6be4580b4079980030a54a7 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Fri, 30 Mar 2018 15:35:05 +0100 Subject: Simplify gl loading by removing m4 and merging gldefs.h m4 has been removed, loadgl.c.in is now gl.c, gldefs.h and loadgl.h.in have now been merged into gl.h. loadgl.m4 has been transformed into glfunc.h which is being used in the way of a bie index file to generate information at 3 places. lgl_load is now gl_load and doesn't return anything, the jongjmp.h method of error handling was pre-emptive and for now this much simpler system will suffice. This means that lgl_strerror is no longer neede. --- gl.h | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 gl.h (limited to 'gl.h') diff --git a/gl.h b/gl.h new file mode 100644 index 0000000..30e7862 --- /dev/null +++ b/gl.h @@ -0,0 +1,75 @@ +/* + * 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_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 -- cgit v1.2.3-54-g00ecf