aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2011-06-15 18:55:41 +1000
committerAlan Alpert <alan.alpert@nokia.com>2011-06-15 18:55:41 +1000
commit4c6e4cbe7d8a4d3e7d4cab8fb9787f4c781bed50 (patch)
tree02e454a5ea4c13ee98ff8dbb2ba541f0d6dac8d3
parentfab0da3853efc5ef2f1a507f7d054b8a0dd3b9ac (diff)
parent4c0f5e2da92e861228abc89e4b9b116803a761ce (diff)
Merge branch 'qtquick2' of scm.dev.nokia.troll.no:qt/qtdeclarative-staging into qtquick2
-rw-r--r--src/declarative/items/qsgshadereffectitem.cpp1
-rw-r--r--src/declarative/items/qsgshadereffectnode.cpp1
-rw-r--r--src/declarative/scenegraph/coreapi/qsgrenderer.cpp15
3 files changed, 17 insertions, 0 deletions
diff --git a/src/declarative/items/qsgshadereffectitem.cpp b/src/declarative/items/qsgshadereffectitem.cpp
index 44e075c6f7..3fae0f15fd 100644
--- a/src/declarative/items/qsgshadereffectitem.cpp
+++ b/src/declarative/items/qsgshadereffectitem.cpp
@@ -540,6 +540,7 @@ QSGNode *QSGShaderEffectItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeD
s.fragmentCode = qt_default_fragment_code;
if (s.vertexCode.isEmpty())
s.vertexCode = qt_default_vertex_code;
+ s.className = metaObject()->className();
m_material.setProgramSource(s);
node->markDirty(QSGNode::DirtyMaterial);
diff --git a/src/declarative/items/qsgshadereffectnode.cpp b/src/declarative/items/qsgshadereffectnode.cpp
index 74cd995d0d..5d3efb934c 100644
--- a/src/declarative/items/qsgshadereffectnode.cpp
+++ b/src/declarative/items/qsgshadereffectnode.cpp
@@ -84,6 +84,7 @@ QSGCustomMaterialShader::QSGCustomMaterialShader(const QSGShaderEffectMaterialKe
void QSGCustomMaterialShader::deactivate()
{
+ QSGMaterialShader::deactivate();
glDisable(GL_CULL_FACE);
}
diff --git a/src/declarative/scenegraph/coreapi/qsgrenderer.cpp b/src/declarative/scenegraph/coreapi/qsgrenderer.cpp
index dbf704b64a..cc24cc066b 100644
--- a/src/declarative/scenegraph/coreapi/qsgrenderer.cpp
+++ b/src/declarative/scenegraph/coreapi/qsgrenderer.cpp
@@ -229,6 +229,21 @@ void QSGRenderer::renderScene(const Bindable &bindable)
int bindTime = frameTimer.elapsed();
#endif
+#ifndef QT_NO_DEBUG
+ // Sanity check that attribute registers are disabled
+ {
+ GLint count;
+ glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &count);
+ GLint enabled;
+ for (int i=0; i<count; ++i) {
+ glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &enabled);
+ if (enabled) {
+ qWarning("QSGRenderer: attribute %d is enabled, this can lead to memory corruption and crashes.", i);
+ }
+ }
+ }
+#endif
+
render();
#ifdef QSG_RENDERER_TIMING
int renderTime = frameTimer.elapsed();