diff options
author | Marko A. Niemelä <marko.a.niemela@nokia.com> | 2011-05-12 10:43:41 +0300 |
---|---|---|
committer | Marko A. Niemelä <marko.a.niemela@nokia.com> | 2011-05-12 10:43:41 +0300 |
commit | b066db1567969427d65100256cd3679d1f1dcbce (patch) | |
tree | df8f736174f2cc519becf7bacc9bebf36170d063 | |
parent | c20013d07ed50d1cd65a5d527e6197bfe9a643a5 (diff) | |
parent | df120ca52f2af5b453a88c2146f8382a793fdfbf (diff) |
Merge commit 'refs/merge-requests/2' of git@gitorious.org:qt-labs/qml1-shadersplugin into merge-requests/2
-rw-r--r-- | src/shadereffectitem.cpp | 13 | ||||
-rw-r--r-- | src/shadereffectitem.h | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/shadereffectitem.cpp b/src/shadereffectitem.cpp index 33b26b6..a32168e 100644 --- a/src/shadereffectitem.cpp +++ b/src/shadereffectitem.cpp @@ -210,6 +210,8 @@ ShaderEffectItem::ShaderEffectItem(QDeclarativeItem *parent) , m_respectsOpacity(false) , m_checkedViewportUpdateMode(false) , m_checkedOpenGL(false) + , m_checkedShaderPrograms(false) + , m_hasShaderPrograms(false) , m_mirrored(false) , m_defaultVertexShader(true) { @@ -389,6 +391,17 @@ void ShaderEffectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * const QGLContext *context = QGLContext::currentContext(); if (context) { + if (!m_checkedShaderPrograms) { + m_hasShaderPrograms = QGLShaderProgram::hasOpenGLShaderPrograms(context); + m_checkedShaderPrograms = true; + + if (!m_hasShaderPrograms) + qWarning() << "ShaderEffectItem::paint - Shader programs are not supported"; + } + + if ( !m_hasShaderPrograms ) + return; + checkViewportUpdateMode(); painter->save(); painter->beginNativePainting(); diff --git a/src/shadereffectitem.h b/src/shadereffectitem.h index 83fbaea..1d27543 100644 --- a/src/shadereffectitem.h +++ b/src/shadereffectitem.h @@ -139,6 +139,8 @@ private: bool m_respectsOpacity : 1; bool m_checkedViewportUpdateMode : 1; bool m_checkedOpenGL : 1; + bool m_checkedShaderPrograms : 1; + bool m_hasShaderPrograms : 1; bool m_mirrored : 1; bool m_defaultVertexShader : 1; }; |