Add console debugging for particles
authorAlan Alpert <alan.alpert@nokia.com>
Thu, 18 Aug 2011 06:01:58 +0000 (16:01 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 23 Aug 2011 05:31:38 +0000 (07:31 +0200)
Enable with the environment variable QML_PARTICLES_DEBUG.

Change-Id: I8aee2702e17f4ec6d18d8def9d57c5238d4c28ae
Reviewed-on: http://codereview.qt.nokia.com/3136
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
src/declarative/particles/qsgimageparticle.cpp
src/declarative/particles/qsgimageparticle_p.h

index 6827d2d..43e44e2 100644 (file)
@@ -54,6 +54,9 @@
 
 QT_BEGIN_NAMESPACE
 
+//###Switch to define later, for now user-friendly (no compilation) debugging is worth it
+DEFINE_BOOL_CONFIG_OPTION(qmlParticlesDebug, QML_PARTICLES_DEBUG)
+
 const float CONV = 0.017453292519943295;
 class TabledMaterialData
 {
@@ -464,8 +467,10 @@ QSGImageParticle::QSGImageParticle(QSGItem* parent)
     , m_bloat(false)
     , perfLevel(Unknown)
     , m_lastLevel(Unknown)
+    , m_debugMode(false)
 {
     setFlag(ItemHasContents);
+    m_debugMode = qmlParticlesDebug();
 }
 
 QSGImageParticle::~QSGImageParticle()
@@ -1067,7 +1072,16 @@ void QSGImageParticle::prepareNextFrame()
         m_rootNode = buildParticleNodes();
         if (m_rootNode == 0)
             return;
-        //qDebug() << "Feature level: " << perfLevel;
+        if(m_debugMode){
+            qDebug() << "QSGImageParticle Feature level: " << perfLevel;
+            qDebug() << "QSGImageParticle Nodes: ";
+            int count = 0;
+            foreach(int i, m_nodes.keys()){
+                qDebug() << "Group " << i << " (" << m_system->m_groupData[i]->size() << " particles)";
+                count += m_system->m_groupData[i]->size();
+            }
+            qDebug() << "Total count: " << count;
+        }
     }
     qint64 timeStamp = m_system->systemSync(this);
 
index fe799f5..ae80434 100644 (file)
@@ -341,6 +341,7 @@ private:
     PerformanceLevel perfLevel;
 
     PerformanceLevel m_lastLevel;
+    bool m_debugMode;
 };
 
 QT_END_NAMESPACE