opengl.h (10016B)
1 /* See LICENSE for license details. */ 2 #ifndef _OPENGL_H_ 3 #define _OPENGL_H_ 4 5 #if OS_WINDOWS 6 /* NOTE: msys2 compatibility kludge */ 7 #define WINGDIAPI 8 #define APIENTRY 9 #endif 10 11 #include <GL/gl.h> 12 13 /* NOTE: do not add extra 0s to these, even at the start -> garbage compilers will complain */ 14 #define GL_DYNAMIC_STORAGE_BIT 0x0100 15 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 16 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 17 18 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 19 #define GL_TEXTURE_3D 0x806F 20 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 21 #define GL_MULTISAMPLE 0x809D 22 #define GL_CLAMP_TO_BORDER 0x812D 23 #define GL_DEPTH_COMPONENT24 0x81A6 24 #define GL_MAJOR_VERSION 0x821B 25 #define GL_MINOR_VERSION 0x821C 26 #define GL_RG 0x8227 27 #define GL_RG32F 0x8230 28 #define GL_R8I 0x8231 29 #define GL_R16I 0x8233 30 #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 31 #define GL_BUFFER 0x82E0 32 #define GL_PROGRAM 0x82E2 33 #define GL_MIRRORED_REPEAT 0x8370 34 #define GL_QUERY_RESULT 0x8866 35 #define GL_READ_ONLY 0x88B8 36 #define GL_WRITE_ONLY 0x88B9 37 #define GL_READ_WRITE 0x88BA 38 #define GL_TIME_ELAPSED 0x88BF 39 #define GL_STATIC_DRAW 0x88E4 40 #define GL_UNIFORM_BUFFER 0x8A11 41 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 42 #define GL_FRAGMENT_SHADER 0x8B30 43 #define GL_VERTEX_SHADER 0x8B31 44 #define GL_COMPILE_STATUS 0x8B81 45 #define GL_LINK_STATUS 0x8B82 46 #define GL_INFO_LOG_LENGTH 0x8B84 47 #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B 48 #define GL_COLOR_ATTACHMENT0 0x8CE0 49 #define GL_DEPTH_ATTACHMENT 0x8D00 50 #define GL_FRAMEBUFFER 0x8D40 51 #define GL_RENDERBUFFER 0x8D41 52 #define GL_RED_INTEGER 0x8D94 53 #define GL_TIMESTAMP 0x8E28 54 #define GL_SHADER_STORAGE_BUFFER 0x90D2 55 #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE 56 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 57 #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F 58 #define GL_COMPUTE_SHADER 0x91B9 59 60 typedef char GLchar; 61 typedef ptrdiff_t GLsizeiptr; 62 typedef ptrdiff_t GLintptr; 63 typedef uint64_t GLuint64; 64 65 /* X(name, ret, params) */ 66 #define OGLProcedureList \ 67 X(glAttachShader, void, (GLuint program, GLuint shader)) \ 68 X(glBeginQuery, void, (GLenum target, GLuint id)) \ 69 X(glBindBufferBase, void, (GLenum target, GLuint index, GLuint buffer)) \ 70 X(glBindFramebuffer, void, (GLenum target, GLuint framebuffer)) \ 71 X(glBindImageTexture, void, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \ 72 X(glBindTextureUnit, void, (GLuint unit, GLuint texture)) \ 73 X(glBindVertexArray, void, (GLuint array)) \ 74 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)) \ 75 X(glClearNamedFramebufferfv, void, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ 76 X(glClearTexImage, void, (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \ 77 X(glCompileShader, void, (GLuint shader)) \ 78 X(glCopyImageSubData, void, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) \ 79 X(glCreateBuffers, void, (GLsizei n, GLuint *buffers)) \ 80 X(glCreateFramebuffers, void, (GLsizei n, GLuint *ids)) \ 81 X(glCreateProgram, GLuint, (void)) \ 82 X(glCreateQueries, void, (GLenum target, GLsizei n, GLuint *ids)) \ 83 X(glCreateRenderbuffers, void, (GLsizei n, GLuint *renderbuffers)) \ 84 X(glCreateShader, GLuint, (GLenum shaderType)) \ 85 X(glCreateTextures, void, (GLenum target, GLsizei n, GLuint *textures)) \ 86 X(glCreateVertexArrays, void, (GLsizei n, GLuint *arrays)) \ 87 X(glDebugMessageCallback, void, (void (*)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *user), void *user)) \ 88 X(glDeleteBuffers, void, (GLsizei n, const GLuint *buffers)) \ 89 X(glDeleteProgram, void, (GLuint program)) \ 90 X(glDeleteShader, void, (GLuint shader)) \ 91 X(glDispatchCompute, void, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \ 92 X(glEndQuery, void, (GLenum target)) \ 93 X(glEnableVertexArrayAttrib, void, (GLuint vao, GLuint index)) \ 94 X(glGenerateTextureMipmap, void, (GLuint texture)) \ 95 X(glGetProgramInfoLog, void, (GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog)) \ 96 X(glGetProgramiv, void, (GLuint program, GLenum pname, GLint *params)) \ 97 X(glGetQueryObjectui64v, void, (GLuint id, GLenum pname, GLuint64 *params)) \ 98 X(glGetShaderInfoLog, void, (GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog)) \ 99 X(glGetShaderiv, void, (GLuint shader, GLenum pname, GLint *params)) \ 100 X(glGetTextureImage, void, (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)) \ 101 X(glLinkProgram, void, (GLuint program)) \ 102 X(glMemoryBarrier, void, (GLbitfield barriers)) \ 103 X(glNamedBufferData, void, (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)) \ 104 X(glNamedBufferStorage, void, (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)) \ 105 X(glNamedBufferSubData, void, (GLuint buffer, GLintptr offset, GLsizei size, const void *data)) \ 106 X(glNamedFramebufferRenderbuffer, void, (GLuint fb, GLenum attachment, GLenum renderbuffertarget, GLuint rb)) \ 107 X(glNamedFramebufferTexture, void, (GLuint fb, GLenum attachment, GLuint texture, GLint level)) \ 108 X(glNamedRenderbufferStorageMultisample, void, (GLuint rb, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ 109 X(glObjectLabel, void, (GLenum identifier, GLuint name, GLsizei length, const char *label)) \ 110 X(glProgramUniform1f, void, (GLuint program, GLint location, GLfloat v0)) \ 111 X(glProgramUniform1i, void, (GLuint program, GLint location, GLint v0)) \ 112 X(glProgramUniform1ui, void, (GLuint program, GLint location, GLuint v0)) \ 113 X(glProgramUniform3iv, void, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ 114 X(glProgramUniform4fv, void, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ 115 X(glProgramUniformMatrix4fv, void, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ 116 X(glQueryCounter, void, (GLuint id, GLenum target)) \ 117 X(glShaderSource, void, (GLuint shader, GLsizei count, const GLchar **strings, const GLint *lengths)) \ 118 X(glTextureParameteri, void, (GLuint texture, GLenum pname, GLint param)) \ 119 X(glTextureParameterfv, void, (GLuint texture, GLenum pname, const GLfloat *param)) \ 120 X(glTextureStorage1D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width)) \ 121 X(glTextureStorage2D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ 122 X(glTextureStorage3D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ 123 X(glTextureSubImage1D, void, (GLuint texture, GLint level, GLint xoff, GLsizei width, GLenum format, GLenum type, const void *pix)) \ 124 X(glTextureSubImage2D, void, (GLuint texture, GLint level, GLint xoff, GLint yoff, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pix)) \ 125 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)) \ 126 X(glUseProgram, void, (GLuint program)) \ 127 X(glVertexArrayAttribBinding, void, (GLuint vao, GLuint attribindex, GLuint bindingindex)) \ 128 X(glVertexArrayAttribFormat, void, (GLuint vao, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ 129 X(glVertexArrayElementBuffer, void, (GLuint vao, GLuint buffer)) \ 130 X(glVertexArrayVertexBuffer, void, (GLuint vao, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) 131 132 #define X(name, ret, params) typedef ret name##_fn params; 133 OGLProcedureList 134 #undef X 135 #define X(name, ret, params) DEBUG_IMPORT name##_fn *name; 136 OGLProcedureList 137 #undef X 138 139 #endif /* _OPENGL_H_*/