6#include <QOpenGLContext> 
    7#include <private/qopenglextensions_p.h> 
   18    const char *
renderer = 
reinterpret_cast<const char *
>(
context->functions()->glGetString(GL_RENDERER));
 
   23    if (allowDSA && !
context->isOpenGLES()
 
   35        TextureImage3DEXT = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLuint , 
GLenum , 
GLint , 
GLenum , 
GLsizei , 
GLsizei , 
GLsizei , 
GLint , 
GLenum , 
GLenum , 
const GLvoid *)
>(
context->getProcAddress(
"glTextureImage3DEXT"));
 
   38        TextureSubImage3DEXT = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLuint , 
GLenum , 
GLint , 
GLint , 
GLint , 
GLint , 
GLsizei , 
GLsizei , 
GLsizei , 
GLenum , 
GLenum , 
const GLvoid *)
>(
context->getProcAddress(
"glTextureSubImage3DEXT"));
 
   43        CompressedTextureSubImage3DEXT = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLuint , 
GLenum , 
GLint , 
GLint , 
GLint , 
GLint , 
GLsizei , 
GLsizei , 
GLsizei , 
GLenum , 
GLsizei , 
const GLvoid *)
>(
context->getProcAddress(
"glCompressedTextureSubImage3DEXT"));
 
   49        TextureParameteri = &QOpenGLTextureHelper::dsa_TextureParameteri;
 
   50        TextureParameteriv = &QOpenGLTextureHelper::dsa_TextureParameteriv;
 
   51        TextureParameterf = &QOpenGLTextureHelper::dsa_TextureParameterf;
 
   52        TextureParameterfv = &QOpenGLTextureHelper::dsa_TextureParameterfv;
 
   53        GenerateTextureMipmap = &QOpenGLTextureHelper::dsa_GenerateTextureMipmap;
 
   54        TextureStorage3D = &QOpenGLTextureHelper::dsa_TextureStorage3D;
 
   55        TextureStorage2D = &QOpenGLTextureHelper::dsa_TextureStorage2D;
 
   56        TextureStorage1D = &QOpenGLTextureHelper::dsa_TextureStorage1D;
 
   57        TextureStorage3DMultisample = &QOpenGLTextureHelper::dsa_TextureStorage3DMultisample;
 
   58        TextureStorage2DMultisample = &QOpenGLTextureHelper::dsa_TextureStorage2DMultisample;
 
   59        TextureImage3D = &QOpenGLTextureHelper::dsa_TextureImage3D;
 
   60        TextureImage2D = &QOpenGLTextureHelper::dsa_TextureImage2D;
 
   61        TextureImage1D = &QOpenGLTextureHelper::dsa_TextureImage1D;
 
   62        TextureSubImage3D = &QOpenGLTextureHelper::dsa_TextureSubImage3D;
 
   63        TextureSubImage2D = &QOpenGLTextureHelper::dsa_TextureSubImage2D;
 
   64        TextureSubImage1D = &QOpenGLTextureHelper::dsa_TextureSubImage1D;
 
   65        CompressedTextureSubImage1D = &QOpenGLTextureHelper::dsa_CompressedTextureSubImage1D;
 
   66        CompressedTextureSubImage2D = &QOpenGLTextureHelper::dsa_CompressedTextureSubImage2D;
 
   67        CompressedTextureSubImage3D = &QOpenGLTextureHelper::dsa_CompressedTextureSubImage3D;
 
   68        CompressedTextureImage1D = &QOpenGLTextureHelper::dsa_CompressedTextureImage1D;
 
   69        CompressedTextureImage2D = &QOpenGLTextureHelper::dsa_CompressedTextureImage2D;
 
   70        CompressedTextureImage3D = &QOpenGLTextureHelper::dsa_CompressedTextureImage3D;
 
   73        TextureParameteri = &QOpenGLTextureHelper::qt_TextureParameteri;
 
   74        TextureParameteriv = &QOpenGLTextureHelper::qt_TextureParameteriv;
 
   75        TextureParameterf = &QOpenGLTextureHelper::qt_TextureParameterf;
 
   76        TextureParameterfv = &QOpenGLTextureHelper::qt_TextureParameterfv;
 
   77        GenerateTextureMipmap = &QOpenGLTextureHelper::qt_GenerateTextureMipmap;
 
   78        TextureStorage3D = &QOpenGLTextureHelper::qt_TextureStorage3D;
 
   79        TextureStorage2D = &QOpenGLTextureHelper::qt_TextureStorage2D;
 
   80        TextureStorage1D = &QOpenGLTextureHelper::qt_TextureStorage1D;
 
   81        TextureStorage3DMultisample = &QOpenGLTextureHelper::qt_TextureStorage3DMultisample;
 
   82        TextureStorage2DMultisample = &QOpenGLTextureHelper::qt_TextureStorage2DMultisample;
 
   83        TextureImage3D = &QOpenGLTextureHelper::qt_TextureImage3D;
 
   84        TextureImage2D = &QOpenGLTextureHelper::qt_TextureImage2D;
 
   85        TextureImage1D = &QOpenGLTextureHelper::qt_TextureImage1D;
 
   86        TextureSubImage3D = &QOpenGLTextureHelper::qt_TextureSubImage3D;
 
   87        TextureSubImage2D = &QOpenGLTextureHelper::qt_TextureSubImage2D;
 
   88        TextureSubImage1D = &QOpenGLTextureHelper::qt_TextureSubImage1D;
 
   89        CompressedTextureSubImage1D = &QOpenGLTextureHelper::qt_CompressedTextureSubImage1D;
 
   90        CompressedTextureSubImage2D = &QOpenGLTextureHelper::qt_CompressedTextureSubImage2D;
 
   91        CompressedTextureSubImage3D = &QOpenGLTextureHelper::qt_CompressedTextureSubImage3D;
 
   92        CompressedTextureImage1D = &QOpenGLTextureHelper::qt_CompressedTextureImage1D;
 
   93        CompressedTextureImage2D = &QOpenGLTextureHelper::qt_CompressedTextureImage2D;
 
   94        CompressedTextureImage3D = &QOpenGLTextureHelper::qt_CompressedTextureImage3D;
 
  103        TextureImage3DMultisample = &QOpenGLTextureHelper::dsa_TextureImage3DMultisample;
 
  104        TextureImage2DMultisample = &QOpenGLTextureHelper::dsa_TextureImage2DMultisample;
 
  106        TextureImage3DMultisample = &QOpenGLTextureHelper::qt_TextureImage3DMultisample;
 
  107        TextureImage2DMultisample = &QOpenGLTextureHelper::qt_TextureImage2DMultisample;
 
  110#if QT_CONFIG(opengles2) 
  122    GetCompressedTexImage = 0;
 
  123    CompressedTexSubImage1D = 0;
 
  125    CompressedTexImage1D = 0;
 
  133    TexImage3DMultisample = 0;
 
  134    TexImage2DMultisample = 0;
 
  138    if (
ctx->format().majorVersion() >= 3) {
 
  141        TexStorage3D = extra->f.TexStorage3D;
 
  142        TexStorage2D = extra->f.TexStorage2D;
 
  150    TexStorage3DMultisample = 0;
 
  151    TexStorage2DMultisample = 0;
 
  158        TexStorage2DMultisample = extra->f.TexStorage2DMultisample;
 
  165        TexSubImage3D = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLenum, 
GLint, 
GLint, 
GLint, 
GLint, 
GLsizei, 
GLsizei, 
GLsizei, 
GLenum, 
GLenum, 
const GLvoid*)
>(
context->getProcAddress(
"glTexSubImage3DOES"));
 
  167        CompressedTexSubImage3D = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLenum, 
GLint, 
GLint, 
GLint, 
GLint, 
GLsizei, 
GLsizei, 
GLsizei, 
GLenum, 
GLsizei, 
const GLvoid*)
>(
context->getProcAddress(
"glCompressedTexSubImage3DOES"));
 
  170        if (
ctx->isOpenGLES() && 
ctx->format().majorVersion() >= 3) {
 
  173            TexImage3D = extra->f.TexImage3D;
 
  174            TexSubImage3D = extra->f.TexSubImage3D;
 
  175            CompressedTexImage3D = extra->f.CompressedTexImage3D;
 
  176            CompressedTexSubImage3D = extra->f.CompressedTexSubImage3D;
 
  180            TexSubImage3D = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLenum , 
GLint , 
GLint , 
GLint , 
GLint , 
GLsizei , 
GLsizei , 
GLsizei , 
GLenum , 
GLenum , 
const GLvoid *)
>(
context->getProcAddress(
"glTexSubImage3D"));
 
  184            CompressedTexSubImage3D = 
reinterpret_cast<void (
QOPENGLF_APIENTRYP)(
GLenum , 
GLint , 
GLint , 
GLint , 
GLint , 
GLsizei , 
GLsizei , 
GLsizei , 
GLenum , 
GLsizei , 
const GLvoid *)
>(
context->getProcAddress(
"glCompressedTexSubImage3D"));
 
  188#if !QT_CONFIG(opengles2) 
  281void QOpenGLTextureHelper::dsa_TextureImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLenum internalFormat, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLint border, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  284    TextureImage3DEXT(
texture, 
target, 
level, 
internalFormat, 
width, 
height, 
depth, 
border, 
format, 
type, 
pixels);
 
  287void QOpenGLTextureHelper::dsa_TextureImage2D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLenum internalFormat, 
GLsizei width, 
GLsizei height, 
GLint border, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  299void QOpenGLTextureHelper::dsa_TextureSubImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLint zoffset, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  302    TextureSubImage3DEXT(
texture, 
target, 
level, 
xoffset, 
yoffset, 
zoffset, 
width, 
height, 
depth, 
format, 
type, 
pixels);
 
  305void QOpenGLTextureHelper::dsa_TextureSubImage2D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLsizei width, 
GLsizei height, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  335void QOpenGLTextureHelper::dsa_CompressedTextureSubImage2D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLsizei width, 
GLsizei height, 
GLenum format, 
GLsizei imageSize, 
const GLvoid *
bits)
 
  341void QOpenGLTextureHelper::dsa_CompressedTextureSubImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLint zoffset, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLenum format, 
GLsizei imageSize, 
const GLvoid *
bits)
 
  344    CompressedTextureSubImage3DEXT(
texture, 
target, 
level, 
xoffset, 
yoffset, 
zoffset, 
width, 
height, 
depth, 
format, 
imageSize, 
bits);
 
  359void QOpenGLTextureHelper::dsa_CompressedTextureImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLenum internalFormat, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLint border, 
GLsizei imageSize, 
const GLvoid *
bits)
 
  371    : m_functions(functions)
 
  392        m_functions->glGetIntegerv(bindingTarget, &m_oldTexture);
 
  393        m_functions->glBindTexture(m_target, 
texture);
 
  398        m_functions->glBindTexture(m_target, m_oldTexture);
 
  469void QOpenGLTextureHelper::qt_TextureImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLenum internalFormat, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLint border, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  475void QOpenGLTextureHelper::qt_TextureImage2D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLenum internalFormat, 
GLsizei width, 
GLsizei height, 
GLint border, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  487void QOpenGLTextureHelper::qt_TextureSubImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLint zoffset, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  490    glTexSubImage3D(
target, 
level, 
xoffset, 
yoffset, 
zoffset, 
width, 
height, 
depth, 
format, 
type, 
pixels);
 
  493void QOpenGLTextureHelper::qt_TextureSubImage2D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLsizei width, 
GLsizei height, 
GLenum format, 
GLenum type, 
const GLvoid *
pixels)
 
  523void QOpenGLTextureHelper::qt_CompressedTextureSubImage2D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLsizei width, 
GLsizei height, 
GLenum format, 
GLsizei imageSize, 
const GLvoid *
bits)
 
  529void QOpenGLTextureHelper::qt_CompressedTextureSubImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLint xoffset, 
GLint yoffset, 
GLint zoffset, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLenum format, 
GLsizei imageSize, 
const GLvoid *
bits)
 
  532    glCompressedTexSubImage3D(
target, 
level, 
xoffset, 
yoffset, 
zoffset, 
width, 
height, 
depth, 
format, 
imageSize, 
bits);
 
  547void QOpenGLTextureHelper::qt_CompressedTextureImage3D(
GLuint texture, 
GLenum target, 
GLenum bindingTarget, 
GLint level, 
GLenum internalFormat, 
GLsizei width, 
GLsizei height, 
GLsizei depth, 
GLint border, 
GLsizei imageSize, 
const GLvoid *
bits)
 
static QOpenGLContext * currentContext()
Returns the last context which called makeCurrent in the current thread, or \nullptr,...
The QOpenGLFunctions class provides cross-platform access to the OpenGL ES 2.0 API.
void glTexParameteriv(GLenum target, GLenum pname, const GLint *params)
Convenience function that calls glTexParameteriv(target, pname, params).
void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
Convenience function that calls glTexImage2D(target, level, internalformat, width,...
void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
Convenience function that calls glTexSubImage2D(target, level, xoffset, yoffset, width,...
void glTexParameteri(GLenum target, GLenum pname, GLint param)
Convenience function that calls glTexParameteri(target, pname, param).
void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
Convenience function that calls glTexParameterfv(target, pname, params).
void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
Convenience function that calls glTexParameterf(target, pname, param).
void glGenerateMipmap(GLenum target)
Convenience function that calls glGenerateMipmap(target).
void glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)
void glTexStorage1D(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width)
void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
void glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
void glTexStorage3D(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth)
void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
void glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)
QOpenGLFunctions * functions
void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, 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 glActiveTexture(GLenum texture)
void glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)
void glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)
void glTexImage1D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)
void glGenerateMipmap(GLenum target)
void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
void glTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height)
void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data)
QOpenGLTextureHelper(QOpenGLContext *context)
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)
Combined button and popup list for selecting options.
#define QByteArrayLiteral(str)
#define QOPENGLF_APIENTRYP
typedef GLint(GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)(GLuint program
GLint GLenum GLsizei GLsizei GLsizei depth
typedef GLfloat(GL_APIENTRYP PFNGLGETPATHLENGTHNVPROC)(GLuint path
GLenum GLuint GLint level
GLint GLsizei GLsizei height
GLsizei GLenum GLsizei GLsizei GLboolean fixedSampleLocations
GLint GLenum GLsizei GLsizei GLsizei GLint border
GLint GLint GLint yoffset
GLint GLint GLint GLint zoffset
typedef GLsizei(GL_APIENTRYP PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)(GLuint target)
typedef GLenum(GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC)(void)
typedef GLboolean(GL_APIENTRYP PFNGLISENABLEDIOESPROC)(GLenum target
GLenum const GLint * param
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum const void * pixels
GLint GLsizei GLsizei GLenum format
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei imageSize
GLsizei GLenum internalFormat
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y
#define GL_TEXTURE_CUBE_MAP
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const void * bits
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z
#define GL_TEXTURE_BINDING_CUBE_MAP
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X
constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2) noexcept(noexcept(std::make_pair(std::forward< T1 >(value1), std::forward< T2 >(value2))))
QSvgRenderer * renderer
[0]