diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2012-05-02 10:10:39 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-02 11:36:36 +0200 |
commit | b17814e6ffcd048da7562d62ecad1bc38db7d980 (patch) | |
tree | 8146f16e5d7a3d518da573b07121d46a5b78cdf8 /src/gui/opengl/qopenglshaderprogram.cpp | |
parent | c73ddb0c0eed091a64b560ab6c453cf8160f4ee4 (diff) |
Allow creation of QOpenGLShaderProgram without a current context
This change prevents the qWarning() in QOpenGLFunctions from being
triggered when creating a QOpenGLShaderProgram object without a current
QOpenGLContext. This is a common case especially when the shader program
is a member variable of a class.
It now relies upon the QOpenGLShaderProgram::init() function to resolve
the GL function pointers when the shader program is first used which of
course should be done with an active context.
Change-Id: Ib7dc345593f2a70d72ef8f650151cc90001058ca
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui/opengl/qopenglshaderprogram.cpp')
-rw-r--r-- | src/gui/opengl/qopenglshaderprogram.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gui/opengl/qopenglshaderprogram.cpp b/src/gui/opengl/qopenglshaderprogram.cpp index 8ee2928a1f..c0899e5a41 100644 --- a/src/gui/opengl/qopenglshaderprogram.cpp +++ b/src/gui/opengl/qopenglshaderprogram.cpp @@ -510,7 +510,7 @@ class QOpenGLShaderProgramPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QOpenGLShaderProgram) public: - QOpenGLShaderProgramPrivate(QOpenGLContext *ctx) + QOpenGLShaderProgramPrivate() : programGuard(0) , linked(false) , inited(false) @@ -518,7 +518,7 @@ public: , geometryVertexCount(64) , geometryInputType(0) , geometryOutputType(0) - , glfuncs(new QOpenGLFunctions(ctx)) + , glfuncs(new QOpenGLFunctions) { } ~QOpenGLShaderProgramPrivate(); @@ -574,7 +574,7 @@ bool QOpenGLShaderProgramPrivate::hasShader(QOpenGLShader::ShaderType type) cons \sa addShader() */ QOpenGLShaderProgram::QOpenGLShaderProgram(QObject *parent) - : QObject(*new QOpenGLShaderProgramPrivate(QOpenGLContext::currentContext()), parent) + : QObject(*new QOpenGLShaderProgramPrivate, parent) { } |