opengl.h (6208B)
1 /* See LICENSE for license details. */ 2 #if OS_WINDOWS 3 /* NOTE: msys2 compatibility kludge */ 4 #define WINGDIAPI 5 #define APIENTRY 6 #endif 7 8 #include <GL/gl.h> 9 10 #define GL_DYNAMIC_STORAGE_BIT 0x0100 11 12 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 13 #define GL_TEXTURE_3D 0x806F 14 #define GL_MULTISAMPLE 0x809D 15 #define GL_DEPTH_COMPONENT24 0x81A6 16 #define GL_RG 0x8227 17 #define GL_RG32F 0x8230 18 #define GL_PROGRAM 0x82E2 19 #define GL_MIRRORED_REPEAT 0x8370 20 #define GL_STATIC_DRAW 0x88E4 21 #define GL_FRAGMENT_SHADER 0x8B30 22 #define GL_VERTEX_SHADER 0x8B31 23 #define GL_COMPILE_STATUS 0x8B81 24 #define GL_LINK_STATUS 0x8B82 25 #define GL_INFO_LOG_LENGTH 0x8B84 26 #define GL_COLOR_ATTACHMENT0 0x8CE0 27 #define GL_DEPTH_ATTACHMENT 0x8D00 28 #define GL_FRAMEBUFFER 0x8D40 29 #define GL_RENDERBUFFER 0x8D41 30 31 typedef char GLchar; 32 typedef ptrdiff_t GLsizeiptr; 33 typedef ptrdiff_t GLintptr; 34 35 /* X(name, ret, params) */ 36 #define OGLProcedureList \ 37 X(glAttachShader, void, (GLuint program, GLuint shader)) \ 38 X(glBindFramebuffer, void, (GLenum target, GLuint framebuffer)) \ 39 X(glBindTextureUnit, void, (GLuint unit, GLuint texture)) \ 40 X(glBindVertexArray, void, (GLuint array)) \ 41 X(glBlitNamedFramebuffer, void, (GLuint sfb, GLuint dfb, GLint sx0, GLint sy0, GLint sx1, GLint sy1, GLint dx0, GLint dy0, GLint dx1, GLint dy1, GLbitfield mask, GLenum filter)) \ 42 X(glClearNamedFramebufferfv, void, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ 43 X(glCompileShader, void, (GLuint shader)) \ 44 X(glCreateBuffers, void, (GLsizei n, GLuint *buffers)) \ 45 X(glCreateFramebuffers, void, (GLsizei n, GLuint *ids)) \ 46 X(glCreateProgram, GLuint, (void)) \ 47 X(glCreateRenderbuffers, void, (GLsizei n, GLuint *renderbuffers)) \ 48 X(glCreateShader, GLuint, (GLenum shaderType)) \ 49 X(glCreateTextures, void, (GLenum target, GLsizei n, GLuint *textures)) \ 50 X(glCreateVertexArrays, void, (GLsizei n, GLuint *arrays)) \ 51 X(glDebugMessageCallback, void, (void (*)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *user), void *user)) \ 52 X(glDeleteProgram, void, (GLuint program)) \ 53 X(glDeleteShader, void, (GLuint shader)) \ 54 X(glEnableVertexArrayAttrib, void, (GLuint vao, GLuint index)) \ 55 X(glGenerateTextureMipmap, void, (GLuint texture)) \ 56 X(glGetProgramInfoLog, void, (GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog)) \ 57 X(glGetProgramiv, void, (GLuint program, GLenum pname, GLint *params)) \ 58 X(glGetShaderInfoLog, void, (GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog)) \ 59 X(glGetShaderiv, void, (GLuint shader, GLenum pname, GLint *params)) \ 60 X(glGetTextureImage, void, (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)) \ 61 X(glLinkProgram, void, (GLuint program)) \ 62 X(glNamedBufferData, void, (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)) \ 63 X(glNamedBufferStorage, void, (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)) \ 64 X(glNamedBufferSubData, void, (GLuint buffer, GLintptr offset, GLsizei size, const void *data)) \ 65 X(glNamedFramebufferRenderbuffer, void, (GLuint fb, GLenum attachment, GLenum renderbuffertarget, GLuint rb)) \ 66 X(glNamedFramebufferTexture, void, (GLuint fb, GLenum attachment, GLuint texture, GLint level)) \ 67 X(glNamedRenderbufferStorageMultisample, void, (GLuint rb, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ 68 X(glObjectLabel, void, (GLenum identifier, GLuint name, GLsizei length, const char *label)) \ 69 X(glProgramUniform1f, void, (GLuint program, GLint location, GLfloat v0)) \ 70 X(glProgramUniform1ui, void, (GLuint program, GLint location, GLuint v0)) \ 71 X(glProgramUniform4fv, void, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ 72 X(glProgramUniformMatrix4fv, void, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ 73 X(glShaderSource, void, (GLuint shader, GLsizei count, const GLchar **strings, const GLint *lengths)) \ 74 X(glTextureParameteri, void, (GLuint texture, GLenum pname, GLint param)) \ 75 X(glTextureStorage2D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ 76 X(glTextureStorage3D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ 77 X(glTextureSubImage3D, void, (GLuint texture, GLint level, GLint xoff, GLint yoff, GLint zoff, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pix)) \ 78 X(glUseProgram, void, (GLuint program)) \ 79 X(glVertexArrayAttribBinding, void, (GLuint vao, GLuint attribindex, GLuint bindingindex)) \ 80 X(glVertexArrayAttribFormat, void, (GLuint vao, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ 81 X(glVertexArrayElementBuffer, void, (GLuint vao, GLuint buffer)) \ 82 X(glVertexArrayVertexBuffer, void, (GLuint vao, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) 83 84 #define X(name, ret, params) typedef ret name##_fn params; 85 OGLProcedureList 86 #undef X 87 #define X(name, ret, params) global name##_fn *name; 88 OGLProcedureList 89 #undef X 90