mirror of
https://github.com/Kbz-8/Pulse.git
synced 2026-01-10 15:03:34 +00:00
145 lines
8.5 KiB
C
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)
|