// Generated Code - DO NOT EDIT !! // generated by 'emugen' #include <stdio.h> #include <stdlib.h> #include "gl2_client_context.h" extern "C" { void glActiveTexture(GLenum texture); void glAttachShader(GLuint program, GLuint shader); void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name); void glBindBuffer(GLenum target, GLuint buffer); void glBindFramebuffer(GLenum target, GLuint framebuffer); void glBindRenderbuffer(GLenum target, GLuint renderbuffer); void glBindTexture(GLenum target, GLuint texture); void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); void glBlendEquation(GLenum mode); void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); void glBlendFunc(GLenum sfactor, GLenum dfactor); void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); GLenum glCheckFramebufferStatus(GLenum target); void glClear(GLbitfield mask); void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); void glClearDepthf(GLclampf depth); void glClearStencil(GLint s); void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); void glCompileShader(GLuint shader); void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLuint glCreateProgram(); GLuint glCreateShader(GLenum type); void glCullFace(GLenum mode); void glDeleteBuffers(GLsizei n, const GLuint* buffers); void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers); void glDeleteProgram(GLuint program); void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers); void glDeleteShader(GLuint shader); void glDeleteTextures(GLsizei n, const GLuint* textures); void glDepthFunc(GLenum func); void glDepthMask(GLboolean flag); void glDepthRangef(GLclampf zNear, GLclampf zFar); void glDetachShader(GLuint program, GLuint shader); void glDisable(GLenum cap); void glDisableVertexAttribArray(GLuint index); void glDrawArrays(GLenum mode, GLint first, GLsizei count); void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); void glEnable(GLenum cap); void glEnableVertexAttribArray(GLuint index); void glFinish(); void glFlush(); void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void glFrontFace(GLenum mode); void glGenBuffers(GLsizei n, GLuint* buffers); void glGenerateMipmap(GLenum target); void glGenFramebuffers(GLsizei n, GLuint* framebuffers); void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers); void glGenTextures(GLsizei n, GLuint* textures); void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); int glGetAttribLocation(GLuint program, const GLchar* name); void glGetBooleanv(GLenum pname, GLboolean* params); void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params); GLenum glGetError(); void glGetFloatv(GLenum pname, GLfloat* params); void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params); void glGetIntegerv(GLenum pname, GLint* params); void glGetProgramiv(GLuint program, GLenum pname, GLint* params); void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params); void glGetShaderiv(GLuint shader, GLenum pname, GLint* params); void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); const GLubyte* glGetString(GLenum name); void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params); void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params); void glGetUniformfv(GLuint program, GLint location, GLfloat* params); void glGetUniformiv(GLuint program, GLint location, GLint* params); int glGetUniformLocation(GLuint program, const GLchar* name); void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params); void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params); void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer); void glHint(GLenum target, GLenum mode); GLboolean glIsBuffer(GLuint buffer); GLboolean glIsEnabled(GLenum cap); GLboolean glIsFramebuffer(GLuint framebuffer); GLboolean glIsProgram(GLuint program); GLboolean glIsRenderbuffer(GLuint renderbuffer); GLboolean glIsShader(GLuint shader); GLboolean glIsTexture(GLuint texture); void glLineWidth(GLfloat width); void glLinkProgram(GLuint program); void glPixelStorei(GLenum pname, GLint param); void glPolygonOffset(GLfloat factor, GLfloat units); void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); void glReleaseShaderCompiler(); void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); void glSampleCoverage(GLclampf value, GLboolean invert); void glScissor(GLint x, GLint y, GLsizei width, GLsizei height); void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); void glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); void glStencilFunc(GLenum func, GLint ref, GLuint mask); void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); void glStencilMask(GLuint mask); void glStencilMaskSeparate(GLenum face, GLuint mask); void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); void glTexParameterf(GLenum target, GLenum pname, GLfloat param); void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params); void glTexParameteri(GLenum target, GLenum pname, GLint param); void glTexParameteriv(GLenum target, GLenum pname, const GLint* params); void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); void glUniform1f(GLint location, GLfloat x); void glUniform1fv(GLint location, GLsizei count, const GLfloat* v); void glUniform1i(GLint location, GLint x); void glUniform1iv(GLint location, GLsizei count, const GLint* v); void glUniform2f(GLint location, GLfloat x, GLfloat y); void glUniform2fv(GLint location, GLsizei count, const GLfloat* v); void glUniform2i(GLint location, GLint x, GLint y); void glUniform2iv(GLint location, GLsizei count, const GLint* v); void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z); void glUniform3fv(GLint location, GLsizei count, const GLfloat* v); void glUniform3i(GLint location, GLint x, GLint y, GLint z); void glUniform3iv(GLint location, GLsizei count, const GLint* v); void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void glUniform4fv(GLint location, GLsizei count, const GLfloat* v); void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w); void glUniform4iv(GLint location, GLsizei count, const GLint* v); void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUseProgram(GLuint program); void glValidateProgram(GLuint program); void glVertexAttrib1f(GLuint indx, GLfloat x); void glVertexAttrib1fv(GLuint indx, const GLfloat* values); void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y); void glVertexAttrib2fv(GLuint indx, const GLfloat* values); void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z); void glVertexAttrib3fv(GLuint indx, const GLfloat* values); void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void glVertexAttrib4fv(GLuint indx, const GLfloat* values); void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image); void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image); void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary); void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length); void* glMapBufferOES(GLenum target, GLenum access); GLboolean glUnmapBufferOES(GLenum target); void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); void glBindVertexArrayOES(GLuint array); void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays); void glGenVertexArraysOES(GLsizei n, GLuint* arrays); GLboolean glIsVertexArrayOES(GLuint array); void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments); void glMultiDrawArraysEXT(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount); void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const* indices, GLsizei primcount); void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups); void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters); void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString); void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString); void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data); void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors); void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors); void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList); void glBeginPerfMonitorAMD(GLuint monitor); void glEndPerfMonitorAMD(GLuint monitor); void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten); void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); void glDeleteFencesNV(GLsizei n, const GLuint* fences); void glGenFencesNV(GLsizei n, GLuint* fences); GLboolean glIsFenceNV(GLuint fence); GLboolean glTestFenceNV(GLuint fence); void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params); void glFinishFenceNV(GLuint fence); void glSetFenceNV(GLuint fence, GLenum condition); void glCoverageMaskNV(GLboolean mask); void glCoverageOperationNV(GLenum operation); void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls); void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString); void glEnableDriverControlQCOM(GLuint driverControl); void glDisableDriverControlQCOM(GLuint driverControl); void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures); void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers); void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers); void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers); void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params); void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param); void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels); void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params); void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders); void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms); GLboolean glExtIsProgramBinaryQCOM(GLuint program); void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length); void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); void glEndTilingQCOM(GLbitfield preserveMask); void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen); void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset); void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset); void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen); void glGetCompressedTextureFormats(int count, GLint* formats); void glShaderString(GLuint shader, const GLchar* string, GLsizei len); int glFinishRoundTrip(); void glGenVertexArrays(GLsizei n, GLuint* arrays); void glBindVertexArray(GLuint array); void glDeleteVertexArrays(GLsizei n, const GLuint* arrays); GLboolean glIsVertexArray(GLuint array); void* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GLboolean glUnmapBuffer(GLenum target); void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length); void glMapBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* mapped); void glUnmapBufferAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer, GLboolean* out_res); void glFlushMappedBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer); void glReadPixelsOffsetAEMU(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset); void glCompressedTexImage2DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLuint offset); void glCompressedTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLuint offset); void glTexImage2DOffsetAEMU(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLuint offset); void glTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset); void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); void glBindBufferBase(GLenum target, GLuint index, GLuint buffer); void glCopyBufferSubData(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); void glClearBufferiv(GLenum buffer, GLint drawBuffer, const GLint* value); void glClearBufferuiv(GLenum buffer, GLint drawBuffer, const GLuint* value); void glClearBufferfv(GLenum buffer, GLint drawBuffer, const GLfloat* value); void glClearBufferfi(GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil); void glGetBufferParameteri64v(GLenum target, GLenum value, GLint64* data); void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params); void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); GLuint glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName); void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices); void glGetUniformIndicesAEMU(GLuint program, GLsizei uniformCount, const GLchar* packedUniformNames, GLsizei packedLen, GLuint* uniformIndices); void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); void glUniform1ui(GLint location, GLuint v0); void glUniform2ui(GLint location, GLuint v0, GLuint v1); void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2); void glUniform4ui(GLint location, GLint v0, GLuint v1, GLuint v2, GLuint v3); void glUniform1uiv(GLint location, GLsizei count, const GLuint* value); void glUniform2uiv(GLint location, GLsizei count, const GLuint* value); void glUniform3uiv(GLint location, GLsizei count, const GLuint* value); void glUniform4uiv(GLint location, GLsizei count, const GLuint* value); void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glGetUniformuiv(GLuint program, GLint location, GLuint* params); void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); void glVertexAttribI4i(GLuint index, GLint v0, GLint v1, GLint v2, GLint v3); void glVertexAttribI4ui(GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3); void glVertexAttribI4iv(GLuint index, const GLint* v); void glVertexAttribI4uiv(GLuint index, const GLuint* v); void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer); void glVertexAttribIPointerOffsetAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, GLuint offset); void glVertexAttribIPointerDataAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen); void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params); void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params); void glVertexAttribDivisor(GLuint index, GLuint divisor); void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount); void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); void glDrawElementsInstancedDataAEMU(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLsizei datalen); void glDrawElementsInstancedOffsetAEMU(GLenum mode, GLsizei count, GLenum type, GLuint offset, GLsizei primcount); void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices); void glDrawRangeElementsDataAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices, GLsizei datalen); void glDrawRangeElementsOffsetAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLuint offset); GLsync glFenceSync(GLenum condition, GLbitfield flags); GLenum glClientWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout); void glWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout); void glDeleteSync(GLsync to_delete); GLboolean glIsSync(GLsync sync); void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values); uint64_t glFenceSyncAEMU(GLenum condition, GLbitfield flags); GLenum glClientWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout); void glWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout); void glDeleteSyncAEMU(uint64_t to_delete); GLboolean glIsSyncAEMU(uint64_t sync); void glGetSyncivAEMU(uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values); void glDrawBuffers(GLsizei n, const GLenum* bufs); void glReadBuffer(GLenum src); void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments); void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); void glBeginTransformFeedback(GLenum primitiveMode); void glEndTransformFeedback(); void glGenTransformFeedbacks(GLsizei n, GLuint* ids); void glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids); void glBindTransformFeedback(GLenum target, GLuint id); void glPauseTransformFeedback(); void glResumeTransformFeedback(); GLboolean glIsTransformFeedback(GLuint id); void glTransformFeedbackVaryings(GLuint program, GLsizei count, const char** varyings, GLenum bufferMode); void glTransformFeedbackVaryingsAEMU(GLuint program, GLsizei count, const char* packedVaryings, GLuint packedVaryingsLen, GLenum bufferMode); void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, char* name); void glGenSamplers(GLsizei n, GLuint* samplers); void glDeleteSamplers(GLsizei n, const GLuint* samplers); void glBindSampler(GLuint unit, GLuint sampler); void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param); void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param); void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* params); void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* params); void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params); void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params); GLboolean glIsSampler(GLuint sampler); void glGenQueries(GLsizei n, GLuint* queries); void glDeleteQueries(GLsizei n, const GLuint* queries); void glBeginQuery(GLenum target, GLuint query); void glEndQuery(GLenum target); void glGetQueryiv(GLenum target, GLenum pname, GLint* params); void glGetQueryObjectuiv(GLuint query, GLenum pname, GLuint* params); GLboolean glIsQuery(GLuint query); void glProgramParameteri(GLuint program, GLenum pname, GLint value); void glProgramBinary(GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary); GLint glGetFragDataLocation(GLuint program, const char* name); void glGetInteger64v(GLenum pname, GLint64* data); void glGetIntegeri_v(GLenum target, GLuint index, GLint* data); void glGetInteger64i_v(GLenum target, GLuint index, GLint64* data); void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* data); void glTexImage3DOffsetAEMU(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLuint offset); void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data); void glTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLuint offset); void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); void glCompressedTexImage3DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLuint offset); void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); void glCompressedTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLuint data); void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); const GLubyte* glGetStringi(GLenum name, GLuint index); void glGetBooleani_v(GLenum target, GLuint index, GLboolean* data); void glMemoryBarrier(GLbitfield barriers); void glMemoryBarrierByRegion(GLbitfield barriers); void glGenProgramPipelines(GLsizei n, GLuint* pipelines); void glDeleteProgramPipelines(GLsizei n, const GLuint* pipelines); void glBindProgramPipeline(GLuint pipeline); void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint* params); void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog); void glValidateProgramPipeline(GLuint pipeline); GLboolean glIsProgramPipeline(GLuint pipeline); void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program); void glActiveShaderProgram(GLuint pipeline, GLuint program); GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const char** strings); GLuint glCreateShaderProgramvAEMU(GLenum type, GLsizei count, const char* packedStrings, GLuint packedLen); void glProgramUniform1f(GLuint program, GLint location, GLfloat v0); void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1); void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); void glProgramUniform1i(GLuint program, GLint location, GLint v0); void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1); void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); void glProgramUniform1ui(GLuint program, GLint location, GLuint v0); void glProgramUniform2ui(GLuint program, GLint location, GLint v0, GLuint v1); void glProgramUniform3ui(GLuint program, GLint location, GLint v0, GLint v1, GLuint v2); void glProgramUniform4ui(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLuint v3); void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat* value); void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat* value); void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat* value); void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat* value); void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint* value); void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint* value); void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint* value); void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint* value); void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint* value); void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint* value); void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint* value); void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint* value); void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint* params); void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params); GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const char* name); GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const char* name); void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, char* name); void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); void glDispatchComputeIndirect(GLintptr indirect); void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride); void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex); void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor); void glDrawArraysIndirect(GLenum mode, const void* indirect); void glDrawArraysIndirectDataAEMU(GLenum mode, const void* indirect, GLuint datalen); void glDrawArraysIndirectOffsetAEMU(GLenum mode, GLuint offset); void glDrawElementsIndirect(GLenum mode, GLenum type, const void* indirect); void glDrawElementsIndirectDataAEMU(GLenum mode, GLenum type, const void* indirect, GLuint datalen); void glDrawElementsIndirectOffsetAEMU(GLenum mode, GLenum type, GLuint offset); void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); void glSampleMaski(GLuint maskNumber, GLbitfield mask); void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat* val); void glFramebufferParameteri(GLenum target, GLenum pname, GLint param); void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint* params); void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat* params); void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params); }; #ifndef GET_CONTEXT static gl2_client_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL; void gl2_client_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; } #define GET_CONTEXT gl2_client_context_t * ctx = getCurrentContext() #endif void glActiveTexture(GLenum texture) { GET_CONTEXT; ctx->glActiveTexture(ctx, texture); } void glAttachShader(GLuint program, GLuint shader) { GET_CONTEXT; ctx->glAttachShader(ctx, program, shader); } void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name) { GET_CONTEXT; ctx->glBindAttribLocation(ctx, program, index, name); } void glBindBuffer(GLenum target, GLuint buffer) { GET_CONTEXT; ctx->glBindBuffer(ctx, target, buffer); } void glBindFramebuffer(GLenum target, GLuint framebuffer) { GET_CONTEXT; ctx->glBindFramebuffer(ctx, target, framebuffer); } void glBindRenderbuffer(GLenum target, GLuint renderbuffer) { GET_CONTEXT; ctx->glBindRenderbuffer(ctx, target, renderbuffer); } void glBindTexture(GLenum target, GLuint texture) { GET_CONTEXT; ctx->glBindTexture(ctx, target, texture); } void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { GET_CONTEXT; ctx->glBlendColor(ctx, red, green, blue, alpha); } void glBlendEquation(GLenum mode) { GET_CONTEXT; ctx->glBlendEquation(ctx, mode); } void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) { GET_CONTEXT; ctx->glBlendEquationSeparate(ctx, modeRGB, modeAlpha); } void glBlendFunc(GLenum sfactor, GLenum dfactor) { GET_CONTEXT; ctx->glBlendFunc(ctx, sfactor, dfactor); } void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { GET_CONTEXT; ctx->glBlendFuncSeparate(ctx, srcRGB, dstRGB, srcAlpha, dstAlpha); } void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) { GET_CONTEXT; ctx->glBufferData(ctx, target, size, data, usage); } void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) { GET_CONTEXT; ctx->glBufferSubData(ctx, target, offset, size, data); } GLenum glCheckFramebufferStatus(GLenum target) { GET_CONTEXT; return ctx->glCheckFramebufferStatus(ctx, target); } void glClear(GLbitfield mask) { GET_CONTEXT; ctx->glClear(ctx, mask); } void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { GET_CONTEXT; ctx->glClearColor(ctx, red, green, blue, alpha); } void glClearDepthf(GLclampf depth) { GET_CONTEXT; ctx->glClearDepthf(ctx, depth); } void glClearStencil(GLint s) { GET_CONTEXT; ctx->glClearStencil(ctx, s); } void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { GET_CONTEXT; ctx->glColorMask(ctx, red, green, blue, alpha); } void glCompileShader(GLuint shader) { GET_CONTEXT; ctx->glCompileShader(ctx, shader); } void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) { GET_CONTEXT; if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glCompressedTexImage2D(ctx, target, level, internalformat, width, height, border, imageSize, data); } void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) { GET_CONTEXT; if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glCompressedTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, data); } void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { GET_CONTEXT; ctx->glCopyTexImage2D(ctx, target, level, internalformat, x, y, width, height, border); } void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glCopyTexSubImage2D(ctx, target, level, xoffset, yoffset, x, y, width, height); } GLuint glCreateProgram() { GET_CONTEXT; return ctx->glCreateProgram(ctx); } GLuint glCreateShader(GLenum type) { GET_CONTEXT; return ctx->glCreateShader(ctx, type); } void glCullFace(GLenum mode) { GET_CONTEXT; ctx->glCullFace(ctx, mode); } void glDeleteBuffers(GLsizei n, const GLuint* buffers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteBuffers(ctx, n, buffers); } void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteFramebuffers(ctx, n, framebuffers); } void glDeleteProgram(GLuint program) { GET_CONTEXT; ctx->glDeleteProgram(ctx, program); } void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteRenderbuffers(ctx, n, renderbuffers); } void glDeleteShader(GLuint shader) { GET_CONTEXT; ctx->glDeleteShader(ctx, shader); } void glDeleteTextures(GLsizei n, const GLuint* textures) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteTextures(ctx, n, textures); } void glDepthFunc(GLenum func) { GET_CONTEXT; ctx->glDepthFunc(ctx, func); } void glDepthMask(GLboolean flag) { GET_CONTEXT; ctx->glDepthMask(ctx, flag); } void glDepthRangef(GLclampf zNear, GLclampf zFar) { GET_CONTEXT; ctx->glDepthRangef(ctx, zNear, zFar); } void glDetachShader(GLuint program, GLuint shader) { GET_CONTEXT; ctx->glDetachShader(ctx, program, shader); } void glDisable(GLenum cap) { GET_CONTEXT; ctx->glDisable(ctx, cap); } void glDisableVertexAttribArray(GLuint index) { GET_CONTEXT; ctx->glDisableVertexAttribArray(ctx, index); } void glDrawArrays(GLenum mode, GLint first, GLsizei count) { GET_CONTEXT; ctx->glDrawArrays(ctx, mode, first, count); } void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) { GET_CONTEXT; ctx->glDrawElements(ctx, mode, count, type, indices); } void glEnable(GLenum cap) { GET_CONTEXT; ctx->glEnable(ctx, cap); } void glEnableVertexAttribArray(GLuint index) { GET_CONTEXT; ctx->glEnableVertexAttribArray(ctx, index); } void glFinish() { GET_CONTEXT; ctx->glFinish(ctx); } void glFlush() { GET_CONTEXT; ctx->glFlush(ctx); } void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { GET_CONTEXT; ctx->glFramebufferRenderbuffer(ctx, target, attachment, renderbuffertarget, renderbuffer); } void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { GET_CONTEXT; ctx->glFramebufferTexture2D(ctx, target, attachment, textarget, texture, level); } void glFrontFace(GLenum mode) { GET_CONTEXT; ctx->glFrontFace(ctx, mode); } void glGenBuffers(GLsizei n, GLuint* buffers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenBuffers(ctx, n, buffers); } void glGenerateMipmap(GLenum target) { GET_CONTEXT; ctx->glGenerateMipmap(ctx, target); } void glGenFramebuffers(GLsizei n, GLuint* framebuffers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenFramebuffers(ctx, n, framebuffers); } void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenRenderbuffers(ctx, n, renderbuffers); } void glGenTextures(GLsizei n, GLuint* textures) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenTextures(ctx, n, textures); } void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { GET_CONTEXT; if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetActiveAttrib(ctx, program, index, bufsize, length, size, type, name); } void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { GET_CONTEXT; if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetActiveUniform(ctx, program, index, bufsize, length, size, type, name); } void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) { GET_CONTEXT; ctx->glGetAttachedShaders(ctx, program, maxcount, count, shaders); } int glGetAttribLocation(GLuint program, const GLchar* name) { GET_CONTEXT; return ctx->glGetAttribLocation(ctx, program, name); } void glGetBooleanv(GLenum pname, GLboolean* params) { GET_CONTEXT; ctx->glGetBooleanv(ctx, pname, params); } void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetBufferParameteriv(ctx, target, pname, params); } GLenum glGetError() { GET_CONTEXT; return ctx->glGetError(ctx); } void glGetFloatv(GLenum pname, GLfloat* params) { GET_CONTEXT; ctx->glGetFloatv(ctx, pname, params); } void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetFramebufferAttachmentParameteriv(ctx, target, attachment, pname, params); } void glGetIntegerv(GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetIntegerv(ctx, pname, params); } void glGetProgramiv(GLuint program, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetProgramiv(ctx, program, pname, params); } void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog) { GET_CONTEXT; if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetProgramInfoLog(ctx, program, bufsize, length, infolog); } void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetRenderbufferParameteriv(ctx, target, pname, params); } void glGetShaderiv(GLuint shader, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetShaderiv(ctx, shader, pname, params); } void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog) { GET_CONTEXT; if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetShaderInfoLog(ctx, shader, bufsize, length, infolog); } void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { GET_CONTEXT; ctx->glGetShaderPrecisionFormat(ctx, shadertype, precisiontype, range, precision); } void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source) { GET_CONTEXT; if(bufsize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetShaderSource(ctx, shader, bufsize, length, source); } const GLubyte* glGetString(GLenum name) { GET_CONTEXT; return ctx->glGetString(ctx, name); } void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) { GET_CONTEXT; ctx->glGetTexParameterfv(ctx, target, pname, params); } void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetTexParameteriv(ctx, target, pname, params); } void glGetUniformfv(GLuint program, GLint location, GLfloat* params) { GET_CONTEXT; ctx->glGetUniformfv(ctx, program, location, params); } void glGetUniformiv(GLuint program, GLint location, GLint* params) { GET_CONTEXT; ctx->glGetUniformiv(ctx, program, location, params); } int glGetUniformLocation(GLuint program, const GLchar* name) { GET_CONTEXT; return ctx->glGetUniformLocation(ctx, program, name); } void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) { GET_CONTEXT; ctx->glGetVertexAttribfv(ctx, index, pname, params); } void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetVertexAttribiv(ctx, index, pname, params); } void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer) { GET_CONTEXT; ctx->glGetVertexAttribPointerv(ctx, index, pname, pointer); } void glHint(GLenum target, GLenum mode) { GET_CONTEXT; ctx->glHint(ctx, target, mode); } GLboolean glIsBuffer(GLuint buffer) { GET_CONTEXT; return ctx->glIsBuffer(ctx, buffer); } GLboolean glIsEnabled(GLenum cap) { GET_CONTEXT; return ctx->glIsEnabled(ctx, cap); } GLboolean glIsFramebuffer(GLuint framebuffer) { GET_CONTEXT; return ctx->glIsFramebuffer(ctx, framebuffer); } GLboolean glIsProgram(GLuint program) { GET_CONTEXT; return ctx->glIsProgram(ctx, program); } GLboolean glIsRenderbuffer(GLuint renderbuffer) { GET_CONTEXT; return ctx->glIsRenderbuffer(ctx, renderbuffer); } GLboolean glIsShader(GLuint shader) { GET_CONTEXT; return ctx->glIsShader(ctx, shader); } GLboolean glIsTexture(GLuint texture) { GET_CONTEXT; return ctx->glIsTexture(ctx, texture); } void glLineWidth(GLfloat width) { GET_CONTEXT; ctx->glLineWidth(ctx, width); } void glLinkProgram(GLuint program) { GET_CONTEXT; ctx->glLinkProgram(ctx, program); } void glPixelStorei(GLenum pname, GLint param) { GET_CONTEXT; ctx->glPixelStorei(ctx, pname, param); } void glPolygonOffset(GLfloat factor, GLfloat units) { GET_CONTEXT; ctx->glPolygonOffset(ctx, factor, units); } void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) { GET_CONTEXT; ctx->glReadPixels(ctx, x, y, width, height, format, type, pixels); } void glReleaseShaderCompiler() { GET_CONTEXT; ctx->glReleaseShaderCompiler(ctx); } void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glRenderbufferStorage(ctx, target, internalformat, width, height); } void glSampleCoverage(GLclampf value, GLboolean invert) { GET_CONTEXT; ctx->glSampleCoverage(ctx, value, invert); } void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glScissor(ctx, x, y, width, height); } void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length) { GET_CONTEXT; ctx->glShaderBinary(ctx, n, shaders, binaryformat, binary, length); } void glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length) { GET_CONTEXT; ctx->glShaderSource(ctx, shader, count, string, length); } void glStencilFunc(GLenum func, GLint ref, GLuint mask) { GET_CONTEXT; ctx->glStencilFunc(ctx, func, ref, mask); } void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) { GET_CONTEXT; ctx->glStencilFuncSeparate(ctx, face, func, ref, mask); } void glStencilMask(GLuint mask) { GET_CONTEXT; ctx->glStencilMask(ctx, mask); } void glStencilMaskSeparate(GLenum face, GLuint mask) { GET_CONTEXT; ctx->glStencilMaskSeparate(ctx, face, mask); } void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { GET_CONTEXT; ctx->glStencilOp(ctx, fail, zfail, zpass); } void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { GET_CONTEXT; ctx->glStencilOpSeparate(ctx, face, fail, zfail, zpass); } void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels) { GET_CONTEXT; ctx->glTexImage2D(ctx, target, level, internalformat, width, height, border, format, type, pixels); } void glTexParameterf(GLenum target, GLenum pname, GLfloat param) { GET_CONTEXT; ctx->glTexParameterf(ctx, target, pname, param); } void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) { GET_CONTEXT; ctx->glTexParameterfv(ctx, target, pname, params); } void glTexParameteri(GLenum target, GLenum pname, GLint param) { GET_CONTEXT; ctx->glTexParameteri(ctx, target, pname, param); } void glTexParameteriv(GLenum target, GLenum pname, const GLint* params) { GET_CONTEXT; ctx->glTexParameteriv(ctx, target, pname, params); } void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) { GET_CONTEXT; ctx->glTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, type, pixels); } void glUniform1f(GLint location, GLfloat x) { GET_CONTEXT; ctx->glUniform1f(ctx, location, x); } void glUniform1fv(GLint location, GLsizei count, const GLfloat* v) { GET_CONTEXT; ctx->glUniform1fv(ctx, location, count, v); } void glUniform1i(GLint location, GLint x) { GET_CONTEXT; ctx->glUniform1i(ctx, location, x); } void glUniform1iv(GLint location, GLsizei count, const GLint* v) { GET_CONTEXT; ctx->glUniform1iv(ctx, location, count, v); } void glUniform2f(GLint location, GLfloat x, GLfloat y) { GET_CONTEXT; ctx->glUniform2f(ctx, location, x, y); } void glUniform2fv(GLint location, GLsizei count, const GLfloat* v) { GET_CONTEXT; ctx->glUniform2fv(ctx, location, count, v); } void glUniform2i(GLint location, GLint x, GLint y) { GET_CONTEXT; ctx->glUniform2i(ctx, location, x, y); } void glUniform2iv(GLint location, GLsizei count, const GLint* v) { GET_CONTEXT; ctx->glUniform2iv(ctx, location, count, v); } void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) { GET_CONTEXT; ctx->glUniform3f(ctx, location, x, y, z); } void glUniform3fv(GLint location, GLsizei count, const GLfloat* v) { GET_CONTEXT; ctx->glUniform3fv(ctx, location, count, v); } void glUniform3i(GLint location, GLint x, GLint y, GLint z) { GET_CONTEXT; ctx->glUniform3i(ctx, location, x, y, z); } void glUniform3iv(GLint location, GLsizei count, const GLint* v) { GET_CONTEXT; ctx->glUniform3iv(ctx, location, count, v); } void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { GET_CONTEXT; ctx->glUniform4f(ctx, location, x, y, z, w); } void glUniform4fv(GLint location, GLsizei count, const GLfloat* v) { GET_CONTEXT; ctx->glUniform4fv(ctx, location, count, v); } void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) { GET_CONTEXT; ctx->glUniform4i(ctx, location, x, y, z, w); } void glUniform4iv(GLint location, GLsizei count, const GLint* v) { GET_CONTEXT; ctx->glUniform4iv(ctx, location, count, v); } void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix2fv(ctx, location, count, transpose, value); } void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix3fv(ctx, location, count, transpose, value); } void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix4fv(ctx, location, count, transpose, value); } void glUseProgram(GLuint program) { GET_CONTEXT; ctx->glUseProgram(ctx, program); } void glValidateProgram(GLuint program) { GET_CONTEXT; ctx->glValidateProgram(ctx, program); } void glVertexAttrib1f(GLuint indx, GLfloat x) { GET_CONTEXT; ctx->glVertexAttrib1f(ctx, indx, x); } void glVertexAttrib1fv(GLuint indx, const GLfloat* values) { GET_CONTEXT; ctx->glVertexAttrib1fv(ctx, indx, values); } void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { GET_CONTEXT; ctx->glVertexAttrib2f(ctx, indx, x, y); } void glVertexAttrib2fv(GLuint indx, const GLfloat* values) { GET_CONTEXT; ctx->glVertexAttrib2fv(ctx, indx, values); } void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) { GET_CONTEXT; ctx->glVertexAttrib3f(ctx, indx, x, y, z); } void glVertexAttrib3fv(GLuint indx, const GLfloat* values) { GET_CONTEXT; ctx->glVertexAttrib3fv(ctx, indx, values); } void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { GET_CONTEXT; ctx->glVertexAttrib4f(ctx, indx, x, y, z, w); } void glVertexAttrib4fv(GLuint indx, const GLfloat* values) { GET_CONTEXT; ctx->glVertexAttrib4fv(ctx, indx, values); } void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr) { GET_CONTEXT; ctx->glVertexAttribPointer(ctx, indx, size, type, normalized, stride, ptr); } void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glViewport(ctx, x, y, width, height); } void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) { GET_CONTEXT; ctx->glEGLImageTargetTexture2DOES(ctx, target, image); } void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) { GET_CONTEXT; ctx->glEGLImageTargetRenderbufferStorageOES(ctx, target, image); } void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) { GET_CONTEXT; ctx->glGetProgramBinaryOES(ctx, program, bufSize, length, binaryFormat, binary); } void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length) { GET_CONTEXT; ctx->glProgramBinaryOES(ctx, program, binaryFormat, binary, length); } void* glMapBufferOES(GLenum target, GLenum access) { GET_CONTEXT; return ctx->glMapBufferOES(ctx, target, access); } GLboolean glUnmapBufferOES(GLenum target) { GET_CONTEXT; return ctx->glUnmapBufferOES(ctx, target); } void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels) { GET_CONTEXT; ctx->glTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, format, type, pixels); } void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels) { GET_CONTEXT; ctx->glTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); } void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glCopyTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, x, y, width, height); } void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) { GET_CONTEXT; if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glCompressedTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, imageSize, data); } void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) { GET_CONTEXT; if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glCompressedTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) { GET_CONTEXT; ctx->glFramebufferTexture3DOES(ctx, target, attachment, textarget, texture, level, zoffset); } void glBindVertexArrayOES(GLuint array) { GET_CONTEXT; ctx->glBindVertexArrayOES(ctx, array); } void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteVertexArraysOES(ctx, n, arrays); } void glGenVertexArraysOES(GLsizei n, GLuint* arrays) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenVertexArraysOES(ctx, n, arrays); } GLboolean glIsVertexArrayOES(GLuint array) { GET_CONTEXT; return ctx->glIsVertexArrayOES(ctx, array); } void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments) { GET_CONTEXT; ctx->glDiscardFramebufferEXT(ctx, target, numAttachments, attachments); } void glMultiDrawArraysEXT(GLenum mode, const GLint* first, const GLsizei* count, GLsizei primcount) { GET_CONTEXT; ctx->glMultiDrawArraysEXT(ctx, mode, first, count, primcount); } void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid* const* indices, GLsizei primcount) { GET_CONTEXT; ctx->glMultiDrawElementsEXT(ctx, mode, count, type, indices, primcount); } void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups) { GET_CONTEXT; ctx->glGetPerfMonitorGroupsAMD(ctx, numGroups, groupsSize, groups); } void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters) { GET_CONTEXT; ctx->glGetPerfMonitorCountersAMD(ctx, group, numCounters, maxActiveCounters, counterSize, counters); } void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString) { GET_CONTEXT; ctx->glGetPerfMonitorGroupStringAMD(ctx, group, bufSize, length, groupString); } void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString) { GET_CONTEXT; ctx->glGetPerfMonitorCounterStringAMD(ctx, group, counter, bufSize, length, counterString); } void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data) { GET_CONTEXT; ctx->glGetPerfMonitorCounterInfoAMD(ctx, group, counter, pname, data); } void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors) { GET_CONTEXT; ctx->glGenPerfMonitorsAMD(ctx, n, monitors); } void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors) { GET_CONTEXT; ctx->glDeletePerfMonitorsAMD(ctx, n, monitors); } void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList) { GET_CONTEXT; ctx->glSelectPerfMonitorCountersAMD(ctx, monitor, enable, group, numCounters, countersList); } void glBeginPerfMonitorAMD(GLuint monitor) { GET_CONTEXT; ctx->glBeginPerfMonitorAMD(ctx, monitor); } void glEndPerfMonitorAMD(GLuint monitor) { GET_CONTEXT; ctx->glEndPerfMonitorAMD(ctx, monitor); } void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten) { GET_CONTEXT; ctx->glGetPerfMonitorCounterDataAMD(ctx, monitor, pname, dataSize, data, bytesWritten); } void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glRenderbufferStorageMultisampleIMG(ctx, target, samples, internalformat, width, height); } void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) { GET_CONTEXT; ctx->glFramebufferTexture2DMultisampleIMG(ctx, target, attachment, textarget, texture, level, samples); } void glDeleteFencesNV(GLsizei n, const GLuint* fences) { GET_CONTEXT; ctx->glDeleteFencesNV(ctx, n, fences); } void glGenFencesNV(GLsizei n, GLuint* fences) { GET_CONTEXT; ctx->glGenFencesNV(ctx, n, fences); } GLboolean glIsFenceNV(GLuint fence) { GET_CONTEXT; return ctx->glIsFenceNV(ctx, fence); } GLboolean glTestFenceNV(GLuint fence) { GET_CONTEXT; return ctx->glTestFenceNV(ctx, fence); } void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetFenceivNV(ctx, fence, pname, params); } void glFinishFenceNV(GLuint fence) { GET_CONTEXT; ctx->glFinishFenceNV(ctx, fence); } void glSetFenceNV(GLuint fence, GLenum condition) { GET_CONTEXT; ctx->glSetFenceNV(ctx, fence, condition); } void glCoverageMaskNV(GLboolean mask) { GET_CONTEXT; ctx->glCoverageMaskNV(ctx, mask); } void glCoverageOperationNV(GLenum operation) { GET_CONTEXT; ctx->glCoverageOperationNV(ctx, operation); } void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls) { GET_CONTEXT; ctx->glGetDriverControlsQCOM(ctx, num, size, driverControls); } void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString) { GET_CONTEXT; ctx->glGetDriverControlStringQCOM(ctx, driverControl, bufSize, length, driverControlString); } void glEnableDriverControlQCOM(GLuint driverControl) { GET_CONTEXT; ctx->glEnableDriverControlQCOM(ctx, driverControl); } void glDisableDriverControlQCOM(GLuint driverControl) { GET_CONTEXT; ctx->glDisableDriverControlQCOM(ctx, driverControl); } void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures) { GET_CONTEXT; ctx->glExtGetTexturesQCOM(ctx, textures, maxTextures, numTextures); } void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers) { GET_CONTEXT; ctx->glExtGetBuffersQCOM(ctx, buffers, maxBuffers, numBuffers); } void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers) { GET_CONTEXT; ctx->glExtGetRenderbuffersQCOM(ctx, renderbuffers, maxRenderbuffers, numRenderbuffers); } void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers) { GET_CONTEXT; ctx->glExtGetFramebuffersQCOM(ctx, framebuffers, maxFramebuffers, numFramebuffers); } void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glExtGetTexLevelParameterivQCOM(ctx, texture, face, level, pname, params); } void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param) { GET_CONTEXT; ctx->glExtTexObjectStateOverrideiQCOM(ctx, target, pname, param); } void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels) { GET_CONTEXT; ctx->glExtGetTexSubImageQCOM(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels); } void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params) { GET_CONTEXT; ctx->glExtGetBufferPointervQCOM(ctx, target, params); } void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders) { GET_CONTEXT; ctx->glExtGetShadersQCOM(ctx, shaders, maxShaders, numShaders); } void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms) { GET_CONTEXT; ctx->glExtGetProgramsQCOM(ctx, programs, maxPrograms, numPrograms); } GLboolean glExtIsProgramBinaryQCOM(GLuint program) { GET_CONTEXT; return ctx->glExtIsProgramBinaryQCOM(ctx, program); } void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length) { GET_CONTEXT; ctx->glExtGetProgramBinarySourceQCOM(ctx, program, shadertype, source, length); } void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask) { GET_CONTEXT; ctx->glStartTilingQCOM(ctx, x, y, width, height, preserveMask); } void glEndTilingQCOM(GLbitfield preserveMask) { GET_CONTEXT; ctx->glEndTilingQCOM(ctx, preserveMask); } void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen) { GET_CONTEXT; ctx->glVertexAttribPointerData(ctx, indx, size, type, normalized, stride, data, datalen); } void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset) { GET_CONTEXT; ctx->glVertexAttribPointerOffset(ctx, indx, size, type, normalized, stride, offset); } void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glDrawElementsOffset(ctx, mode, count, type, offset); } void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen) { GET_CONTEXT; ctx->glDrawElementsData(ctx, mode, count, type, data, datalen); } void glGetCompressedTextureFormats(int count, GLint* formats) { GET_CONTEXT; ctx->glGetCompressedTextureFormats(ctx, count, formats); } void glShaderString(GLuint shader, const GLchar* string, GLsizei len) { GET_CONTEXT; ctx->glShaderString(ctx, shader, string, len); } int glFinishRoundTrip() { GET_CONTEXT; return ctx->glFinishRoundTrip(ctx); } void glGenVertexArrays(GLsizei n, GLuint* arrays) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenVertexArrays(ctx, n, arrays); } void glBindVertexArray(GLuint array) { GET_CONTEXT; ctx->glBindVertexArray(ctx, array); } void glDeleteVertexArrays(GLsizei n, const GLuint* arrays) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteVertexArrays(ctx, n, arrays); } GLboolean glIsVertexArray(GLuint array) { GET_CONTEXT; return ctx->glIsVertexArray(ctx, array); } void* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) { GET_CONTEXT; return ctx->glMapBufferRange(ctx, target, offset, length, access); } GLboolean glUnmapBuffer(GLenum target) { GET_CONTEXT; return ctx->glUnmapBuffer(ctx, target); } void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) { GET_CONTEXT; ctx->glFlushMappedBufferRange(ctx, target, offset, length); } void glMapBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* mapped) { GET_CONTEXT; ctx->glMapBufferRangeAEMU(ctx, target, offset, length, access, mapped); } void glUnmapBufferAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer, GLboolean* out_res) { GET_CONTEXT; ctx->glUnmapBufferAEMU(ctx, target, offset, length, access, guest_buffer, out_res); } void glFlushMappedBufferRangeAEMU(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, void* guest_buffer) { GET_CONTEXT; ctx->glFlushMappedBufferRangeAEMU(ctx, target, offset, length, access, guest_buffer); } void glReadPixelsOffsetAEMU(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glReadPixelsOffsetAEMU(ctx, x, y, width, height, format, type, offset); } void glCompressedTexImage2DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLuint offset) { GET_CONTEXT; ctx->glCompressedTexImage2DOffsetAEMU(ctx, target, level, internalformat, width, height, border, imageSize, offset); } void glCompressedTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLuint offset) { GET_CONTEXT; ctx->glCompressedTexSubImage2DOffsetAEMU(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, offset); } void glTexImage2DOffsetAEMU(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glTexImage2DOffsetAEMU(ctx, target, level, internalformat, width, height, border, format, type, offset); } void glTexSubImage2DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glTexSubImage2DOffsetAEMU(ctx, target, level, xoffset, yoffset, width, height, format, type, offset); } void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) { GET_CONTEXT; ctx->glBindBufferRange(ctx, target, index, buffer, offset, size); } void glBindBufferBase(GLenum target, GLuint index, GLuint buffer) { GET_CONTEXT; ctx->glBindBufferBase(ctx, target, index, buffer); } void glCopyBufferSubData(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size) { GET_CONTEXT; ctx->glCopyBufferSubData(ctx, readtarget, writetarget, readoffset, writeoffset, size); } void glClearBufferiv(GLenum buffer, GLint drawBuffer, const GLint* value) { GET_CONTEXT; ctx->glClearBufferiv(ctx, buffer, drawBuffer, value); } void glClearBufferuiv(GLenum buffer, GLint drawBuffer, const GLuint* value) { GET_CONTEXT; ctx->glClearBufferuiv(ctx, buffer, drawBuffer, value); } void glClearBufferfv(GLenum buffer, GLint drawBuffer, const GLfloat* value) { GET_CONTEXT; ctx->glClearBufferfv(ctx, buffer, drawBuffer, value); } void glClearBufferfi(GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil) { GET_CONTEXT; ctx->glClearBufferfi(ctx, buffer, drawBuffer, depth, stencil); } void glGetBufferParameteri64v(GLenum target, GLenum value, GLint64* data) { GET_CONTEXT; ctx->glGetBufferParameteri64v(ctx, target, value, data); } void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params) { GET_CONTEXT; ctx->glGetBufferPointerv(ctx, target, pname, params); } void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) { GET_CONTEXT; ctx->glUniformBlockBinding(ctx, program, uniformBlockIndex, uniformBlockBinding); } GLuint glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName) { GET_CONTEXT; return ctx->glGetUniformBlockIndex(ctx, program, uniformBlockName); } void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices) { GET_CONTEXT; ctx->glGetUniformIndices(ctx, program, uniformCount, uniformNames, uniformIndices); } void glGetUniformIndicesAEMU(GLuint program, GLsizei uniformCount, const GLchar* packedUniformNames, GLsizei packedLen, GLuint* uniformIndices) { GET_CONTEXT; ctx->glGetUniformIndicesAEMU(ctx, program, uniformCount, packedUniformNames, packedLen, uniformIndices); } void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetActiveUniformBlockiv(ctx, program, uniformBlockIndex, pname, params); } void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetActiveUniformBlockName(ctx, program, uniformBlockIndex, bufSize, length, uniformBlockName); } void glUniform1ui(GLint location, GLuint v0) { GET_CONTEXT; ctx->glUniform1ui(ctx, location, v0); } void glUniform2ui(GLint location, GLuint v0, GLuint v1) { GET_CONTEXT; ctx->glUniform2ui(ctx, location, v0, v1); } void glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) { GET_CONTEXT; ctx->glUniform3ui(ctx, location, v0, v1, v2); } void glUniform4ui(GLint location, GLint v0, GLuint v1, GLuint v2, GLuint v3) { GET_CONTEXT; ctx->glUniform4ui(ctx, location, v0, v1, v2, v3); } void glUniform1uiv(GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glUniform1uiv(ctx, location, count, value); } void glUniform2uiv(GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glUniform2uiv(ctx, location, count, value); } void glUniform3uiv(GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glUniform3uiv(ctx, location, count, value); } void glUniform4uiv(GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glUniform4uiv(ctx, location, count, value); } void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix2x3fv(ctx, location, count, transpose, value); } void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix3x2fv(ctx, location, count, transpose, value); } void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix2x4fv(ctx, location, count, transpose, value); } void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix4x2fv(ctx, location, count, transpose, value); } void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix3x4fv(ctx, location, count, transpose, value); } void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glUniformMatrix4x3fv(ctx, location, count, transpose, value); } void glGetUniformuiv(GLuint program, GLint location, GLuint* params) { GET_CONTEXT; ctx->glGetUniformuiv(ctx, program, location, params); } void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetActiveUniformsiv(ctx, program, uniformCount, uniformIndices, pname, params); } void glVertexAttribI4i(GLuint index, GLint v0, GLint v1, GLint v2, GLint v3) { GET_CONTEXT; ctx->glVertexAttribI4i(ctx, index, v0, v1, v2, v3); } void glVertexAttribI4ui(GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GET_CONTEXT; ctx->glVertexAttribI4ui(ctx, index, v0, v1, v2, v3); } void glVertexAttribI4iv(GLuint index, const GLint* v) { GET_CONTEXT; ctx->glVertexAttribI4iv(ctx, index, v); } void glVertexAttribI4uiv(GLuint index, const GLuint* v) { GET_CONTEXT; ctx->glVertexAttribI4uiv(ctx, index, v); } void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) { GET_CONTEXT; ctx->glVertexAttribIPointer(ctx, index, size, type, stride, pointer); } void glVertexAttribIPointerOffsetAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, GLuint offset) { GET_CONTEXT; ctx->glVertexAttribIPointerOffsetAEMU(ctx, index, size, type, stride, offset); } void glVertexAttribIPointerDataAEMU(GLuint index, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen) { GET_CONTEXT; ctx->glVertexAttribIPointerDataAEMU(ctx, index, size, type, stride, data, datalen); } void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetVertexAttribIiv(ctx, index, pname, params); } void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params) { GET_CONTEXT; ctx->glGetVertexAttribIuiv(ctx, index, pname, params); } void glVertexAttribDivisor(GLuint index, GLuint divisor) { GET_CONTEXT; ctx->glVertexAttribDivisor(ctx, index, divisor); } void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount) { GET_CONTEXT; ctx->glDrawArraysInstanced(ctx, mode, first, count, primcount); } void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount) { GET_CONTEXT; ctx->glDrawElementsInstanced(ctx, mode, count, type, indices, primcount); } void glDrawElementsInstancedDataAEMU(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLsizei datalen) { GET_CONTEXT; ctx->glDrawElementsInstancedDataAEMU(ctx, mode, count, type, indices, primcount, datalen); } void glDrawElementsInstancedOffsetAEMU(GLenum mode, GLsizei count, GLenum type, GLuint offset, GLsizei primcount) { GET_CONTEXT; ctx->glDrawElementsInstancedOffsetAEMU(ctx, mode, count, type, offset, primcount); } void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices) { GET_CONTEXT; ctx->glDrawRangeElements(ctx, mode, start, end, count, type, indices); } void glDrawRangeElementsDataAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices, GLsizei datalen) { GET_CONTEXT; ctx->glDrawRangeElementsDataAEMU(ctx, mode, start, end, count, type, indices, datalen); } void glDrawRangeElementsOffsetAEMU(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glDrawRangeElementsOffsetAEMU(ctx, mode, start, end, count, type, offset); } GLsync glFenceSync(GLenum condition, GLbitfield flags) { GET_CONTEXT; return ctx->glFenceSync(ctx, condition, flags); } GLenum glClientWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout) { GET_CONTEXT; return ctx->glClientWaitSync(ctx, wait_on, flags, timeout); } void glWaitSync(GLsync wait_on, GLbitfield flags, GLuint64 timeout) { GET_CONTEXT; ctx->glWaitSync(ctx, wait_on, flags, timeout); } void glDeleteSync(GLsync to_delete) { GET_CONTEXT; ctx->glDeleteSync(ctx, to_delete); } GLboolean glIsSync(GLsync sync) { GET_CONTEXT; return ctx->glIsSync(ctx, sync); } void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) { GET_CONTEXT; ctx->glGetSynciv(ctx, sync, pname, bufSize, length, values); } uint64_t glFenceSyncAEMU(GLenum condition, GLbitfield flags) { GET_CONTEXT; return ctx->glFenceSyncAEMU(ctx, condition, flags); } GLenum glClientWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout) { GET_CONTEXT; return ctx->glClientWaitSyncAEMU(ctx, wait_on, flags, timeout); } void glWaitSyncAEMU(uint64_t wait_on, GLbitfield flags, GLuint64 timeout) { GET_CONTEXT; ctx->glWaitSyncAEMU(ctx, wait_on, flags, timeout); } void glDeleteSyncAEMU(uint64_t to_delete) { GET_CONTEXT; ctx->glDeleteSyncAEMU(ctx, to_delete); } GLboolean glIsSyncAEMU(uint64_t sync) { GET_CONTEXT; return ctx->glIsSyncAEMU(ctx, sync); } void glGetSyncivAEMU(uint64_t sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetSyncivAEMU(ctx, sync, pname, bufSize, length, values); } void glDrawBuffers(GLsizei n, const GLenum* bufs) { GET_CONTEXT; ctx->glDrawBuffers(ctx, n, bufs); } void glReadBuffer(GLenum src) { GET_CONTEXT; ctx->glReadBuffer(ctx, src); } void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { GET_CONTEXT; ctx->glBlitFramebuffer(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } void glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments) { GET_CONTEXT; ctx->glInvalidateFramebuffer(ctx, target, numAttachments, attachments); } void glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glInvalidateSubFramebuffer(ctx, target, numAttachments, attachments, x, y, width, height); } void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) { GET_CONTEXT; ctx->glFramebufferTextureLayer(ctx, target, attachment, texture, level, layer); } void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glRenderbufferStorageMultisample(ctx, target, samples, internalformat, width, height); } void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glTexStorage2D(ctx, target, levels, internalformat, width, height); } void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) { GET_CONTEXT; ctx->glGetInternalformativ(ctx, target, internalformat, pname, bufSize, params); } void glBeginTransformFeedback(GLenum primitiveMode) { GET_CONTEXT; ctx->glBeginTransformFeedback(ctx, primitiveMode); } void glEndTransformFeedback() { GET_CONTEXT; ctx->glEndTransformFeedback(ctx); } void glGenTransformFeedbacks(GLsizei n, GLuint* ids) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenTransformFeedbacks(ctx, n, ids); } void glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteTransformFeedbacks(ctx, n, ids); } void glBindTransformFeedback(GLenum target, GLuint id) { GET_CONTEXT; ctx->glBindTransformFeedback(ctx, target, id); } void glPauseTransformFeedback() { GET_CONTEXT; ctx->glPauseTransformFeedback(ctx); } void glResumeTransformFeedback() { GET_CONTEXT; ctx->glResumeTransformFeedback(ctx); } GLboolean glIsTransformFeedback(GLuint id) { GET_CONTEXT; return ctx->glIsTransformFeedback(ctx, id); } void glTransformFeedbackVaryings(GLuint program, GLsizei count, const char** varyings, GLenum bufferMode) { GET_CONTEXT; ctx->glTransformFeedbackVaryings(ctx, program, count, varyings, bufferMode); } void glTransformFeedbackVaryingsAEMU(GLuint program, GLsizei count, const char* packedVaryings, GLuint packedVaryingsLen, GLenum bufferMode) { GET_CONTEXT; ctx->glTransformFeedbackVaryingsAEMU(ctx, program, count, packedVaryings, packedVaryingsLen, bufferMode); } void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, char* name) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetTransformFeedbackVarying(ctx, program, index, bufSize, length, size, type, name); } void glGenSamplers(GLsizei n, GLuint* samplers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenSamplers(ctx, n, samplers); } void glDeleteSamplers(GLsizei n, const GLuint* samplers) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteSamplers(ctx, n, samplers); } void glBindSampler(GLuint unit, GLuint sampler) { GET_CONTEXT; ctx->glBindSampler(ctx, unit, sampler); } void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) { GET_CONTEXT; ctx->glSamplerParameterf(ctx, sampler, pname, param); } void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param) { GET_CONTEXT; ctx->glSamplerParameteri(ctx, sampler, pname, param); } void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* params) { GET_CONTEXT; ctx->glSamplerParameterfv(ctx, sampler, pname, params); } void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* params) { GET_CONTEXT; ctx->glSamplerParameteriv(ctx, sampler, pname, params); } void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params) { GET_CONTEXT; ctx->glGetSamplerParameterfv(ctx, sampler, pname, params); } void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetSamplerParameteriv(ctx, sampler, pname, params); } GLboolean glIsSampler(GLuint sampler) { GET_CONTEXT; return ctx->glIsSampler(ctx, sampler); } void glGenQueries(GLsizei n, GLuint* queries) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGenQueries(ctx, n, queries); } void glDeleteQueries(GLsizei n, const GLuint* queries) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteQueries(ctx, n, queries); } void glBeginQuery(GLenum target, GLuint query) { GET_CONTEXT; ctx->glBeginQuery(ctx, target, query); } void glEndQuery(GLenum target) { GET_CONTEXT; ctx->glEndQuery(ctx, target); } void glGetQueryiv(GLenum target, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetQueryiv(ctx, target, pname, params); } void glGetQueryObjectuiv(GLuint query, GLenum pname, GLuint* params) { GET_CONTEXT; ctx->glGetQueryObjectuiv(ctx, query, pname, params); } GLboolean glIsQuery(GLuint query) { GET_CONTEXT; return ctx->glIsQuery(ctx, query); } void glProgramParameteri(GLuint program, GLenum pname, GLint value) { GET_CONTEXT; ctx->glProgramParameteri(ctx, program, pname, value); } void glProgramBinary(GLuint program, GLenum binaryFormat, const void* binary, GLsizei length) { GET_CONTEXT; ctx->glProgramBinary(ctx, program, binaryFormat, binary, length); } void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, void* binary) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetProgramBinary(ctx, program, bufSize, length, binaryFormat, binary); } GLint glGetFragDataLocation(GLuint program, const char* name) { GET_CONTEXT; return ctx->glGetFragDataLocation(ctx, program, name); } void glGetInteger64v(GLenum pname, GLint64* data) { GET_CONTEXT; ctx->glGetInteger64v(ctx, pname, data); } void glGetIntegeri_v(GLenum target, GLuint index, GLint* data) { GET_CONTEXT; ctx->glGetIntegeri_v(ctx, target, index, data); } void glGetInteger64i_v(GLenum target, GLuint index, GLint64* data) { GET_CONTEXT; ctx->glGetInteger64i_v(ctx, target, index, data); } void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* data) { GET_CONTEXT; ctx->glTexImage3D(ctx, target, level, internalFormat, width, height, depth, border, format, type, data); } void glTexImage3DOffsetAEMU(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glTexImage3DOffsetAEMU(ctx, target, level, internalFormat, width, height, depth, border, format, type, offset); } void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { GET_CONTEXT; ctx->glTexStorage3D(ctx, target, levels, internalformat, width, height, depth); } void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* data) { GET_CONTEXT; ctx->glTexSubImage3D(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data); } void glTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glTexSubImage3DOffsetAEMU(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, offset); } void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) { GET_CONTEXT; if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glCompressedTexImage3D(ctx, target, level, internalformat, width, height, depth, border, imageSize, data); } void glCompressedTexImage3DOffsetAEMU(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLuint offset) { GET_CONTEXT; ctx->glCompressedTexImage3DOffsetAEMU(ctx, target, level, internalformat, width, height, depth, border, imageSize, offset); } void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) { GET_CONTEXT; if(imageSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glCompressedTexSubImage3D(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } void glCompressedTexSubImage3DOffsetAEMU(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLuint data) { GET_CONTEXT; ctx->glCompressedTexSubImage3DOffsetAEMU(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); } void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { GET_CONTEXT; ctx->glCopyTexSubImage3D(ctx, target, level, xoffset, yoffset, zoffset, x, y, width, height); } const GLubyte* glGetStringi(GLenum name, GLuint index) { GET_CONTEXT; return ctx->glGetStringi(ctx, name, index); } void glGetBooleani_v(GLenum target, GLuint index, GLboolean* data) { GET_CONTEXT; ctx->glGetBooleani_v(ctx, target, index, data); } void glMemoryBarrier(GLbitfield barriers) { GET_CONTEXT; ctx->glMemoryBarrier(ctx, barriers); } void glMemoryBarrierByRegion(GLbitfield barriers) { GET_CONTEXT; ctx->glMemoryBarrierByRegion(ctx, barriers); } void glGenProgramPipelines(GLsizei n, GLuint* pipelines) { GET_CONTEXT; ctx->glGenProgramPipelines(ctx, n, pipelines); } void glDeleteProgramPipelines(GLsizei n, const GLuint* pipelines) { GET_CONTEXT; if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glDeleteProgramPipelines(ctx, n, pipelines); } void glBindProgramPipeline(GLuint pipeline) { GET_CONTEXT; ctx->glBindProgramPipeline(ctx, pipeline); } void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetProgramPipelineiv(ctx, pipeline, pname, params); } void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetProgramPipelineInfoLog(ctx, pipeline, bufSize, length, infoLog); } void glValidateProgramPipeline(GLuint pipeline) { GET_CONTEXT; ctx->glValidateProgramPipeline(ctx, pipeline); } GLboolean glIsProgramPipeline(GLuint pipeline) { GET_CONTEXT; return ctx->glIsProgramPipeline(ctx, pipeline); } void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program) { GET_CONTEXT; ctx->glUseProgramStages(ctx, pipeline, stages, program); } void glActiveShaderProgram(GLuint pipeline, GLuint program) { GET_CONTEXT; ctx->glActiveShaderProgram(ctx, pipeline, program); } GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const char** strings) { GET_CONTEXT; return ctx->glCreateShaderProgramv(ctx, type, count, strings); } GLuint glCreateShaderProgramvAEMU(GLenum type, GLsizei count, const char* packedStrings, GLuint packedLen) { GET_CONTEXT; return ctx->glCreateShaderProgramvAEMU(ctx, type, count, packedStrings, packedLen); } void glProgramUniform1f(GLuint program, GLint location, GLfloat v0) { GET_CONTEXT; ctx->glProgramUniform1f(ctx, program, location, v0); } void glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1) { GET_CONTEXT; ctx->glProgramUniform2f(ctx, program, location, v0, v1); } void glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { GET_CONTEXT; ctx->glProgramUniform3f(ctx, program, location, v0, v1, v2); } void glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { GET_CONTEXT; ctx->glProgramUniform4f(ctx, program, location, v0, v1, v2, v3); } void glProgramUniform1i(GLuint program, GLint location, GLint v0) { GET_CONTEXT; ctx->glProgramUniform1i(ctx, program, location, v0); } void glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1) { GET_CONTEXT; ctx->glProgramUniform2i(ctx, program, location, v0, v1); } void glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) { GET_CONTEXT; ctx->glProgramUniform3i(ctx, program, location, v0, v1, v2); } void glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { GET_CONTEXT; ctx->glProgramUniform4i(ctx, program, location, v0, v1, v2, v3); } void glProgramUniform1ui(GLuint program, GLint location, GLuint v0) { GET_CONTEXT; ctx->glProgramUniform1ui(ctx, program, location, v0); } void glProgramUniform2ui(GLuint program, GLint location, GLint v0, GLuint v1) { GET_CONTEXT; ctx->glProgramUniform2ui(ctx, program, location, v0, v1); } void glProgramUniform3ui(GLuint program, GLint location, GLint v0, GLint v1, GLuint v2) { GET_CONTEXT; ctx->glProgramUniform3ui(ctx, program, location, v0, v1, v2); } void glProgramUniform4ui(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLuint v3) { GET_CONTEXT; ctx->glProgramUniform4ui(ctx, program, location, v0, v1, v2, v3); } void glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniform1fv(ctx, program, location, count, value); } void glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniform2fv(ctx, program, location, count, value); } void glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniform3fv(ctx, program, location, count, value); } void glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniform4fv(ctx, program, location, count, value); } void glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint* value) { GET_CONTEXT; ctx->glProgramUniform1iv(ctx, program, location, count, value); } void glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint* value) { GET_CONTEXT; ctx->glProgramUniform2iv(ctx, program, location, count, value); } void glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint* value) { GET_CONTEXT; ctx->glProgramUniform3iv(ctx, program, location, count, value); } void glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint* value) { GET_CONTEXT; ctx->glProgramUniform4iv(ctx, program, location, count, value); } void glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glProgramUniform1uiv(ctx, program, location, count, value); } void glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glProgramUniform2uiv(ctx, program, location, count, value); } void glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glProgramUniform3uiv(ctx, program, location, count, value); } void glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint* value) { GET_CONTEXT; ctx->glProgramUniform4uiv(ctx, program, location, count, value); } void glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix2fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix3fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix4fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix2x3fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix3x2fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix2x4fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix4x2fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix3x4fv(ctx, program, location, count, transpose, value); } void glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { GET_CONTEXT; ctx->glProgramUniformMatrix4x3fv(ctx, program, location, count, transpose, value); } void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetProgramInterfaceiv(ctx, program, programInterface, pname, params); } void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetProgramResourceiv(ctx, program, programInterface, index, propCount, props, bufSize, length, params); } GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const char* name) { GET_CONTEXT; return ctx->glGetProgramResourceIndex(ctx, program, programInterface, name); } GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const char* name) { GET_CONTEXT; return ctx->glGetProgramResourceLocation(ctx, program, programInterface, name); } void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, char* name) { GET_CONTEXT; if(bufSize<0){ ctx->setError(GL_INVALID_VALUE); return; } ctx->glGetProgramResourceName(ctx, program, programInterface, index, bufSize, length, name); } void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) { GET_CONTEXT; ctx->glBindImageTexture(ctx, unit, texture, level, layered, layer, access, format); } void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) { GET_CONTEXT; ctx->glDispatchCompute(ctx, num_groups_x, num_groups_y, num_groups_z); } void glDispatchComputeIndirect(GLintptr indirect) { GET_CONTEXT; ctx->glDispatchComputeIndirect(ctx, indirect); } void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride) { GET_CONTEXT; ctx->glBindVertexBuffer(ctx, bindingindex, buffer, offset, stride); } void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex) { GET_CONTEXT; ctx->glVertexAttribBinding(ctx, attribindex, bindingindex); } void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) { GET_CONTEXT; ctx->glVertexAttribFormat(ctx, attribindex, size, type, normalized, relativeoffset); } void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) { GET_CONTEXT; ctx->glVertexAttribIFormat(ctx, attribindex, size, type, relativeoffset); } void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor) { GET_CONTEXT; ctx->glVertexBindingDivisor(ctx, bindingindex, divisor); } void glDrawArraysIndirect(GLenum mode, const void* indirect) { GET_CONTEXT; ctx->glDrawArraysIndirect(ctx, mode, indirect); } void glDrawArraysIndirectDataAEMU(GLenum mode, const void* indirect, GLuint datalen) { GET_CONTEXT; ctx->glDrawArraysIndirectDataAEMU(ctx, mode, indirect, datalen); } void glDrawArraysIndirectOffsetAEMU(GLenum mode, GLuint offset) { GET_CONTEXT; ctx->glDrawArraysIndirectOffsetAEMU(ctx, mode, offset); } void glDrawElementsIndirect(GLenum mode, GLenum type, const void* indirect) { GET_CONTEXT; ctx->glDrawElementsIndirect(ctx, mode, type, indirect); } void glDrawElementsIndirectDataAEMU(GLenum mode, GLenum type, const void* indirect, GLuint datalen) { GET_CONTEXT; ctx->glDrawElementsIndirectDataAEMU(ctx, mode, type, indirect, datalen); } void glDrawElementsIndirectOffsetAEMU(GLenum mode, GLenum type, GLuint offset) { GET_CONTEXT; ctx->glDrawElementsIndirectOffsetAEMU(ctx, mode, type, offset); } void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) { GET_CONTEXT; ctx->glTexStorage2DMultisample(ctx, target, samples, internalformat, width, height, fixedsamplelocations); } void glSampleMaski(GLuint maskNumber, GLbitfield mask) { GET_CONTEXT; ctx->glSampleMaski(ctx, maskNumber, mask); } void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat* val) { GET_CONTEXT; ctx->glGetMultisamplefv(ctx, pname, index, val); } void glFramebufferParameteri(GLenum target, GLenum pname, GLint param) { GET_CONTEXT; ctx->glFramebufferParameteri(ctx, target, pname, param); } void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetFramebufferParameteriv(ctx, target, pname, params); } void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat* params) { GET_CONTEXT; ctx->glGetTexLevelParameterfv(ctx, target, level, pname, params); } void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params) { GET_CONTEXT; ctx->glGetTexLevelParameteriv(ctx, target, level, pname, params); }