opengl.h (11597B)
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_MAP_WRITE_BIT 0x0002 15 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 16 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 17 #define GL_DYNAMIC_STORAGE_BIT 0x0100 18 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 19 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 20 #define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 21 22 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 23 #define GL_TEXTURE_3D 0x806F 24 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 25 #define GL_MULTISAMPLE 0x809D 26 #define GL_CLAMP_TO_BORDER 0x812D 27 #define GL_CLAMP_TO_EDGE 0x812F 28 #define GL_DEPTH_COMPONENT24 0x81A6 29 #define GL_MAJOR_VERSION 0x821B 30 #define GL_MINOR_VERSION 0x821C 31 #define GL_RG 0x8227 32 #define GL_R32F 0x822E 33 #define GL_RG32F 0x8230 34 #define GL_R8I 0x8231 35 #define GL_R16I 0x8233 36 #define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 37 #define GL_BUFFER 0x82E0 38 #define GL_PROGRAM 0x82E2 39 #define GL_MIRRORED_REPEAT 0x8370 40 #define GL_QUERY_RESULT 0x8866 41 #define GL_READ_ONLY 0x88B8 42 #define GL_WRITE_ONLY 0x88B9 43 #define GL_READ_WRITE 0x88BA 44 #define GL_TIME_ELAPSED 0x88BF 45 #define GL_STATIC_DRAW 0x88E4 46 #define GL_UNIFORM_BUFFER 0x8A11 47 #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 48 #define GL_FRAGMENT_SHADER 0x8B30 49 #define GL_VERTEX_SHADER 0x8B31 50 #define GL_COMPILE_STATUS 0x8B81 51 #define GL_LINK_STATUS 0x8B82 52 #define GL_INFO_LOG_LENGTH 0x8B84 53 #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B 54 #define GL_COLOR_ATTACHMENT0 0x8CE0 55 #define GL_DEPTH_ATTACHMENT 0x8D00 56 #define GL_FRAMEBUFFER 0x8D40 57 #define GL_RENDERBUFFER 0x8D41 58 #define GL_RED_INTEGER 0x8D94 59 #define GL_TIMESTAMP 0x8E28 60 #define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC 61 #define GL_SHADER_STORAGE_BUFFER 0x90D2 62 #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE 63 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 64 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 65 #define GL_TIMEOUT_EXPIRED 0x911B 66 #define GL_WAIT_FAILED 0x911D 67 #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F 68 #define GL_COMPUTE_SHADER 0x91B9 69 #define GL_DEBUG_OUTPUT 0x92E0 70 71 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull 72 73 typedef char GLchar; 74 typedef ptrdiff_t GLsizeiptr; 75 typedef ptrdiff_t GLintptr; 76 typedef uint64_t GLuint64; 77 typedef struct __GLsync *GLsync; 78 79 /* X(name, ret, params) */ 80 #define OGLProcedureList \ 81 X(glAttachShader, void, (GLuint program, GLuint shader)) \ 82 X(glBeginQuery, void, (GLenum target, GLuint id)) \ 83 X(glBindBufferBase, void, (GLenum target, GLuint index, GLuint buffer)) \ 84 X(glBindBufferRange, void, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ 85 X(glBindFramebuffer, void, (GLenum target, GLuint framebuffer)) \ 86 X(glBindImageTexture, void, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \ 87 X(glBindTextureUnit, void, (GLuint unit, GLuint texture)) \ 88 X(glBindVertexArray, void, (GLuint array)) \ 89 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)) \ 90 X(glClearNamedBufferData, void, (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)) \ 91 X(glClearNamedFramebufferfv, void, (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ 92 X(glClearTexImage, void, (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \ 93 X(glClientWaitSync, GLenum, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ 94 X(glCompileShader, void, (GLuint shader)) \ 95 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)) \ 96 X(glCreateBuffers, void, (GLsizei n, GLuint *buffers)) \ 97 X(glCreateFramebuffers, void, (GLsizei n, GLuint *ids)) \ 98 X(glCreateProgram, GLuint, (void)) \ 99 X(glCreateQueries, void, (GLenum target, GLsizei n, GLuint *ids)) \ 100 X(glCreateRenderbuffers, void, (GLsizei n, GLuint *renderbuffers)) \ 101 X(glCreateShader, GLuint, (GLenum shaderType)) \ 102 X(glCreateTextures, void, (GLenum target, GLsizei n, GLuint *textures)) \ 103 X(glCreateVertexArrays, void, (GLsizei n, GLuint *arrays)) \ 104 X(glDebugMessageCallback, void, (void (*)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *user), void *user)) \ 105 X(glDeleteBuffers, void, (GLsizei n, const GLuint *buffers)) \ 106 X(glDeleteProgram, void, (GLuint program)) \ 107 X(glDeleteShader, void, (GLuint shader)) \ 108 X(glDeleteSync, void, (GLsync sync)) \ 109 X(glDispatchCompute, void, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \ 110 X(glEndQuery, void, (GLenum target)) \ 111 X(glEnableVertexArrayAttrib, void, (GLuint vao, GLuint index)) \ 112 X(glFenceSync, GLsync, (GLenum condition, GLbitfield flags)) \ 113 X(glFlushMappedNamedBufferRange, void, (GLuint buffer, GLintptr offset, GLsizei length)) \ 114 X(glGenerateTextureMipmap, void, (GLuint texture)) \ 115 X(glGetProgramInfoLog, void, (GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog)) \ 116 X(glGetProgramiv, void, (GLuint program, GLenum pname, GLint *params)) \ 117 X(glGetQueryObjectui64v, void, (GLuint id, GLenum pname, GLuint64 *params)) \ 118 X(glGetShaderInfoLog, void, (GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog)) \ 119 X(glGetShaderiv, void, (GLuint shader, GLenum pname, GLint *params)) \ 120 X(glGetTextureImage, void, (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)) \ 121 X(glLinkProgram, void, (GLuint program)) \ 122 X(glMapNamedBufferRange, void *, (GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)) \ 123 X(glMemoryBarrier, void, (GLbitfield barriers)) \ 124 X(glNamedBufferData, void, (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)) \ 125 X(glNamedBufferStorage, void, (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)) \ 126 X(glNamedBufferSubData, void, (GLuint buffer, GLintptr offset, GLsizei size, const void *data)) \ 127 X(glNamedFramebufferRenderbuffer, void, (GLuint fb, GLenum attachment, GLenum renderbuffertarget, GLuint rb)) \ 128 X(glNamedFramebufferTexture, void, (GLuint fb, GLenum attachment, GLuint texture, GLint level)) \ 129 X(glNamedRenderbufferStorageMultisample, void, (GLuint rb, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ 130 X(glObjectLabel, void, (GLenum identifier, GLuint name, GLsizei length, const char *label)) \ 131 X(glProgramUniform1f, void, (GLuint program, GLint location, GLfloat v0)) \ 132 X(glProgramUniform1i, void, (GLuint program, GLint location, GLint v0)) \ 133 X(glProgramUniform1ui, void, (GLuint program, GLint location, GLuint v0)) \ 134 X(glProgramUniform3iv, void, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ 135 X(glProgramUniform4fv, void, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ 136 X(glProgramUniformMatrix4fv, void, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ 137 X(glQueryCounter, void, (GLuint id, GLenum target)) \ 138 X(glShaderSource, void, (GLuint shader, GLsizei count, const GLchar **strings, const GLint *lengths)) \ 139 X(glTextureParameteri, void, (GLuint texture, GLenum pname, GLint param)) \ 140 X(glTextureParameterfv, void, (GLuint texture, GLenum pname, const GLfloat *param)) \ 141 X(glTextureStorage1D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width)) \ 142 X(glTextureStorage2D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ 143 X(glTextureStorage3D, void, (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ 144 X(glTextureSubImage1D, void, (GLuint texture, GLint level, GLint xoff, GLsizei width, GLenum format, GLenum type, const void *pix)) \ 145 X(glTextureSubImage2D, void, (GLuint texture, GLint level, GLint xoff, GLint yoff, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pix)) \ 146 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)) \ 147 X(glUnmapNamedBuffer, GLboolean, (GLuint buffer)) \ 148 X(glUseProgram, void, (GLuint program)) \ 149 X(glVertexArrayAttribBinding, void, (GLuint vao, GLuint attribindex, GLuint bindingindex)) \ 150 X(glVertexArrayAttribFormat, void, (GLuint vao, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ 151 X(glVertexArrayElementBuffer, void, (GLuint vao, GLuint buffer)) \ 152 X(glVertexArrayVertexBuffer, void, (GLuint vao, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \ 153 X(glWaitSync, void, (GLsync sync, GLbitfield flags, GLuint64 timeout)) 154 155 #define X(name, ret, params) typedef ret name##_fn params; 156 OGLProcedureList 157 #undef X 158 #define X(name, ret, params) DEBUG_IMPORT name##_fn *name; 159 OGLProcedureList 160 #undef X 161 162 #endif /* _OPENGL_H_*/