/src/gui/opengl/qopenglextrafunctions.h
C Header | 783 lines | 711 code | 27 blank | 45 comment | 2 complexity | b9ee3c93859375be7e451407eae5d0b1 MD5 | raw file
- /****************************************************************************
- **
- ** Copyright (C) 2016 The Qt Company Ltd.
- ** Contact: https://www.qt.io/licensing/
- **
- ** This file is part of the QtGui module of the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and The Qt Company. For licensing terms
- ** and conditions see https://www.qt.io/terms-conditions. For further
- ** information use the contact form at https://www.qt.io/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 3 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL3 included in the
- ** packaging of this file. Please review the following information to
- ** ensure the GNU Lesser General Public License version 3 requirements
- ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 2.0 or (at your option) the GNU General
- ** Public license version 3 or any later version approved by the KDE Free
- ** Qt Foundation. The licenses are as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
- ** included in the packaging of this file. Please review the following
- ** information to ensure the GNU General Public License requirements will
- ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
- ** https://www.gnu.org/licenses/gpl-3.0.html.
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
- #ifndef QOPENGLEXTRAFUNCTIONS_H
- #define QOPENGLEXTRAFUNCTIONS_H
- #include <QtGui/qtguiglobal.h>
- #ifndef QT_NO_OPENGL
- #include <QtGui/qopenglfunctions.h>
- // MemoryBarrier is a macro on some architectures on Windows
- #ifdef Q_OS_WIN
- #pragma push_macro("MemoryBarrier")
- #undef MemoryBarrier
- #endif
- // GLES build without having included gl32.h -> GLDEBUGPROC is still need for the protos, define it here
- #if QT_CONFIG(opengles2) && !QT_CONFIG(opengles32)
- typedef void (QOPENGLF_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
- #endif
- QT_BEGIN_NAMESPACE
- class QOpenGLExtraFunctionsPrivate;
- #undef glReadBuffer
- #undef glDrawRangeElements
- #undef glTexImage3D
- #undef glTexSubImage3D
- #undef glCopyTexSubImage3D
- #undef glCompressedTexImage3D
- #undef glCompressedTexSubImage3D
- #undef glGenQueries
- #undef glDeleteQueries
- #undef glIsQuery
- #undef glBeginQuery
- #undef glEndQuery
- #undef glGetQueryiv
- #undef glGetQueryObjectuiv
- #undef glUnmapBuffer
- #undef glGetBufferPointerv
- #undef glDrawBuffers
- #undef glUniformMatrix2x3fv
- #undef glUniformMatrix3x2fv
- #undef glUniformMatrix2x4fv
- #undef glUniformMatrix4x2fv
- #undef glUniformMatrix3x4fv
- #undef glUniformMatrix4x3fv
- #undef glBlitFramebuffer
- #undef glRenderbufferStorageMultisample
- #undef glFramebufferTextureLayer
- #undef glMapBufferRange
- #undef glFlushMappedBufferRange
- #undef glBindVertexArray
- #undef glDeleteVertexArrays
- #undef glGenVertexArrays
- #undef glIsVertexArray
- #undef glGetIntegeri_v
- #undef glBeginTransformFeedback
- #undef glEndTransformFeedback
- #undef glBindBufferRange
- #undef glBindBufferBase
- #undef glTransformFeedbackVaryings
- #undef glGetTransformFeedbackVarying
- #undef glVertexAttribIPointer
- #undef glGetVertexAttribIiv
- #undef glGetVertexAttribIuiv
- #undef glVertexAttribI4i
- #undef glVertexAttribI4ui
- #undef glVertexAttribI4iv
- #undef glVertexAttribI4uiv
- #undef glGetUniformuiv
- #undef glGetFragDataLocation
- #undef glUniform1ui
- #undef glUniform2ui
- #undef glUniform3ui
- #undef glUniform4ui
- #undef glUniform1uiv
- #undef glUniform2uiv
- #undef glUniform3uiv
- #undef glUniform4uiv
- #undef glClearBufferiv
- #undef glClearBufferuiv
- #undef glClearBufferfv
- #undef glClearBufferfi
- #undef glGetStringi
- #undef glCopyBufferSubData
- #undef glGetUniformIndices
- #undef glGetActiveUniformsiv
- #undef glGetUniformBlockIndex
- #undef glGetActiveUniformBlockiv
- #undef glGetActiveUniformBlockName
- #undef glUniformBlockBinding
- #undef glDrawArraysInstanced
- #undef glDrawElementsInstanced
- #undef glFenceSync
- #undef glIsSync
- #undef glDeleteSync
- #undef glClientWaitSync
- #undef glWaitSync
- #undef glGetInteger64v
- #undef glGetSynciv
- #undef glGetInteger64i_v
- #undef glGetBufferParameteri64v
- #undef glGenSamplers
- #undef glDeleteSamplers
- #undef glIsSampler
- #undef glBindSampler
- #undef glSamplerParameteri
- #undef glSamplerParameteriv
- #undef glSamplerParameterf
- #undef glSamplerParameterfv
- #undef glGetSamplerParameteriv
- #undef glGetSamplerParameterfv
- #undef glVertexAttribDivisor
- #undef glBindTransformFeedback
- #undef glDeleteTransformFeedbacks
- #undef glGenTransformFeedbacks
- #undef glIsTransformFeedback
- #undef glPauseTransformFeedback
- #undef glResumeTransformFeedback
- #undef glGetProgramBinary
- #undef glProgramBinary
- #undef glProgramParameteri
- #undef glInvalidateFramebuffer
- #undef glInvalidateSubFramebuffer
- #undef glTexStorage2D
- #undef glTexStorage3D
- #undef glGetInternalformativ
- #undef glDispatchCompute
- #undef glDispatchComputeIndirect
- #undef glDrawArraysIndirect
- #undef glDrawElementsIndirect
- #undef glFramebufferParameteri
- #undef glGetFramebufferParameteriv
- #undef glGetProgramInterfaceiv
- #undef glGetProgramResourceIndex
- #undef glGetProgramResourceName
- #undef glGetProgramResourceiv
- #undef glGetProgramResourceLocation
- #undef glUseProgramStages
- #undef glActiveShaderProgram
- #undef glCreateShaderProgramv
- #undef glBindProgramPipeline
- #undef glDeleteProgramPipelines
- #undef glGenProgramPipelines
- #undef glIsProgramPipeline
- #undef glGetProgramPipelineiv
- #undef glProgramUniform1i
- #undef glProgramUniform2i
- #undef glProgramUniform3i
- #undef glProgramUniform4i
- #undef glProgramUniform1ui
- #undef glProgramUniform2ui
- #undef glProgramUniform3ui
- #undef glProgramUniform4ui
- #undef glProgramUniform1f
- #undef glProgramUniform2f
- #undef glProgramUniform3f
- #undef glProgramUniform4f
- #undef glProgramUniform1iv
- #undef glProgramUniform2iv
- #undef glProgramUniform3iv
- #undef glProgramUniform4iv
- #undef glProgramUniform1uiv
- #undef glProgramUniform2uiv
- #undef glProgramUniform3uiv
- #undef glProgramUniform4uiv
- #undef glProgramUniform1fv
- #undef glProgramUniform2fv
- #undef glProgramUniform3fv
- #undef glProgramUniform4fv
- #undef glProgramUniformMatrix2fv
- #undef glProgramUniformMatrix3fv
- #undef glProgramUniformMatrix4fv
- #undef glProgramUniformMatrix2x3fv
- #undef glProgramUniformMatrix3x2fv
- #undef glProgramUniformMatrix2x4fv
- #undef glProgramUniformMatrix4x2fv
- #undef glProgramUniformMatrix3x4fv
- #undef glProgramUniformMatrix4x3fv
- #undef glValidateProgramPipeline
- #undef glGetProgramPipelineInfoLog
- #undef glBindImageTexture
- #undef glGetBooleani_v
- #undef glMemoryBarrier
- #undef glMemoryBarrierByRegion
- #undef glTexStorage2DMultisample
- #undef glGetMultisamplefv
- #undef glSampleMaski
- #undef glGetTexLevelParameteriv
- #undef glGetTexLevelParameterfv
- #undef glBindVertexBuffer
- #undef glVertexAttribFormat
- #undef glVertexAttribIFormat
- #undef glVertexAttribBinding
- #undef glVertexBindingDivisor
- #undef glBlendBarrier
- #undef glCopyImageSubData
- #undef glDebugMessageControl
- #undef glDebugMessageInsert
- #undef glDebugMessageCallback
- #undef glGetDebugMessageLog
- #undef glPushDebugGroup
- #undef glPopDebugGroup
- #undef glObjectLabel
- #undef glGetObjectLabel
- #undef glGetObjectPtrLabel
- #undef glGetPointerv
- #undef glEnablei
- #undef glDisablei
- #undef glBlendEquationi
- #undef glBlendEquationSeparatei
- #undef glBlendFunci
- #undef glBlendFuncSeparatei
- #undef glColorMaski
- #undef glIsEnabledi
- #undef glDrawElementsBaseVertex
- #undef glDrawRangeElementsBaseVertex
- #undef glDrawElementsInstancedBaseVertex
- #undef glFrameBufferTexture
- #undef glPrimitiveBoundingBox
- #undef glGetGraphicsResetStatus
- #undef glReadnPixels
- #undef glGetnUniformfv
- #undef glGetnUniformiv
- #undef glGetnUniformuiv
- #undef glMinSampleShading
- #undef glPatchParameteri
- #undef glTexParameterIiv
- #undef glTexParameterIuiv
- #undef glGetTexParameterIiv
- #undef glGetTexParameterIuiv
- #undef glSamplerParameterIiv
- #undef glSamplerParameterIuiv
- #undef glGetSamplerParameterIiv
- #undef glGetSamplerParameterIuiv
- #undef glTexBuffer
- #undef glTexBufferRange
- #undef glTexStorage3DMultisample
- class Q_GUI_EXPORT QOpenGLExtraFunctions : public QOpenGLFunctions
- {
- Q_DECLARE_PRIVATE(QOpenGLExtraFunctions)
- public:
- QOpenGLExtraFunctions();
- QOpenGLExtraFunctions(QOpenGLContext *context);
- ~QOpenGLExtraFunctions() {}
- // GLES3
- void glReadBuffer(GLenum mode);
- void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
- void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
- void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
- void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
- void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
- void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
- void glGenQueries(GLsizei n, GLuint *ids);
- void glDeleteQueries(GLsizei n, const GLuint *ids);
- GLboolean glIsQuery(GLuint id);
- void glBeginQuery(GLenum target, GLuint id);
- void glEndQuery(GLenum target);
- void glGetQueryiv(GLenum target, GLenum pname, GLint *params);
- void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
- GLboolean glUnmapBuffer(GLenum target);
- void glGetBufferPointerv(GLenum target, GLenum pname, void **params);
- void glDrawBuffers(GLsizei n, const GLenum *bufs);
- 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 glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
- void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
- void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
- void *glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
- void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
- void glBindVertexArray(GLuint array);
- void glDeleteVertexArrays(GLsizei n, const GLuint *arrays);
- void glGenVertexArrays(GLsizei n, GLuint *arrays);
- GLboolean glIsVertexArray(GLuint array);
- void glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
- void glBeginTransformFeedback(GLenum primitiveMode);
- void glEndTransformFeedback(void);
- void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
- void glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
- void glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
- void glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
- void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
- void glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
- void glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
- void glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
- void glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
- void glVertexAttribI4iv(GLuint index, const GLint *v);
- void glVertexAttribI4uiv(GLuint index, const GLuint *v);
- void glGetUniformuiv(GLuint program, GLint location, GLuint *params);
- GLint glGetFragDataLocation(GLuint program, const GLchar *name);
- 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, GLuint 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 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);
- const GLubyte *glGetStringi(GLenum name, GLuint index);
- void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
- void glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
- void glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
- GLuint glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
- void glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
- void glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
- void glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
- void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
- void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
- GLsync glFenceSync(GLenum condition, GLbitfield flags);
- GLboolean glIsSync(GLsync sync);
- void glDeleteSync(GLsync sync);
- GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
- void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
- void glGetInteger64v(GLenum pname, GLint64 *data);
- void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
- void glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
- void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
- void glGenSamplers(GLsizei count, GLuint *samplers);
- void glDeleteSamplers(GLsizei count, const GLuint *samplers);
- GLboolean glIsSampler(GLuint sampler);
- void glBindSampler(GLuint unit, GLuint sampler);
- void glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
- void glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param);
- void glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
- void glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param);
- void glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
- void glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
- void glVertexAttribDivisor(GLuint index, GLuint divisor);
- void glBindTransformFeedback(GLenum target, GLuint id);
- void glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
- void glGenTransformFeedbacks(GLsizei n, GLuint *ids);
- GLboolean glIsTransformFeedback(GLuint id);
- void glPauseTransformFeedback(void);
- void glResumeTransformFeedback(void);
- void glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
- void glProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
- void glProgramParameteri(GLuint program, GLenum pname, GLint value);
- 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 glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
- void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
- void glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
- // GLES 3.1
- void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
- void glDispatchComputeIndirect(GLintptr indirect);
- void glDrawArraysIndirect(GLenum mode, const void *indirect);
- void glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect);
- void glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
- void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
- void glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
- GLuint glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name);
- void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
- void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
- GLint glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name);
- void glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
- void glActiveShaderProgram(GLuint pipeline, GLuint program);
- GLuint glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar *const*strings);
- void glBindProgramPipeline(GLuint pipeline);
- void glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
- void glGenProgramPipelines(GLsizei n, GLuint *pipelines);
- GLboolean glIsProgramPipeline(GLuint pipeline);
- void glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
- 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, GLuint v0, GLuint v1);
- void glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
- void glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
- 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 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 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 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 glValidateProgramPipeline(GLuint pipeline);
- void glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
- void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
- void glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
- void glMemoryBarrier(GLbitfield barriers);
- void glMemoryBarrierByRegion(GLbitfield barriers);
- void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
- void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
- void glSampleMaski(GLuint maskNumber, GLbitfield mask);
- void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
- void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
- void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
- void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
- void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
- void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
- void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
- // GLES 3.2
- void glBlendBarrier(void);
- void glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
- void glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
- void glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
- void glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam);
- GLuint glGetDebugMessageLog(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
- void glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);
- void glPopDebugGroup(void);
- void glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
- void glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
- void glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label);
- void glGetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
- void glGetPointerv(GLenum pname, void **params);
- void glEnablei(GLenum target, GLuint index);
- void glDisablei(GLenum target, GLuint index);
- void glBlendEquationi(GLuint buf, GLenum mode);
- void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
- void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
- void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
- void glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
- GLboolean glIsEnabledi(GLenum target, GLuint index);
- void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
- void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
- void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
- void glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
- void glPrimitiveBoundingBox(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
- GLenum glGetGraphicsResetStatus(void);
- void glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
- void glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
- void glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params);
- void glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
- void glMinSampleShading(GLfloat value);
- void glPatchParameteri(GLenum pname, GLint value);
- void glTexParameterIiv(GLenum target, GLenum pname, const GLint *params);
- void glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);
- void glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
- void glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
- void glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param);
- void glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param);
- void glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
- void glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
- void glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
- void glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
- void glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
- private:
- static bool isInitialized(const QOpenGLExtraFunctionsPrivate *d) { return d != nullptr; }
- };
- #define QT_OPENGL_DECLARE_FUNCTIONS(ret, name, args) \
- ret (QOPENGLF_APIENTRYP name)args;
- #define QT_OPENGL_COUNT_FUNCTIONS(ret, name, args) +1
- #define QT_OPENGL_DECLARE(FUNCTIONS) \
- public: \
- struct Functions { \
- FUNCTIONS(QT_OPENGL_DECLARE_FUNCTIONS) \
- }; \
- union { \
- QFunctionPointer functions[FUNCTIONS(QT_OPENGL_COUNT_FUNCTIONS)]; \
- Functions f; \
- }; \
- private: \
- void init(QOpenGLContext *context);
- class QOpenGLExtraFunctionsPrivate : public QOpenGLFunctionsPrivate
- {
- public:
- QOpenGLExtraFunctionsPrivate(QOpenGLContext *ctx);
- // GLES3
- #define QT_OPENGL_EXTRA_FUNCTIONS(F) \
- F(void, ReadBuffer, (GLenum mode)) \
- F(void, DrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)) \
- F(void, TexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \
- F(void, TexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \
- F(void, CopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
- F(void, CompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \
- F(void, CompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \
- F(void, GenQueries, (GLsizei n, GLuint *ids)) \
- F(void, DeleteQueries, (GLsizei n, const GLuint *ids)) \
- F(GLboolean, IsQuery, (GLuint id)) \
- F(void, BeginQuery, (GLenum target, GLuint id)) \
- F(void, EndQuery, (GLenum target)) \
- F(void, GetQueryiv, (GLenum target, GLenum pname, GLint *params)) \
- F(void, GetQueryObjectuiv, (GLuint id, GLenum pname, GLuint *params)) \
- F(GLboolean, UnmapBuffer, (GLenum target)) \
- F(void, GetBufferPointerv, (GLenum target, GLenum pname, void **params)) \
- F(void, DrawBuffers, (GLsizei n, const GLenum *bufs)) \
- F(void, UniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, UniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, UniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, UniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, UniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, UniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, BlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \
- F(void, RenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \
- F(void, FramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) \
- F(void *,MapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \
- F(void, FlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length)) \
- F(void, BindVertexArray, (GLuint array)) \
- F(void, DeleteVertexArrays, (GLsizei n, const GLuint *arrays)) \
- F(void, GenVertexArrays, (GLsizei n, GLuint *arrays)) \
- F(GLboolean, IsVertexArray, (GLuint array)) \
- F(void, GetIntegeri_v, (GLenum target, GLuint index, GLint *data)) \
- F(void, BeginTransformFeedback, (GLenum primitiveMode)) \
- F(void, EndTransformFeedback, (void)) \
- F(void, BindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \
- F(void, BindBufferBase, (GLenum target, GLuint index, GLuint buffer)) \
- F(void, TransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)) \
- F(void, GetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) \
- F(void, VertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \
- F(void, GetVertexAttribIiv, (GLuint index, GLenum pname, GLint *params)) \
- F(void, GetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint *params)) \
- F(void, VertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w)) \
- F(void, VertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \
- F(void, VertexAttribI4iv, (GLuint index, const GLint *v)) \
- F(void, VertexAttribI4uiv, (GLuint index, const GLuint *v)) \
- F(void, GetUniformuiv, (GLuint program, GLint location, GLuint *params)) \
- F(GLint, GetFragDataLocation, (GLuint program, const GLchar *name)) \
- F(void, Uniform1ui, (GLint location, GLuint v0)) \
- F(void, Uniform2ui, (GLint location, GLuint v0, GLuint v1)) \
- F(void, Uniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2)) \
- F(void, Uniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \
- F(void, Uniform1uiv, (GLint location, GLsizei count, const GLuint *value)) \
- F(void, Uniform2uiv, (GLint location, GLsizei count, const GLuint *value)) \
- F(void, Uniform3uiv, (GLint location, GLsizei count, const GLuint *value)) \
- F(void, Uniform4uiv, (GLint location, GLsizei count, const GLuint *value)) \
- F(void, ClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint *value)) \
- F(void, ClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint *value)) \
- F(void, ClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat *value)) \
- F(void, ClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)) \
- F(const GLubyte *, GetStringi, (GLenum name, GLuint index)) \
- F(void, CopyBufferSubData, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \
- F(void, GetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)) \
- F(void, GetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)) \
- F(GLuint, GetUniformBlockIndex, (GLuint program, const GLchar *uniformBlockName)) \
- F(void, GetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)) \
- F(void, GetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)) \
- F(void, UniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)) \
- F(void, DrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount)) \
- F(void, DrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)) \
- F(GLsync, FenceSync, (GLenum condition, GLbitfield flags)) \
- F(GLboolean, IsSync, (GLsync sync)) \
- F(void, DeleteSync, (GLsync sync)) \
- F(GLenum, ClientWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \
- F(void, WaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \
- F(void, GetInteger64v, (GLenum pname, GLint64 *data)) \
- F(void, GetSynciv, (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)) \
- F(void, GetInteger64i_v, (GLenum target, GLuint index, GLint64 *data)) \
- F(void, GetBufferParameteri64v, (GLenum target, GLenum pname, GLint64 *params)) \
- F(void, GenSamplers, (GLsizei count, GLuint *samplers)) \
- F(void, DeleteSamplers, (GLsizei count, const GLuint *samplers)) \
- F(GLboolean, IsSampler, (GLuint sampler)) \
- F(void, BindSampler, (GLuint unit, GLuint sampler)) \
- F(void, SamplerParameteri, (GLuint sampler, GLenum pname, GLint param)) \
- F(void, SamplerParameteriv, (GLuint sampler, GLenum pname, const GLint *param)) \
- F(void, SamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param)) \
- F(void, SamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat *param)) \
- F(void, GetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint *params)) \
- F(void, GetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat *params)) \
- F(void, VertexAttribDivisor, (GLuint index, GLuint divisor)) \
- F(void, BindTransformFeedback, (GLenum target, GLuint id)) \
- F(void, DeleteTransformFeedbacks, (GLsizei n, const GLuint *ids)) \
- F(void, GenTransformFeedbacks, (GLsizei n, GLuint *ids)) \
- F(GLboolean, IsTransformFeedback, (GLuint id)) \
- F(void, PauseTransformFeedback, (void)) \
- F(void, ResumeTransformFeedback, (void)) \
- F(void, GetProgramBinary, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \
- F(void, ProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)) \
- F(void, ProgramParameteri, (GLuint program, GLenum pname, GLint value)) \
- F(void, InvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) \
- F(void, InvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)) \
- F(void, TexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \
- F(void, TexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \
- F(void, GetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params)) \
- F(void, DispatchCompute, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \
- F(void, DispatchComputeIndirect, (GLintptr indirect)) \
- F(void, DrawArraysIndirect, (GLenum mode, const void *indirect)) \
- F(void, DrawElementsIndirect, (GLenum mode, GLenum type, const void *indirect)) \
- F(void, FramebufferParameteri, (GLenum target, GLenum pname, GLint param)) \
- F(void, GetFramebufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \
- F(void, GetProgramInterfaceiv, (GLuint program, GLenum programInterface, GLenum pname, GLint *params)) \
- F(GLuint, GetProgramResourceIndex, (GLuint program, GLenum programInterface, const GLchar *name)) \
- F(void, GetProgramResourceName, (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \
- F(void, GetProgramResourceiv, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params)) \
- F(GLint, GetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name)) \
- F(void, UseProgramStages, (GLuint pipeline, GLbitfield stages, GLuint program)) \
- F(void, ActiveShaderProgram, (GLuint pipeline, GLuint program)) \
- F(GLuint, CreateShaderProgramv, (GLenum type, GLsizei count, const GLchar *const*strings)) \
- F(void, BindProgramPipeline, (GLuint pipeline)) \
- F(void, DeleteProgramPipelines, (GLsizei n, const GLuint *pipelines)) \
- F(void, GenProgramPipelines, (GLsizei n, GLuint *pipelines)) \
- F(GLboolean, IsProgramPipeline, (GLuint pipeline)) \
- F(void, GetProgramPipelineiv, (GLuint pipeline, GLenum pname, GLint *params)) \
- F(void, ProgramUniform1i, (GLuint program, GLint location, GLint v0)) \
- F(void, ProgramUniform2i, (GLuint program, GLint location, GLint v0, GLint v1)) \
- F(void, ProgramUniform3i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \
- F(void, ProgramUniform4i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \
- F(void, ProgramUniform1ui, (GLuint program, GLint location, GLuint v0)) \
- F(void, ProgramUniform2ui, (GLuint program, GLint location, GLuint v0, GLuint v1)) \
- F(void, ProgramUniform3ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \
- F(void, ProgramUniform4ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \
- F(void, ProgramUniform1f, (GLuint program, GLint location, GLfloat v0)) \
- F(void, ProgramUniform2f, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \
- F(void, ProgramUniform3f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \
- F(void, ProgramUniform4f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \
- F(void, ProgramUniform1iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
- F(void, ProgramUniform2iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
- F(void, ProgramUniform3iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
- F(void, ProgramUniform4iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
- F(void, ProgramUniform1uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
- F(void, ProgramUniform2uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
- F(void, ProgramUniform3uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
- F(void, ProgramUniform4uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
- F(void, ProgramUniform1fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
- F(void, ProgramUniform2fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
- F(void, ProgramUniform3fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
- F(void, ProgramUniform4fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
- F(void, ProgramUniformMatrix2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix2x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix3x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix2x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix4x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix3x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ProgramUniformMatrix4x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
- F(void, ValidateProgramPipeline, (GLuint pipeline)) \
- F(void, GetProgramPipelineInfoLog, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
- F(void, BindImageTexture, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \
- F(void, GetBooleani_v, (GLenum target, GLuint index, GLboolean *data)) \
- F(void, MemoryBarrier, (GLbitfield barriers)) \
- F(void, MemoryBarrierByRegion, (GLbitfield barriers)) \
- F(void, TexStorage2DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \
- F(void, GetMultisamplefv, (GLenum pname, GLuint index, GLfloat *val)) \
- F(void, SampleMaski, (GLuint maskNumber, GLbitfield mask)) \
- F(void, GetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params)) \
- F(void, GetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params)) \
- F(void, BindVertexBuffer, (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \
- F(void, VertexAttribFormat, (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \
- F(void, VertexAttribIFormat, (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \
- F(void, VertexAttribBinding, (GLuint attribindex, GLuint bindingindex)) \
- F(void, VertexBindingDivisor, (GLuint bindingindex, GLuint divisor)) \
- F(void, BlendBarrier, (void)) \
- F(void, BlendEquationSeparatei, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \
- F(void, BlendEquationi, (GLuint buf, GLenum mode)) \
- F(void, BlendFuncSeparatei, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \
- F(void, BlendFunci, (GLuint buf, GLenum src, GLenum dst)) \
- F(void, ColorMaski, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \
- F(void, CopyImageSubData, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) \
- F(void, DebugMessageCallback, (GLDEBUGPROC callback, const void * userParam)) \
- F(void, DebugMessageControl, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled)) \
- F(void, DebugMessageInsert, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf)) \
- F(void, Disablei, (GLenum target, GLuint index)) \
- F(void, DrawElementsBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex)) \
- F(void, DrawElementsInstancedBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex)) \
- F(void, DrawRangeElementsBaseVertex, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex)) \
- F(void, Enablei, (GLenum target, GLuint index)) \
- F(void, FramebufferTexture, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \
- F(GLuint, GetDebugMessageLog, (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog)) \
- F(GLenum, GetGraphicsResetStatus, (void)) \
- F(void, GetObjectLabel, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label)) \
- F(void, GetObjectPtrLabel, (const void * ptr, GLsizei bufSize, GLsizei* length, GLchar* label)) \
- F(void, GetPointerv, (GLenum pname, void ** params)) \
- F(void, GetSamplerParameterIiv, (GLuint sampler, GLenum pname, GLint* params)) \
- F(void, GetSamplerParameterIuiv, (GLuint sampler, GLenum pname, GLuint* params)) \
- F(void, GetTexParameterIiv, (GLenum target, GLenum pname, GLint* params)) \
- F(void, GetTexParameterIuiv, (GLenum target, GLenum pname, GLuint* params)) \
- F(void, GetnUniformfv, (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)) \
- F(void, GetnUniformiv, (GLuint program, GLint location, GLsizei bufSize, GLint* params)) \
- F(void, GetnUniformuiv, (GLuint program, GLint location, GLsizei bufSize, GLuint* params)) \
- F(GLboolean, IsEnabledi, (GLenum target, GLuint index)) \
- F(void, MinSampleShading, (GLfloat value)) \
- F(void, ObjectLabel, (GLenum identifier, GLuint name, GLsizei length, const GLchar * label)) \
- F(void, ObjectPtrLabel, (const void * ptr, GLsizei length, const GLchar * label)) \
- F(void, PatchParameteri, (GLenum pname, GLint value)) \
- F(void, PopDebugGroup, (void)) \
- F(void, PrimitiveBoundingBox, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) \
- F(void, PushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar * message)) \
- F(void, ReadnPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data)) \
- F(void, SamplerParameterIiv, (GLuint sampler, GLenum pname, const GLint * param)) \
- F(void, SamplerParameterIuiv, (GLuint sampler, GLenum pname, const GLuint * param)) \
- F(void, TexBuffer, (GLenum target, GLenum internalformat, GLuint buffer)) \
- F(void, TexBufferRange, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \
- F(void, TexParameterIiv, (GLenum target, GLenum pname, const GLint * params)) \
- F(void, TexParameterIuiv, (GLenum target, GLenum pname, const GLuint * params)) \
- F(void, TexStorage3DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \
- QT_OPENGL_DECLARE(QT_OPENGL_EXTRA_FUNCTIONS)
- };
- // GLES 3.0 and 3.1
- inline void QOpenGLExtraFunctions::glBeginQuery(GLenum target, GLuint id)
- {
- Q_D(QOpenGLExtraFunctions);
- Q_ASSERT(QOpenGLExtraFunctions::isInitialized(d));
- d->f.BeginQuery(target, id);
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLExtraFunctions::glBeginTransformFeedback(GLenum primitiveMode)
- {
- Q_D(QOpenGLExtraFunctions);
- Q_ASSERT(QOpenGLExtraFunctions::isInitialized(d));
- d->f.BeginTransformFeedback(primitiveMode);
- Q_OPENGL_FUNCTIONS_DEBUG
- }
- inline void QOpenGLExtraFunctions::glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
- {
- Q_D(QOpenGLExtraFunctions);
- Q_ASSERT(QOpenGLExtraFunctions::isInitialized(d));
- d->f.BindBufferBa