// Copyright (C) 2025 kanel // This file is part of "Pulse" // For conditions of distribution and use, see copyright notice in LICENSE // This is a generated file // No header guards #ifndef PULSE_OPENGL_WRAPPER_RET #error "You must define PULSE_OPENGL_WRAPPER_RET before including this file" #endif #ifndef PULSE_OPENGL_WRAPPER #error "You must define PULSE_OPENGL_WRAPPER before including this file" #endif PULSE_OPENGL_WRAPPER(glActiveTexture, (PulseDevice device, GLenum texture), (texture), PFNGLACTIVETEXTUREPROC) PULSE_OPENGL_WRAPPER(glAttachShader, (PulseDevice device, GLuint program, GLuint shader), (program, shader), PFNGLATTACHSHADERPROC) PULSE_OPENGL_WRAPPER(glBindAttribLocation, (PulseDevice device, GLuint program, GLuint index, const GLchar *name), (program, index, name), PFNGLBINDATTRIBLOCATIONPROC) PULSE_OPENGL_WRAPPER(glBindBuffer, (PulseDevice device, GLenum target, GLuint buffer), (target, buffer), PFNGLBINDBUFFERPROC) PULSE_OPENGL_WRAPPER(glBindRenderbuffer, (PulseDevice device, GLenum target, GLuint renderbuffer), (target, renderbuffer), PFNGLBINDRENDERBUFFERPROC) PULSE_OPENGL_WRAPPER(glBindTexture, (PulseDevice device, GLenum target, GLuint texture), (target, texture), PFNGLBINDTEXTUREPROC) PULSE_OPENGL_WRAPPER(glBlendEquationSeparate, (PulseDevice device, GLenum modeRGB, GLenum modeAlpha), (modeRGB, modeAlpha), PFNGLBLENDEQUATIONSEPARATEPROC) PULSE_OPENGL_WRAPPER(glBlendFuncSeparate, (PulseDevice device, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha), (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), PFNGLBLENDFUNCSEPARATEPROC) PULSE_OPENGL_WRAPPER(glBufferData, (PulseDevice device, GLenum target, GLsizeiptr size, const void *data, GLenum usage), (target, size, data, usage), PFNGLBUFFERDATAPROC) PULSE_OPENGL_WRAPPER(glBufferSubData, (PulseDevice device, GLenum target, GLintptr offset, GLsizeiptr size, const void *data), (target, offset, size, data), PFNGLBUFFERSUBDATAPROC) PULSE_OPENGL_WRAPPER(glClear, (PulseDevice device, GLbitfield mask), (mask), PFNGLCLEARPROC) PULSE_OPENGL_WRAPPER(glClearDepthf, (PulseDevice device, GLfloat d), (d), PFNGLCLEARDEPTHFPROC) PULSE_OPENGL_WRAPPER(glClearStencil, (PulseDevice device, GLint s), (s), PFNGLCLEARSTENCILPROC) PULSE_OPENGL_WRAPPER(glCompileShader, (PulseDevice device, GLuint shader), (shader), PFNGLCOMPILESHADERPROC) PULSE_OPENGL_WRAPPER(glCompressedTexSubImage2D, (PulseDevice device, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data), (target, level, xoffset, yoffset, width, height, format, imageSize, data), PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) PULSE_OPENGL_WRAPPER(glCopyTexSubImage2D, (PulseDevice device, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target, level, xoffset, yoffset, x, y, width, height), PFNGLCOPYTEXSUBIMAGE2DPROC) PULSE_OPENGL_WRAPPER_RET(GLuint, glCreateProgram, (PulseDevice device), (), PFNGLCREATEPROGRAMPROC) PULSE_OPENGL_WRAPPER_RET(GLuint, glCreateShader, (PulseDevice device, GLenum type), (type), PFNGLCREATESHADERPROC) PULSE_OPENGL_WRAPPER(glDeleteBuffers, (PulseDevice device, GLsizei n, const GLuint *buffers), (n, buffers), PFNGLDELETEBUFFERSPROC) PULSE_OPENGL_WRAPPER(glDeleteProgram, (PulseDevice device, GLuint program), (program), PFNGLDELETEPROGRAMPROC) PULSE_OPENGL_WRAPPER(glDeleteShader, (PulseDevice device, GLuint shader), (shader), PFNGLDELETESHADERPROC) PULSE_OPENGL_WRAPPER(glDeleteTextures, (PulseDevice device, GLsizei n, const GLuint *textures), (n, textures), PFNGLDELETETEXTURESPROC) PULSE_OPENGL_WRAPPER(glDisable, (PulseDevice device, GLenum cap), (cap), PFNGLDISABLEPROC) PULSE_OPENGL_WRAPPER(glEnable, (PulseDevice device, GLenum cap), (cap), PFNGLENABLEPROC) PULSE_OPENGL_WRAPPER(glFinish, (PulseDevice device), (), PFNGLFINISHPROC) PULSE_OPENGL_WRAPPER(glFlush, (PulseDevice device), (), PFNGLFLUSHPROC) PULSE_OPENGL_WRAPPER(glGenBuffers, (PulseDevice device, GLsizei n, GLuint *buffers), (n, buffers), PFNGLGENBUFFERSPROC) PULSE_OPENGL_WRAPPER(glGenTextures, (PulseDevice device, GLsizei n, GLuint *textures), (n, textures), PFNGLGENTEXTURESPROC) PULSE_OPENGL_WRAPPER(glGetActiveUniform, (PulseDevice device, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name), (program, index, bufSize, length, size, type, name), PFNGLGETACTIVEUNIFORMPROC) PULSE_OPENGL_WRAPPER(glGetBooleanv, (PulseDevice device, GLenum pname, GLboolean *data), (pname, data), PFNGLGETBOOLEANVPROC) PULSE_OPENGL_WRAPPER(glGetBufferParameteriv, (PulseDevice device, GLenum target, GLenum pname, GLint *params), (target, pname, params), PFNGLGETBUFFERPARAMETERIVPROC) PULSE_OPENGL_WRAPPER_RET(GLenum, glGetError, (PulseDevice device), (), PFNGLGETERRORPROC) PULSE_OPENGL_WRAPPER(glGetFloatv, (PulseDevice device, GLenum pname, GLfloat *data), (pname, data), PFNGLGETFLOATVPROC) PULSE_OPENGL_WRAPPER(glGetIntegerv, (PulseDevice device, GLenum pname, GLint *data), (pname, data), PFNGLGETINTEGERVPROC) PULSE_OPENGL_WRAPPER(glGetProgramiv, (PulseDevice device, GLuint program, GLenum pname, GLint *params), (program, pname, params), PFNGLGETPROGRAMIVPROC) PULSE_OPENGL_WRAPPER(glGetProgramInfoLog, (PulseDevice device, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog), (program, bufSize, length, infoLog), PFNGLGETPROGRAMINFOLOGPROC) PULSE_OPENGL_WRAPPER(glGetShaderiv, (PulseDevice device, GLuint shader, GLenum pname, GLint *params), (shader, pname, params), PFNGLGETSHADERIVPROC) PULSE_OPENGL_WRAPPER(glGetShaderInfoLog, (PulseDevice device, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog), (shader, bufSize, length, infoLog), PFNGLGETSHADERINFOLOGPROC) PULSE_OPENGL_WRAPPER(glGetShaderSource, (PulseDevice device, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source), (shader, bufSize, length, source), PFNGLGETSHADERSOURCEPROC) PULSE_OPENGL_WRAPPER_RET(const GLubyte *, glGetString, (PulseDevice device, GLenum name), (name), PFNGLGETSTRINGPROC) PULSE_OPENGL_WRAPPER(glGetTexParameterfv, (PulseDevice device, GLenum target, GLenum pname, GLfloat *params), (target, pname, params), PFNGLGETTEXPARAMETERFVPROC) PULSE_OPENGL_WRAPPER(glGetTexParameteriv, (PulseDevice device, GLenum target, GLenum pname, GLint *params), (target, pname, params), PFNGLGETTEXPARAMETERIVPROC) PULSE_OPENGL_WRAPPER(glGetUniformfv, (PulseDevice device, GLuint program, GLint location, GLfloat *params), (program, location, params), PFNGLGETUNIFORMFVPROC) PULSE_OPENGL_WRAPPER(glGetUniformiv, (PulseDevice device, GLuint program, GLint location, GLint *params), (program, location, params), PFNGLGETUNIFORMIVPROC) PULSE_OPENGL_WRAPPER_RET(GLint, glGetUniformLocation, (PulseDevice device, GLuint program, const GLchar *name), (program, name), PFNGLGETUNIFORMLOCATIONPROC) PULSE_OPENGL_WRAPPER_RET(GLboolean, glIsEnabled, (PulseDevice device, GLenum cap), (cap), PFNGLISENABLEDPROC) PULSE_OPENGL_WRAPPER(glLinkProgram, (PulseDevice device, GLuint program), (program), PFNGLLINKPROGRAMPROC) PULSE_OPENGL_WRAPPER(glPixelStorei, (PulseDevice device, GLenum pname, GLint param), (pname, param), PFNGLPIXELSTOREIPROC) PULSE_OPENGL_WRAPPER(glPolygonOffset, (PulseDevice device, GLfloat factor, GLfloat units), (factor, units), PFNGLPOLYGONOFFSETPROC) PULSE_OPENGL_WRAPPER(glReadPixels, (PulseDevice device, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels), (x, y, width, height, format, type, pixels), PFNGLREADPIXELSPROC) PULSE_OPENGL_WRAPPER(glRenderbufferStorage, (PulseDevice device, GLenum target, GLenum internalformat, GLsizei width, GLsizei height), (target, internalformat, width, height), PFNGLRENDERBUFFERSTORAGEPROC) PULSE_OPENGL_WRAPPER(glShaderBinary, (PulseDevice device, GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length), (count, shaders, binaryformat, binary, length), PFNGLSHADERBINARYPROC) PULSE_OPENGL_WRAPPER(glShaderSource, (PulseDevice device, GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length), (shader, count, string, length), PFNGLSHADERSOURCEPROC) PULSE_OPENGL_WRAPPER(glTexImage2D, (PulseDevice device, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels), (target, level, internalformat, width, height, border, format, type, pixels), PFNGLTEXIMAGE2DPROC) PULSE_OPENGL_WRAPPER(glTexParameterf, (PulseDevice device, GLenum target, GLenum pname, GLfloat param), (target, pname, param), PFNGLTEXPARAMETERFPROC) PULSE_OPENGL_WRAPPER(glTexParameterfv, (PulseDevice device, GLenum target, GLenum pname, const GLfloat *params), (target, pname, params), PFNGLTEXPARAMETERFVPROC) PULSE_OPENGL_WRAPPER(glTexParameteri, (PulseDevice device, GLenum target, GLenum pname, GLint param), (target, pname, param), PFNGLTEXPARAMETERIPROC) PULSE_OPENGL_WRAPPER(glTexParameteriv, (PulseDevice device, GLenum target, GLenum pname, const GLint *params), (target, pname, params), PFNGLTEXPARAMETERIVPROC) PULSE_OPENGL_WRAPPER(glTexSubImage2D, (PulseDevice device, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels), (target, level, xoffset, yoffset, width, height, format, type, pixels), PFNGLTEXSUBIMAGE2DPROC) PULSE_OPENGL_WRAPPER(glUniform1f, (PulseDevice device, GLint location, GLfloat v0), (location, v0), PFNGLUNIFORM1FPROC) PULSE_OPENGL_WRAPPER(glUniform1fv, (PulseDevice device, GLint location, GLsizei count, const GLfloat *value), (location, count, value), PFNGLUNIFORM1FVPROC) PULSE_OPENGL_WRAPPER(glUniform1i, (PulseDevice device, GLint location, GLint v0), (location, v0), PFNGLUNIFORM1IPROC) PULSE_OPENGL_WRAPPER(glUniform1iv, (PulseDevice device, GLint location, GLsizei count, const GLint *value), (location, count, value), PFNGLUNIFORM1IVPROC) PULSE_OPENGL_WRAPPER(glUniform2fv, (PulseDevice device, GLint location, GLsizei count, const GLfloat *value), (location, count, value), PFNGLUNIFORM2FVPROC) PULSE_OPENGL_WRAPPER(glUniform2iv, (PulseDevice device, GLint location, GLsizei count, const GLint *value), (location, count, value), PFNGLUNIFORM2IVPROC) PULSE_OPENGL_WRAPPER(glUniform3fv, (PulseDevice device, GLint location, GLsizei count, const GLfloat *value), (location, count, value), PFNGLUNIFORM3FVPROC) PULSE_OPENGL_WRAPPER(glUniform3iv, (PulseDevice device, GLint location, GLsizei count, const GLint *value), (location, count, value), PFNGLUNIFORM3IVPROC) PULSE_OPENGL_WRAPPER(glUniform4fv, (PulseDevice device, GLint location, GLsizei count, const GLfloat *value), (location, count, value), PFNGLUNIFORM4FVPROC) PULSE_OPENGL_WRAPPER(glUniform4iv, (PulseDevice device, GLint location, GLsizei count, const GLint *value), (location, count, value), PFNGLUNIFORM4IVPROC) PULSE_OPENGL_WRAPPER(glUniformMatrix4fv, (PulseDevice device, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value), (location, count, transpose, value), PFNGLUNIFORMMATRIX4FVPROC) PULSE_OPENGL_WRAPPER(glUseProgram, (PulseDevice device, GLuint program), (program), PFNGLUSEPROGRAMPROC) PULSE_OPENGL_WRAPPER(glValidateProgram, (PulseDevice device, GLuint program), (program), PFNGLVALIDATEPROGRAMPROC) PULSE_OPENGL_WRAPPER(glTexImage3D, (PulseDevice device, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels), (target, level, internalformat, width, height, depth, border, format, type, pixels), PFNGLTEXIMAGE3DPROC) PULSE_OPENGL_WRAPPER(glTexSubImage3D, (PulseDevice device, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), PFNGLTEXSUBIMAGE3DPROC) PULSE_OPENGL_WRAPPER(glCompressedTexSubImage3D, (PulseDevice device, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data), PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) PULSE_OPENGL_WRAPPER(glGenQueries, (PulseDevice device, GLsizei n, GLuint *ids), (n, ids), PFNGLGENQUERIESPROC) PULSE_OPENGL_WRAPPER(glDeleteQueries, (PulseDevice device, GLsizei n, const GLuint *ids), (n, ids), PFNGLDELETEQUERIESPROC) PULSE_OPENGL_WRAPPER(glBeginQuery, (PulseDevice device, GLenum target, GLuint id), (target, id), PFNGLBEGINQUERYPROC) PULSE_OPENGL_WRAPPER(glEndQuery, (PulseDevice device, GLenum target), (target), PFNGLENDQUERYPROC) PULSE_OPENGL_WRAPPER(glGetQueryiv, (PulseDevice device, GLenum target, GLenum pname, GLint *params), (target, pname, params), PFNGLGETQUERYIVPROC) PULSE_OPENGL_WRAPPER(glGetQueryObjectuiv, (PulseDevice device, GLuint id, GLenum pname, GLuint *params), (id, pname, params), PFNGLGETQUERYOBJECTUIVPROC) PULSE_OPENGL_WRAPPER_RET(GLboolean, glUnmapBuffer, (PulseDevice device, GLenum target), (target), PFNGLUNMAPBUFFERPROC) PULSE_OPENGL_WRAPPER_RET(void *, glMapBufferRange, (PulseDevice device, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access), (target, offset, length, access), PFNGLMAPBUFFERRANGEPROC) PULSE_OPENGL_WRAPPER(glGetIntegeri_v, (PulseDevice device, GLenum target, GLuint index, GLint *data), (target, index, data), PFNGLGETINTEGERI_VPROC) PULSE_OPENGL_WRAPPER(glBindBufferRange, (PulseDevice device, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size), (target, index, buffer, offset, size), PFNGLBINDBUFFERRANGEPROC) PULSE_OPENGL_WRAPPER(glClearBufferuiv, (PulseDevice device, GLenum buffer, GLint drawbuffer, const GLuint *value), (buffer, drawbuffer, value), PFNGLCLEARBUFFERUIVPROC) PULSE_OPENGL_WRAPPER(glClearBufferfv, (PulseDevice device, GLenum buffer, GLint drawbuffer, const GLfloat *value), (buffer, drawbuffer, value), PFNGLCLEARBUFFERFVPROC) PULSE_OPENGL_WRAPPER(glClearBufferfi, (PulseDevice device, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil), (buffer, drawbuffer, depth, stencil), PFNGLCLEARBUFFERFIPROC) PULSE_OPENGL_WRAPPER_RET(const GLubyte *, glGetStringi, (PulseDevice device, GLenum name, GLuint index), (name, index), PFNGLGETSTRINGIPROC) PULSE_OPENGL_WRAPPER(glCopyBufferSubData, (PulseDevice device, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size), (readTarget, writeTarget, readOffset, writeOffset, size), PFNGLCOPYBUFFERSUBDATAPROC) PULSE_OPENGL_WRAPPER(glGetActiveUniformsiv, (PulseDevice device, GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params), (program, uniformCount, uniformIndices, pname, params), PFNGLGETACTIVEUNIFORMSIVPROC) PULSE_OPENGL_WRAPPER_RET(GLuint, glGetUniformBlockIndex, (PulseDevice device, GLuint program, const GLchar *uniformBlockName), (program, uniformBlockName), PFNGLGETUNIFORMBLOCKINDEXPROC) PULSE_OPENGL_WRAPPER(glGetActiveUniformBlockiv, (PulseDevice device, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params), (program, uniformBlockIndex, pname, params), PFNGLGETACTIVEUNIFORMBLOCKIVPROC) PULSE_OPENGL_WRAPPER(glGetActiveUniformBlockName, (PulseDevice device, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName), (program, uniformBlockIndex, bufSize, length, uniformBlockName), PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) PULSE_OPENGL_WRAPPER(glUniformBlockBinding, (PulseDevice device, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding), (program, uniformBlockIndex, uniformBlockBinding), PFNGLUNIFORMBLOCKBINDINGPROC) PULSE_OPENGL_WRAPPER(glGetInteger64v, (PulseDevice device, GLenum pname, GLint64 *data), (pname, data), PFNGLGETINTEGER64VPROC) PULSE_OPENGL_WRAPPER(glGetInteger64i_v, (PulseDevice device, GLenum target, GLuint index, GLint64 *data), (target, index, data), PFNGLGETINTEGER64I_VPROC) PULSE_OPENGL_WRAPPER(glGenSamplers, (PulseDevice device, GLsizei count, GLuint *samplers), (count, samplers), PFNGLGENSAMPLERSPROC) PULSE_OPENGL_WRAPPER(glDeleteSamplers, (PulseDevice device, GLsizei count, const GLuint *samplers), (count, samplers), PFNGLDELETESAMPLERSPROC) PULSE_OPENGL_WRAPPER(glBindSampler, (PulseDevice device, GLuint unit, GLuint sampler), (unit, sampler), PFNGLBINDSAMPLERPROC) PULSE_OPENGL_WRAPPER(glSamplerParameteri, (PulseDevice device, GLuint sampler, GLenum pname, GLint param), (sampler, pname, param), PFNGLSAMPLERPARAMETERIPROC) PULSE_OPENGL_WRAPPER(glSamplerParameteriv, (PulseDevice device, GLuint sampler, GLenum pname, const GLint *param), (sampler, pname, param), PFNGLSAMPLERPARAMETERIVPROC) PULSE_OPENGL_WRAPPER(glSamplerParameterf, (PulseDevice device, GLuint sampler, GLenum pname, GLfloat param), (sampler, pname, param), PFNGLSAMPLERPARAMETERFPROC) PULSE_OPENGL_WRAPPER(glSamplerParameterfv, (PulseDevice device, GLuint sampler, GLenum pname, const GLfloat *param), (sampler, pname, param), PFNGLSAMPLERPARAMETERFVPROC) PULSE_OPENGL_WRAPPER(glGetProgramBinary, (PulseDevice device, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary), (program, bufSize, length, binaryFormat, binary), PFNGLGETPROGRAMBINARYPROC) PULSE_OPENGL_WRAPPER(glProgramBinary, (PulseDevice device, GLuint program, GLenum binaryFormat, const void *binary, GLsizei length), (program, binaryFormat, binary, length), PFNGLPROGRAMBINARYPROC) PULSE_OPENGL_WRAPPER(glProgramParameteri, (PulseDevice device, GLuint program, GLenum pname, GLint value), (program, pname, value), PFNGLPROGRAMPARAMETERIPROC) PULSE_OPENGL_WRAPPER(glTexStorage2D, (PulseDevice device, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height), (target, levels, internalformat, width, height), PFNGLTEXSTORAGE2DPROC) PULSE_OPENGL_WRAPPER(glTexStorage3D, (PulseDevice device, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth), (target, levels, internalformat, width, height, depth), PFNGLTEXSTORAGE3DPROC) PULSE_OPENGL_WRAPPER(glDispatchCompute, (PulseDevice device, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z), (num_groups_x, num_groups_y, num_groups_z), PFNGLDISPATCHCOMPUTEPROC) PULSE_OPENGL_WRAPPER(glGetProgramInterfaceiv, (PulseDevice device, GLuint program, GLenum programInterface, GLenum pname, GLint *params), (program, programInterface, pname, params), PFNGLGETPROGRAMINTERFACEIVPROC) PULSE_OPENGL_WRAPPER_RET(GLuint, glGetProgramResourceIndex, (PulseDevice device, GLuint program, GLenum programInterface, const GLchar *name), (program, programInterface, name), PFNGLGETPROGRAMRESOURCEINDEXPROC) PULSE_OPENGL_WRAPPER(glGetProgramResourceName, (PulseDevice device, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name), (program, programInterface, index, bufSize, length, name), PFNGLGETPROGRAMRESOURCENAMEPROC) PULSE_OPENGL_WRAPPER(glGetProgramResourceiv, (PulseDevice device, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params), (program, programInterface, index, propCount, props, bufSize, length, params), PFNGLGETPROGRAMRESOURCEIVPROC) PULSE_OPENGL_WRAPPER_RET(GLint, glGetProgramResourceLocation, (PulseDevice device, GLuint program, GLenum programInterface, const GLchar *name), (program, programInterface, name), PFNGLGETPROGRAMRESOURCELOCATIONPROC) PULSE_OPENGL_WRAPPER(glBindImageTexture, (PulseDevice device, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format), (unit, texture, level, layered, layer, access, format), PFNGLBINDIMAGETEXTUREPROC) PULSE_OPENGL_WRAPPER(glGetBooleani_v, (PulseDevice device, GLenum target, GLuint index, GLboolean *data), (target, index, data), PFNGLGETBOOLEANI_VPROC) PULSE_OPENGL_WRAPPER(glMemoryBarrier, (PulseDevice device, GLbitfield barriers), (barriers), PFNGLMEMORYBARRIERPROC) PULSE_OPENGL_WRAPPER(glMemoryBarrierByRegion, (PulseDevice device, GLbitfield barriers), (barriers), PFNGLMEMORYBARRIERBYREGIONPROC)