Files
Pulse/Sources/Backends/OpenGL/OpenGLFunctions.h
2025-11-15 16:33:36 +01:00

145 lines
8.5 KiB
C

// Copyright (C) 2025 kbz_8
// This file is part of "Pulse"
// For conditions of distribution and use, see copyright notice in LICENSE
// No header guards
#ifndef PULSE_OPENGL_FUNCTION
#error "You must define PULSE_OPENGL_FUNCTION before including this file"
#endif
#ifndef PULSE_OPENGL_GL_GLES_FUNCTION
#define PULSE_OPENGL_GL_GLES_FUNCTION(glVer, glesVer, name, sig) PULSE_OPENGL_FUNCTION(name, sig)
#endif
// OpenGL core
PULSE_OPENGL_FUNCTION(glActiveTexture, PFNGLACTIVETEXTUREPROC)
PULSE_OPENGL_FUNCTION(glAttachShader, PFNGLATTACHSHADERPROC)
PULSE_OPENGL_FUNCTION(glBeginQuery, PFNGLBEGINQUERYPROC)
PULSE_OPENGL_FUNCTION(glBindAttribLocation, PFNGLBINDATTRIBLOCATIONPROC)
PULSE_OPENGL_FUNCTION(glBindBuffer, PFNGLBINDBUFFERPROC)
PULSE_OPENGL_FUNCTION(glBindBufferRange, PFNGLBINDBUFFERRANGEPROC)
PULSE_OPENGL_FUNCTION(glBindRenderbuffer, PFNGLBINDRENDERBUFFERPROC)
PULSE_OPENGL_FUNCTION(glBindSampler, PFNGLBINDSAMPLERPROC)
PULSE_OPENGL_FUNCTION(glBindTexture, PFNGLBINDTEXTUREPROC)
PULSE_OPENGL_FUNCTION(glBlendEquationSeparate, PFNGLBLENDEQUATIONSEPARATEPROC)
PULSE_OPENGL_FUNCTION(glBlendFuncSeparate, PFNGLBLENDFUNCSEPARATEPROC)
PULSE_OPENGL_FUNCTION(glBufferData, PFNGLBUFFERDATAPROC)
PULSE_OPENGL_FUNCTION(glBufferSubData, PFNGLBUFFERSUBDATAPROC)
PULSE_OPENGL_FUNCTION(glClear, PFNGLCLEARPROC)
PULSE_OPENGL_FUNCTION(glClearBufferfi, PFNGLCLEARBUFFERFIPROC)
PULSE_OPENGL_FUNCTION(glClearBufferfv, PFNGLCLEARBUFFERFVPROC)
PULSE_OPENGL_FUNCTION(glClearBufferuiv, PFNGLCLEARBUFFERUIVPROC)
PULSE_OPENGL_FUNCTION(glClearDepthf, PFNGLCLEARDEPTHFPROC)
PULSE_OPENGL_FUNCTION(glClearStencil, PFNGLCLEARSTENCILPROC)
PULSE_OPENGL_FUNCTION(glCompileShader, PFNGLCOMPILESHADERPROC)
PULSE_OPENGL_FUNCTION(glCompressedTexSubImage2D, PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)
PULSE_OPENGL_FUNCTION(glCompressedTexSubImage3D, PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)
PULSE_OPENGL_FUNCTION(glCopyBufferSubData, PFNGLCOPYBUFFERSUBDATAPROC)
PULSE_OPENGL_FUNCTION(glCopyTexSubImage2D, PFNGLCOPYTEXSUBIMAGE2DPROC)
PULSE_OPENGL_FUNCTION(glCreateProgram, PFNGLCREATEPROGRAMPROC)
PULSE_OPENGL_FUNCTION(glCreateShader, PFNGLCREATESHADERPROC)
PULSE_OPENGL_FUNCTION(glDeleteBuffers, PFNGLDELETEBUFFERSPROC)
PULSE_OPENGL_FUNCTION(glDeleteProgram, PFNGLDELETEPROGRAMPROC)
PULSE_OPENGL_FUNCTION(glDeleteQueries, PFNGLDELETEQUERIESPROC)
PULSE_OPENGL_FUNCTION(glDeleteSamplers, PFNGLDELETESAMPLERSPROC)
PULSE_OPENGL_FUNCTION(glDeleteShader, PFNGLDELETESHADERPROC)
PULSE_OPENGL_FUNCTION(glDeleteTextures, PFNGLDELETETEXTURESPROC)
PULSE_OPENGL_FUNCTION(glDisable, PFNGLDISABLEPROC)
PULSE_OPENGL_FUNCTION(glEnable, PFNGLENABLEPROC)
PULSE_OPENGL_FUNCTION(glEndQuery, PFNGLENDQUERYPROC)
PULSE_OPENGL_FUNCTION(glFinish, PFNGLFINISHPROC)
PULSE_OPENGL_FUNCTION(glFlush, PFNGLFLUSHPROC)
PULSE_OPENGL_FUNCTION(glGenBuffers, PFNGLGENBUFFERSPROC)
PULSE_OPENGL_FUNCTION(glGenQueries, PFNGLGENQUERIESPROC)
PULSE_OPENGL_FUNCTION(glGenSamplers, PFNGLGENSAMPLERSPROC)
PULSE_OPENGL_FUNCTION(glGenTextures, PFNGLGENTEXTURESPROC)
PULSE_OPENGL_FUNCTION(glGetActiveUniform, PFNGLGETACTIVEUNIFORMPROC)
PULSE_OPENGL_FUNCTION(glGetActiveUniformsiv, PFNGLGETACTIVEUNIFORMSIVPROC)
PULSE_OPENGL_FUNCTION(glGetActiveUniformBlockiv, PFNGLGETACTIVEUNIFORMBLOCKIVPROC)
PULSE_OPENGL_FUNCTION(glGetActiveUniformBlockName, PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)
PULSE_OPENGL_FUNCTION(glGetBooleanv, PFNGLGETBOOLEANVPROC)
PULSE_OPENGL_FUNCTION(glGetBufferParameteriv, PFNGLGETBUFFERPARAMETERIVPROC)
PULSE_OPENGL_FUNCTION(glGetError, PFNGLGETERRORPROC)
PULSE_OPENGL_FUNCTION(glGetFloatv, PFNGLGETFLOATVPROC)
PULSE_OPENGL_FUNCTION(glGetInteger64i_v, PFNGLGETINTEGER64I_VPROC)
PULSE_OPENGL_FUNCTION(glGetInteger64v, PFNGLGETINTEGER64VPROC)
PULSE_OPENGL_FUNCTION(glGetIntegeri_v, PFNGLGETINTEGERI_VPROC)
PULSE_OPENGL_FUNCTION(glGetIntegerv, PFNGLGETINTEGERVPROC)
PULSE_OPENGL_FUNCTION(glGetProgramBinary, PFNGLGETPROGRAMBINARYPROC)
PULSE_OPENGL_FUNCTION(glGetProgramInfoLog, PFNGLGETPROGRAMINFOLOGPROC)
PULSE_OPENGL_FUNCTION(glGetProgramiv, PFNGLGETPROGRAMIVPROC)
PULSE_OPENGL_FUNCTION(glGetQueryObjectuiv, PFNGLGETQUERYOBJECTUIVPROC)
PULSE_OPENGL_FUNCTION(glGetQueryiv, PFNGLGETQUERYIVPROC)
PULSE_OPENGL_FUNCTION(glGetShaderInfoLog, PFNGLGETSHADERINFOLOGPROC)
PULSE_OPENGL_FUNCTION(glGetShaderSource, PFNGLGETSHADERSOURCEPROC)
PULSE_OPENGL_FUNCTION(glGetShaderiv, PFNGLGETSHADERIVPROC)
PULSE_OPENGL_FUNCTION(glGetString, PFNGLGETSTRINGPROC)
PULSE_OPENGL_FUNCTION(glGetStringi, PFNGLGETSTRINGIPROC)
PULSE_OPENGL_FUNCTION(glGetTexParameterfv, PFNGLGETTEXPARAMETERFVPROC)
PULSE_OPENGL_FUNCTION(glGetTexParameteriv, PFNGLGETTEXPARAMETERIVPROC)
PULSE_OPENGL_FUNCTION(glGetUniformLocation, PFNGLGETUNIFORMLOCATIONPROC)
PULSE_OPENGL_FUNCTION(glGetUniformfv, PFNGLGETUNIFORMFVPROC)
PULSE_OPENGL_FUNCTION(glGetUniformiv, PFNGLGETUNIFORMIVPROC)
PULSE_OPENGL_FUNCTION(glGetUniformBlockIndex, PFNGLGETUNIFORMBLOCKINDEXPROC)
PULSE_OPENGL_FUNCTION(glIsEnabled, PFNGLISENABLEDPROC)
PULSE_OPENGL_FUNCTION(glLinkProgram, PFNGLLINKPROGRAMPROC)
PULSE_OPENGL_FUNCTION(glMapBufferRange, PFNGLMAPBUFFERRANGEPROC)
PULSE_OPENGL_FUNCTION(glPixelStorei, PFNGLPIXELSTOREIPROC)
PULSE_OPENGL_FUNCTION(glPolygonOffset, PFNGLPOLYGONOFFSETPROC)
PULSE_OPENGL_FUNCTION(glProgramBinary, PFNGLPROGRAMBINARYPROC)
PULSE_OPENGL_FUNCTION(glProgramParameteri, PFNGLPROGRAMPARAMETERIPROC)
PULSE_OPENGL_FUNCTION(glReadPixels, PFNGLREADPIXELSPROC)
PULSE_OPENGL_FUNCTION(glRenderbufferStorage, PFNGLRENDERBUFFERSTORAGEPROC)
PULSE_OPENGL_FUNCTION(glSamplerParameterf, PFNGLSAMPLERPARAMETERFPROC)
PULSE_OPENGL_FUNCTION(glSamplerParameterfv, PFNGLSAMPLERPARAMETERFVPROC)
PULSE_OPENGL_FUNCTION(glSamplerParameteri, PFNGLSAMPLERPARAMETERIPROC)
PULSE_OPENGL_FUNCTION(glSamplerParameteriv, PFNGLSAMPLERPARAMETERIVPROC)
PULSE_OPENGL_FUNCTION(glShaderBinary, PFNGLSHADERBINARYPROC)
PULSE_OPENGL_FUNCTION(glShaderSource, PFNGLSHADERSOURCEPROC)
PULSE_OPENGL_FUNCTION(glTexImage2D, PFNGLTEXIMAGE2DPROC)
PULSE_OPENGL_FUNCTION(glTexImage3D, PFNGLTEXIMAGE3DPROC)
PULSE_OPENGL_FUNCTION(glTexParameterf, PFNGLTEXPARAMETERFPROC)
PULSE_OPENGL_FUNCTION(glTexParameterfv, PFNGLTEXPARAMETERFVPROC)
PULSE_OPENGL_FUNCTION(glTexParameteri, PFNGLTEXPARAMETERIPROC)
PULSE_OPENGL_FUNCTION(glTexParameteriv, PFNGLTEXPARAMETERIVPROC)
PULSE_OPENGL_FUNCTION(glTexStorage2D, PFNGLTEXSTORAGE2DPROC)
PULSE_OPENGL_FUNCTION(glTexStorage3D, PFNGLTEXSTORAGE3DPROC)
PULSE_OPENGL_FUNCTION(glTexSubImage2D, PFNGLTEXSUBIMAGE2DPROC)
PULSE_OPENGL_FUNCTION(glTexSubImage3D, PFNGLTEXSUBIMAGE3DPROC)
PULSE_OPENGL_FUNCTION(glUniform1f, PFNGLUNIFORM1FPROC)
PULSE_OPENGL_FUNCTION(glUniform1fv, PFNGLUNIFORM1FVPROC)
PULSE_OPENGL_FUNCTION(glUniform1i, PFNGLUNIFORM1IPROC)
PULSE_OPENGL_FUNCTION(glUniform1iv, PFNGLUNIFORM1IVPROC)
PULSE_OPENGL_FUNCTION(glUniform2fv, PFNGLUNIFORM2FVPROC)
PULSE_OPENGL_FUNCTION(glUniform2iv, PFNGLUNIFORM2IVPROC)
PULSE_OPENGL_FUNCTION(glUniform3fv, PFNGLUNIFORM3FVPROC)
PULSE_OPENGL_FUNCTION(glUniform3iv, PFNGLUNIFORM3IVPROC)
PULSE_OPENGL_FUNCTION(glUniform4fv, PFNGLUNIFORM4FVPROC)
PULSE_OPENGL_FUNCTION(glUniform4iv, PFNGLUNIFORM4IVPROC)
PULSE_OPENGL_FUNCTION(glUniformBlockBinding, PFNGLUNIFORMBLOCKBINDINGPROC)
PULSE_OPENGL_FUNCTION(glUniformMatrix4fv, PFNGLUNIFORMMATRIX4FVPROC)
PULSE_OPENGL_FUNCTION(glUnmapBuffer, PFNGLUNMAPBUFFERPROC)
PULSE_OPENGL_FUNCTION(glUseProgram, PFNGLUSEPROGRAMPROC)
PULSE_OPENGL_FUNCTION(glValidateProgram, PFNGLVALIDATEPROGRAMPROC)
// OpenGL 4.2 - OpenGL ES 3.1
PULSE_OPENGL_GL_GLES_FUNCTION(420, 310, glBindImageTexture, PFNGLBINDIMAGETEXTUREPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(420, 310, glGetBooleani_v, PFNGLGETBOOLEANI_VPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(420, 310, glMemoryBarrier, PFNGLMEMORYBARRIERPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(420, 310, glMemoryBarrierByRegion, PFNGLMEMORYBARRIERBYREGIONPROC)
// OpenGL 4.3 - OpenGL ES 3.1
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glDispatchCompute, PFNGLDISPATCHCOMPUTEPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glGetProgramInterfaceiv, PFNGLGETPROGRAMINTERFACEIVPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glGetProgramResourceiv, PFNGLGETPROGRAMRESOURCEIVPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glGetProgramResourceIndex, PFNGLGETPROGRAMRESOURCEINDEXPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glGetProgramResourceLocation, PFNGLGETPROGRAMRESOURCELOCATIONPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glGetProgramResourceName, PFNGLGETPROGRAMRESOURCENAMEPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 310, glCreateShaderProgramv, PFNGLCREATESHADERPROGRAMVPROC)
// OpenGL 4.3 - OpenGL ES 3.2
PULSE_OPENGL_GL_GLES_FUNCTION(430, 320, glDebugMessageCallback, PFNGLDEBUGMESSAGECALLBACKPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 320, glDebugMessageControl, PFNGLDEBUGMESSAGECONTROLPROC)
PULSE_OPENGL_GL_GLES_FUNCTION(430, 320, glDispatchComputeIndirect, PFNGLDISPATCHCOMPUTEINDIRECTPROC)