From 3d2160056e409ad2508a8bff4288944d37e32f85 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 12 Mar 2014 13:38:24 +0100 Subject: Resurrect QGLWidget::renderText() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The variant taking x, y, z has been broken in all Qt 5.x releases. This is now corrected by making the GL2 paint engine capable of applying a Z translation. Task-number: QTBUG-31156 Change-Id: I119566e9e9577f6cdf7e8bae56cac1e34995e622 Reviewed-by: Jørgen Lind --- .../gl2paintengineex/qglengineshadermanager.cpp | 3 ++- .../gl2paintengineex/qglengineshadermanager_p.h | 1 + .../gl2paintengineex/qglengineshadersource_p.h | 5 ++++- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 17 +++++++++++++++++ .../gl2paintengineex/qpaintengineex_opengl2_p.h | 9 ++++++++- src/opengl/qgl.cpp | 20 ++++++++------------ 6 files changed, 40 insertions(+), 15 deletions(-) (limited to 'src/opengl') diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp index 56f3f5ad0a..f266318ba6 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp +++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp @@ -534,7 +534,8 @@ GLuint QGLEngineShaderManager::getUniformLocation(Uniform id) "invertedTextureSize", "brushTransform", "brushTexture", - "matrix" + "matrix", + "translateZ" }; if (uniformLocations.at(id) == GLuint(-1)) diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h index bbd9d86773..166d9a0593 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h @@ -444,6 +444,7 @@ public: BrushTransform, BrushTexture, Matrix, + TranslateZ, NumUniforms }; diff --git a/src/opengl/gl2paintengineex/qglengineshadersource_p.h b/src/opengl/gl2paintengineex/qglengineshadersource_p.h index 90bd7edf54..aad2c1f7db 100644 --- a/src/opengl/gl2paintengineex/qglengineshadersource_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadersource_p.h @@ -106,10 +106,13 @@ static const char* const qglslPositionOnlyVertexShader = "\n\ static const char* const qglslComplexGeometryPositionOnlyVertexShader = "\n\ uniform highp mat3 matrix; \n\ + uniform highp float translateZ; \n\ attribute highp vec2 vertexCoordsArray; \n\ void setPosition(void) \n\ { \n\ - gl_Position = vec4(matrix * vec3(vertexCoordsArray, 1), 1);\n\ + vec3 v = matrix * vec3(vertexCoordsArray, 1.0); \n\ + vec4 vz = mat4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, translateZ, 1) * vec4(v, 1.0); \n\ + gl_Position = vec4(vz.xyz, 1.0);\n\ } \n"; static const char* const qglslUntransformedPositionVertexShader = "\n\ diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index fd64a4a71f..2b49e4d2d1 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1158,6 +1158,7 @@ bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque) brushUniformsDirty = true; opacityUniformDirty = true; matrixUniformDirty = true; + translateZUniformDirty = true; } if (brushUniformsDirty && mode != ImageDrawingMode && mode != ImageArrayDrawingMode) @@ -1174,6 +1175,12 @@ bool QGL2PaintEngineExPrivate::prepareForDraw(bool srcPixelsAreOpaque) matrixUniformDirty = false; } + if (translateZUniformDirty && shaderManager->hasComplexGeometry()) { + shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::TranslateZ), + translateZ); + translateZUniformDirty = false; + } + return changed; } @@ -2011,6 +2018,7 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev) d->matrixDirty = true; d->compositionModeDirty = true; d->opacityUniformDirty = true; + d->translateZUniformDirty = true; d->needsSync = true; d->useSystemClip = !systemClip().isEmpty(); d->currentBrush = QBrush(); @@ -2375,6 +2383,15 @@ void QGL2PaintEngineExPrivate::systemStateChanged() } } +void QGL2PaintEngineEx::setTranslateZ(GLfloat z) +{ + Q_D(QGL2PaintEngineEx); + if (d->translateZ != z) { + d->translateZ = z; + d->translateZUniformDirty = true; + } +} + void QGL2PaintEngineEx::setState(QPainterState *new_state) { // qDebug("QGL2PaintEngineEx::setState()"); diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index 33a8869ecf..15ed5bc57d 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -158,6 +158,9 @@ public: bool isNativePaintingActive() const; bool requiresPretransformedGlyphPositions(QFontEngine *, const QTransform &) const { return false; } bool shouldDrawCachedGlyphs(QFontEngine *, const QTransform &) const; + + void setTranslateZ(GLfloat z); + private: Q_DISABLE_COPY(QGL2PaintEngineEx) }; @@ -183,7 +186,8 @@ public: snapToPixelGrid(false), nativePaintingActive(false), inverseScale(1), - lastMaskTextureUsed(0) + lastMaskTextureUsed(0), + translateZ(0) { } ~QGL2PaintEngineExPrivate(); @@ -266,6 +270,7 @@ public: bool brushUniformsDirty; bool opacityUniformDirty; bool matrixUniformDirty; + bool translateZUniformDirty; bool stencilClean; // Has the stencil not been used for clipping so far? bool useSystemClip; @@ -309,6 +314,8 @@ public: QVector unusedIBOSToClean; const GLfloat *vertexAttribPointers[3]; + + GLfloat translateZ; }; diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 1fbff0f0fe..d676abee47 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -4451,12 +4451,6 @@ void QGLWidget::renderText(int x, int y, const QString &str, const QFont &font) glDisable(GL_DEPTH_TEST); glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(0, width, height, 0, 0, 1); - glMatrixMode(GL_MODELVIEW); - - glLoadIdentity(); } else { setAutoBufferSwap(false); // disable glClear() as a result of QPainter::begin() @@ -4567,19 +4561,21 @@ void QGLWidget::renderText(double x, double y, double z, const QString &str, con } else if (use_scissor_testing) { glEnable(GL_SCISSOR_TEST); } - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); glViewport(0, 0, width, height); - glOrtho(0, width, height, 0, 0, 1); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); glAlphaFunc(GL_GREATER, 0.0); glEnable(GL_ALPHA_TEST); if (use_depth_testing) glEnable(GL_DEPTH_TEST); - glTranslated(0, 0, -win_z); + + // The only option in Qt 5 is the shader-based OpenGL 2 paint engine. + // Setting fixed pipeline transformations is futile. Instead, pass the + // extra values directly and let the engine figure the matrices out. + static_cast(p->paintEngine())->setTranslateZ(-win_z); + qt_gl_draw_text(p, qRound(win_x), qRound(win_y), str, font); + static_cast(p->paintEngine())->setTranslateZ(0); + if (!reuse_painter) { p->end(); delete p; -- cgit v1.2.3 From 0a803dc90a1ce31009a4bea3f43a2f200cb3a22e Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 17 Mar 2014 14:49:29 +0100 Subject: Add note to docs about normalization in setAttributeBuffer Task-number: QTBUG-37103 Change-Id: I0b1716b76e10c65871c6a96dab5d8d81c95095d7 Reviewed-by: Gunnar Sletta --- src/opengl/qglshaderprogram.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/opengl') diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp index 7261b68a88..65f217edf2 100644 --- a/src/opengl/qglshaderprogram.cpp +++ b/src/opengl/qglshaderprogram.cpp @@ -1553,6 +1553,9 @@ void QGLShaderProgram::setAttributeArray The setAttributeBuffer() function can be used to set the attribute array to an offset within a vertex buffer. + \note Normalization will be enabled. If this is not desired, call + glVertexAttribPointer directly through QGLFunctions. + \sa setAttributeValue(), setUniformValue(), enableAttributeArray() \sa disableAttributeArray(), setAttributeBuffer() \since 4.7 @@ -1698,6 +1701,9 @@ void QGLShaderProgram::setAttributeArray on the \a location. Otherwise the value specified with setAttributeValue() for \a location will be used. + \note Normalization will be enabled. If this is not desired, call + glVertexAttribPointer directly though QGLFunctions. + \sa setAttributeArray() \since 4.7 */ -- cgit v1.2.3 From 3e3d06d70575b638d667d2bedae7010dbe605680 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 19 Mar 2014 13:33:40 +0100 Subject: Docs: Correct OpenGL ES naming Not sure where "OpenGL/ES" is coming from but there is no such thing. The correct name is OpenGL ES. Change-Id: If071ee5bd928fea1a2f1aebc11155344df1efe2d Reviewed-by: Gunnar Sletta --- src/opengl/qglfunctions.cpp | 338 ++++++++++++++++++++++---------------------- 1 file changed, 169 insertions(+), 169 deletions(-) (limited to 'src/opengl') diff --git a/src/opengl/qglfunctions.cpp b/src/opengl/qglfunctions.cpp index d82e55eba1..450f17b171 100644 --- a/src/opengl/qglfunctions.cpp +++ b/src/opengl/qglfunctions.cpp @@ -49,12 +49,12 @@ QT_BEGIN_NAMESPACE /*! \class QGLFunctions \inmodule QtOpenGL - \brief The QGLFunctions class provides cross-platform access to the OpenGL/ES 2.0 API. + \brief The QGLFunctions class provides cross-platform access to the OpenGL ES 2.0 API. \since 4.8 \obsolete \ingroup painting-3D - OpenGL/ES 2.0 defines a subset of the OpenGL specification that is + OpenGL ES 2.0 defines a subset of the OpenGL specification that is common across many desktop and embedded OpenGL implementations. However, it can be difficult to use the functions from that subset because they need to be resolved manually on desktop systems. @@ -82,7 +82,7 @@ QT_BEGIN_NAMESPACE } \endcode - The \c{paintGL()} function can then use any of the OpenGL/ES 2.0 + The \c{paintGL()} function can then use any of the OpenGL ES 2.0 functions without explicit resolution, such as glActiveTexture() in the following example: @@ -96,23 +96,23 @@ QT_BEGIN_NAMESPACE \endcode QGLFunctions can also be used directly for ad-hoc invocation - of OpenGL/ES 2.0 functions on all platforms: + of OpenGL ES 2.0 functions on all platforms: \code QGLFunctions glFuncs(QGLContext::currentContext()); glFuncs.glActiveTexture(GL_TEXTURE1); \endcode - QGLFunctions provides wrappers for all OpenGL/ES 2.0 functions, + QGLFunctions provides wrappers for all OpenGL ES 2.0 functions, except those like \c{glDrawArrays()}, \c{glViewport()}, and \c{glBindTexture()} that don't have portability issues. Including the header for QGLFunctions will also define all of - the OpenGL/ES 2.0 macro constants that are not already defined by + the OpenGL ES 2.0 macro constants that are not already defined by the system's OpenGL headers, such as \c{GL_TEXTURE1} above. The hasOpenGLFeature() and openGLFeatures() functions can be used - to determine if the OpenGL implementation has a major OpenGL/ES 2.0 + to determine if the OpenGL implementation has a major OpenGL ES 2.0 feature. For example, the following checks if non power of two textures are available: @@ -126,7 +126,7 @@ QT_BEGIN_NAMESPACE /*! \enum QGLFunctions::OpenGLFeature - This enum defines OpenGL/ES 2.0 features that may be optional + This enum defines OpenGL ES 2.0 features that may be optional on other platforms. \value Multitexture glActiveTexture() function is available. @@ -373,7 +373,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glActiveTexture(\a texture). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glActiveTexture.xml}{glActiveTexture()}. */ @@ -382,10 +382,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glAttachShader(\a program, \a shader). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glAttachShader.xml}{glAttachShader()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -393,10 +393,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBindAttribLocation(\a program, \a index, \a name). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBindAttribLocation.xml}{glBindAttribLocation()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -404,7 +404,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBindBuffer(\a target, \a buffer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBindBuffer.xml}{glBindBuffer()}. */ @@ -416,7 +416,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Note that Qt will translate a \a framebuffer argument of 0 to the currently bound QOpenGLContext's defaultFramebufferObject(). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBindFramebuffer.xml}{glBindFramebuffer()}. */ @@ -425,7 +425,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBindRenderbuffer(\a target, \a renderbuffer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBindRenderbuffer.xml}{glBindRenderbuffer()}. */ @@ -434,7 +434,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBlendColor(\a red, \a green, \a blue, \a alpha). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendColor.xml}{glBlendColor()}. */ @@ -443,7 +443,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBlendEquation(\a mode). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendEquation.xml}{glBlendEquation()}. */ @@ -452,7 +452,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBlendEquationSeparate(\a modeRGB, \a modeAlpha). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendEquationSeparate.xml}{glBlendEquationSeparate()}. */ @@ -461,7 +461,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBlendFuncSeparate(\a srcRGB, \a dstRGB, \a srcAlpha, \a dstAlpha). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBlendFuncSeparate.xml}{glBlendFuncSeparate()}. */ @@ -470,7 +470,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBufferData(\a target, \a size, \a data, \a usage). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBufferData.xml}{glBufferData()}. */ @@ -479,7 +479,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glBufferSubData(\a target, \a offset, \a size, \a data). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glBufferSubData.xml}{glBufferSubData()}. */ @@ -488,7 +488,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glCheckFramebufferStatus(\a target). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glCheckFramebufferStatus.xml}{glCheckFramebufferStatus()}. */ @@ -497,9 +497,9 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glClearDepth(\a depth) on desktop OpenGL systems and glClearDepthf(\a depth) on - embedded OpenGL/ES systems. + embedded OpenGL ES systems. - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glClearDepthf.xml}{glClearDepthf()}. */ @@ -508,10 +508,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glCompileShader(\a shader). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glCompileShader.xml}{glCompileShader()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -519,7 +519,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glCompressedTexImage2D(\a target, \a level, \a internalformat, \a width, \a height, \a border, \a imageSize, \a data). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glCompressedTexImage2D.xml}{glCompressedTexImage2D()}. */ @@ -528,7 +528,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glCompressedTexSubImage2D(\a target, \a level, \a xoffset, \a yoffset, \a width, \a height, \a format, \a imageSize, \a data). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glCompressedTexSubImage2D.xml}{glCompressedTexSubImage2D()}. */ @@ -537,10 +537,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glCreateProgram(). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glCreateProgram.xml}{glCreateProgram()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -548,10 +548,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glCreateShader(\a type). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glCreateShader.xml}{glCreateShader()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -559,7 +559,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDeleteBuffers(\a n, \a buffers). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteBuffers.xml}{glDeleteBuffers()}. */ @@ -568,7 +568,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDeleteFramebuffers(\a n, \a framebuffers). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteFramebuffers.xml}{glDeleteFramebuffers()}. */ @@ -577,10 +577,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDeleteProgram(\a program). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteProgram.xml}{glDeleteProgram()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -588,7 +588,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDeleteRenderbuffers(\a n, \a renderbuffers). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteRenderbuffers.xml}{glDeleteRenderbuffers()}. */ @@ -597,10 +597,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDeleteShader(\a shader). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDeleteShader.xml}{glDeleteShader()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -608,9 +608,9 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDepthRange(\a zNear, \a zFar) on desktop OpenGL systems and glDepthRangef(\a zNear, \a zFar) on - embedded OpenGL/ES systems. + embedded OpenGL ES systems. - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDepthRangef.xml}{glDepthRangef()}. */ @@ -619,10 +619,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDetachShader(\a program, \a shader). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDetachShader.xml}{glDetachShader()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -630,10 +630,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glDisableVertexAttribArray(\a index). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glDisableVertexAttribArray.xml}{glDisableVertexAttribArray()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -641,10 +641,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glEnableVertexAttribArray(\a index). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glEnableVertexAttribArray.xml}{glEnableVertexAttribArray()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -652,7 +652,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glFramebufferRenderbuffer(\a target, \a attachment, \a renderbuffertarget, \a renderbuffer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glFramebufferRenderbuffer.xml}{glFramebufferRenderbuffer()}. */ @@ -661,7 +661,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glFramebufferTexture2D(\a target, \a attachment, \a textarget, \a texture, \a level). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glFramebufferTexture2D.xml}{glFramebufferTexture2D()}. */ @@ -670,7 +670,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGenBuffers(\a n, \a buffers). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGenBuffers.xml}{glGenBuffers()}. */ @@ -679,7 +679,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGenerateMipmap(\a target). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGenerateMipmap.xml}{glGenerateMipmap()}. */ @@ -688,7 +688,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGenFramebuffers(\a n, \a framebuffers). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGenFramebuffers.xml}{glGenFramebuffers()}. */ @@ -697,7 +697,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGenRenderbuffers(\a n, \a renderbuffers). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGenRenderbuffers.xml}{glGenRenderbuffers()}. */ @@ -706,10 +706,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetActiveAttrib(\a program, \a index, \a bufsize, \a length, \a size, \a type, \a name). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetActiveAttrib.xml}{glGetActiveAttrib()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -717,10 +717,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetActiveUniform(\a program, \a index, \a bufsize, \a length, \a size, \a type, \a name). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetActiveUniform.xml}{glGetActiveUniform()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -728,10 +728,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetAttachedShaders(\a program, \a maxcount, \a count, \a shaders). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetAttachedShaders.xml}{glGetAttachedShaders()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -739,10 +739,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetAttribLocation(\a program, \a name). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetAttribLocation.xml}{glGetAttribLocation()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -750,7 +750,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetBufferParameteriv(\a target, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetBufferParameteriv.xml}{glGetBufferParameteriv()}. */ @@ -759,7 +759,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetFramebufferAttachmentParameteriv(\a target, \a attachment, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetFramebufferAttachmentParameteriv.xml}{glGetFramebufferAttachmentParameteriv()}. */ @@ -768,10 +768,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetProgramiv(\a program, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetProgramiv.xml}{glGetProgramiv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -779,10 +779,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetProgramInfoLog(\a program, \a bufsize, \a length, \a infolog). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetProgramInfoLog.xml}{glGetProgramInfoLog()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -790,7 +790,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetRenderbufferParameteriv(\a target, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetRenderbufferParameteriv.xml}{glGetRenderbufferParameteriv()}. */ @@ -799,10 +799,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetShaderiv(\a shader, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderiv.xml}{glGetShaderiv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -810,10 +810,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetShaderInfoLog(\a shader, \a bufsize, \a length, \a infolog). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderInfoLog.xml}{glGetShaderInfoLog()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -821,10 +821,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetShaderPrecisionFormat(\a shadertype, \a precisiontype, \a range, \a precision). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderPrecisionFormat.xml}{glGetShaderPrecisionFormat()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -832,10 +832,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetShaderSource(\a shader, \a bufsize, \a length, \a source). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetShaderSource.xml}{glGetShaderSource()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -843,10 +843,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetUniformfv(\a program, \a location, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetUniformfv.xml}{glGetUniformfv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -854,10 +854,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetUniformiv(\a program, \a location, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetUniformiv.xml}{glGetUniformiv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -865,10 +865,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetUniformLocation(\a program, \a name). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetUniformLocation.xml}{glGetUniformLocation()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -876,10 +876,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetVertexAttribfv(\a index, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribfv.xml}{glGetVertexAttribfv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -887,10 +887,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetVertexAttribiv(\a index, \a pname, \a params). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribiv.xml}{glGetVertexAttribiv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -898,10 +898,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glGetVertexAttribPointerv(\a index, \a pname, \a pointer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribPointerv.xml}{glGetVertexAttribPointerv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -909,7 +909,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glIsBuffer(\a buffer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glIsBuffer.xml}{glIsBuffer()}. */ @@ -918,7 +918,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glIsFramebuffer(\a framebuffer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glIsFramebuffer.xml}{glIsFramebuffer()}. */ @@ -927,10 +927,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glIsProgram(\a program). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glIsProgram.xml}{glIsProgram()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -938,7 +938,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glIsRenderbuffer(\a renderbuffer). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glIsRenderbuffer.xml}{glIsRenderbuffer()}. */ @@ -947,10 +947,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glIsShader(\a shader). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glIsShader.xml}{glIsShader()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -958,10 +958,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glLinkProgram(\a program). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glLinkProgram.xml}{glLinkProgram()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -969,10 +969,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glReleaseShaderCompiler(). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glReleaseShaderCompiler.xml}{glReleaseShaderCompiler()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -980,7 +980,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glRenderbufferStorage(\a target, \a internalformat, \a width, \a height). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glRenderbufferStorage.xml}{glRenderbufferStorage()}. */ @@ -989,7 +989,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glSampleCoverage(\a value, \a invert). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glSampleCoverage.xml}{glSampleCoverage()}. */ @@ -998,10 +998,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glShaderBinary(\a n, \a shaders, \a binaryformat, \a binary, \a length). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glShaderBinary.xml}{glShaderBinary()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1009,10 +1009,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glShaderSource(\a shader, \a count, \a string, \a length). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glShaderSource.xml}{glShaderSource()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1020,7 +1020,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glStencilFuncSeparate(\a face, \a func, \a ref, \a mask). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glStencilFuncSeparate.xml}{glStencilFuncSeparate()}. */ @@ -1029,7 +1029,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glStencilMaskSeparate(\a face, \a mask). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glStencilMaskSeparate.xml}{glStencilMaskSeparate()}. */ @@ -1038,7 +1038,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glStencilOpSeparate(\a face, \a fail, \a zfail, \a zpass). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glStencilOpSeparate.xml}{glStencilOpSeparate()}. */ @@ -1047,10 +1047,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform1f(\a location, \a x). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1f.xml}{glUniform1f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1058,10 +1058,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform1fv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1fv.xml}{glUniform1fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1069,10 +1069,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform1i(\a location, \a x). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1i.xml}{glUniform1i()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1080,10 +1080,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform1iv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform1iv.xml}{glUniform1iv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1091,10 +1091,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform2f(\a location, \a x, \a y). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2f.xml}{glUniform2f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1102,10 +1102,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform2fv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2fv.xml}{glUniform2fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1113,10 +1113,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform2i(\a location, \a x, \a y). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2i.xml}{glUniform2i()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1124,10 +1124,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform2iv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform2iv.xml}{glUniform2iv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1135,10 +1135,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform3f(\a location, \a x, \a y, \a z). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3f.xml}{glUniform3f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1146,10 +1146,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform3fv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3fv.xml}{glUniform3fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1157,10 +1157,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform3i(\a location, \a x, \a y, \a z). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3i.xml}{glUniform3i()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1168,10 +1168,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform3iv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform3iv.xml}{glUniform3iv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1179,10 +1179,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform4f(\a location, \a x, \a y, \a z, \a w). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4f.xml}{glUniform4f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1190,10 +1190,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform4fv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4fv.xml}{glUniform4fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1201,10 +1201,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform4i(\a location, \a x, \a y, \a z, \a w). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4i.xml}{glUniform4i()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1212,10 +1212,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniform4iv(\a location, \a count, \a v). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniform4iv.xml}{glUniform4iv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1223,10 +1223,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniformMatrix2fv(\a location, \a count, \a transpose, \a value). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix2fv.xml}{glUniformMatrix2fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1234,10 +1234,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniformMatrix3fv(\a location, \a count, \a transpose, \a value). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix3fv.xml}{glUniformMatrix3fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1245,10 +1245,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUniformMatrix4fv(\a location, \a count, \a transpose, \a value). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix4fv.xml}{glUniformMatrix4fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1256,10 +1256,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glUseProgram(\a program). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glUseProgram.xml}{glUseProgram()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1267,10 +1267,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glValidateProgram(\a program). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glValidateProgram.xml}{glValidateProgram()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1278,10 +1278,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib1f(\a indx, \a x). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib1f.xml}{glVertexAttrib1f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1289,10 +1289,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib1fv(\a indx, \a values). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib1fv.xml}{glVertexAttrib1fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1300,10 +1300,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib2f(\a indx, \a x, \a y). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib2f.xml}{glVertexAttrib2f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1311,10 +1311,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib2fv(\a indx, \a values). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib2fv.xml}{glVertexAttrib2fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1322,10 +1322,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib3f(\a indx, \a x, \a y, \a z). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib3f.xml}{glVertexAttrib3f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1333,10 +1333,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib3fv(\a indx, \a values). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib3fv.xml}{glVertexAttrib3fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1344,10 +1344,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib4f(\a indx, \a x, \a y, \a z, \a w). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib4f.xml}{glVertexAttrib4f()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1355,10 +1355,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttrib4fv(\a indx, \a values). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib4fv.xml}{glVertexAttrib4fv()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ /*! @@ -1366,10 +1366,10 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context) Convenience function that calls glVertexAttribPointer(\a indx, \a size, \a type, \a normalized, \a stride, \a ptr). - For more information, see the OpenGL/ES 2.0 documentation for + For more information, see the OpenGL ES 2.0 documentation for \l{http://www.khronos.org/opengles/sdk/docs/man/glVertexAttribPointer.xml}{glVertexAttribPointer()}. - This convenience function will do nothing on OpenGL/ES 1.x systems. + This convenience function will do nothing on OpenGL ES 1.x systems. */ QGLFunctionsPrivate::QGLFunctionsPrivate(const QGLContext *) -- cgit v1.2.3 From a30676f20171f2bf7a8074b21be2688fcc239b14 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Fri, 21 Mar 2014 10:47:29 +0200 Subject: Fix crash: make sure functions pointer is initialized. Change-Id: I42fd3933f33370612290e8ba252349acfae72381 Reviewed-by: Laszlo Agocs --- src/opengl/qgl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/opengl') diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index d676abee47..de1de476b8 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -2441,7 +2441,7 @@ QGLTexture* QGLContextPrivate::bindTexture(const QImage &image, GLenum target, G glTexImage2D(target, 0, internalFormat, img.width(), img.height(), 0, externalFormat, pixel_type, constRef.bits()); if (genMipmap && ctx->isES()) - functions->glGenerateMipmap(target); + q->functions()->glGenerateMipmap(target); #ifndef QT_NO_DEBUG GLenum error = glGetError(); if (error != GL_NO_ERROR) { -- cgit v1.2.3