diff options
Diffstat (limited to 'src/declarative/scenegraph')
4 files changed, 25 insertions, 10 deletions
diff --git a/src/declarative/scenegraph/coreapi/qsgdefaultrenderer.cpp b/src/declarative/scenegraph/coreapi/qsgdefaultrenderer.cpp index 1e6b6919cb..7279ff0216 100644 --- a/src/declarative/scenegraph/coreapi/qsgdefaultrenderer.cpp +++ b/src/declarative/scenegraph/coreapi/qsgdefaultrenderer.cpp @@ -158,7 +158,7 @@ IndexGeometryNodePair IndexGeometryNodePairHeap::pop() } -QMLRenderer::QMLRenderer(QSGContext *context) +QSGDefaultRenderer::QSGDefaultRenderer(QSGContext *context) : QSGRenderer(context) , m_opaqueNodes(64) , m_transparentNodes(64) @@ -175,7 +175,7 @@ QMLRenderer::QMLRenderer(QSGContext *context) #endif } -void QMLRenderer::nodeChanged(QSGNode *node, QSGNode::DirtyFlags flags) +void QSGDefaultRenderer::nodeChanged(QSGNode *node, QSGNode::DirtyFlags flags) { QSGRenderer::nodeChanged(node, flags); @@ -190,7 +190,7 @@ void QMLRenderer::nodeChanged(QSGNode *node, QSGNode::DirtyFlags flags) m_needs_sorting = true; } -void QMLRenderer::render() +void QSGDefaultRenderer::render() { #if defined (QML_RUNTIME_TESTING) static bool dumpTree = qApp->arguments().contains(QLatin1String("--dump-tree")); @@ -336,18 +336,18 @@ void QMLRenderer::render() } -void QMLRenderer::setSortFrontToBackEnabled(bool sort) +void QSGDefaultRenderer::setSortFrontToBackEnabled(bool sort) { printf("setting sorting to... %d\n", sort); m_sort_front_to_back = sort; } -bool QMLRenderer::isSortFrontToBackEnabled() const +bool QSGDefaultRenderer::isSortFrontToBackEnabled() const { return m_sort_front_to_back; } -void QMLRenderer::buildLists(QSGNode *node) +void QSGDefaultRenderer::buildLists(QSGNode *node) { if (node->isSubtreeBlocked()) return; @@ -420,7 +420,7 @@ void QMLRenderer::buildLists(QSGNode *node) } } -void QMLRenderer::renderNodes(const QDataBuffer<QSGGeometryNode *> &list) +void QSGDefaultRenderer::renderNodes(const QDataBuffer<QSGGeometryNode *> &list) { const float scale = 1.0f / m_currentRenderOrder; int count = list.size(); diff --git a/src/declarative/scenegraph/coreapi/qsgdefaultrenderer_p.h b/src/declarative/scenegraph/coreapi/qsgdefaultrenderer_p.h index dc2d089391..f2adb00391 100644 --- a/src/declarative/scenegraph/coreapi/qsgdefaultrenderer_p.h +++ b/src/declarative/scenegraph/coreapi/qsgdefaultrenderer_p.h @@ -77,11 +77,11 @@ private: }; -class QMLRenderer : public QSGRenderer +class QSGDefaultRenderer : public QSGRenderer { Q_OBJECT public: - QMLRenderer(QSGContext *context); + QSGDefaultRenderer(QSGContext *context); void render(); diff --git a/src/declarative/scenegraph/coreapi/qsgrenderer.cpp b/src/declarative/scenegraph/coreapi/qsgrenderer.cpp index c6afb3154b..f56bf9a918 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(); diff --git a/src/declarative/scenegraph/qsgcontext.cpp b/src/declarative/scenegraph/qsgcontext.cpp index 616474748d..682b514b9c 100644 --- a/src/declarative/scenegraph/qsgcontext.cpp +++ b/src/declarative/scenegraph/qsgcontext.cpp @@ -307,7 +307,7 @@ QSGRenderer *QSGContext::createRenderer() { // ### Do something with this before release... static bool doFrontToBack = qApp->arguments().contains(QLatin1String("--opaque-front-to-back")); - QMLRenderer *renderer = new QMLRenderer(this); + QSGDefaultRenderer *renderer = new QSGDefaultRenderer(this); if (doFrontToBack) { printf("QSGContext: Sorting opaque nodes front to back...\n"); renderer->setSortFrontToBackEnabled(true); |