]> git.cworth.org Git - apitrace/blobdiff - gui/apitracecall.cpp
Skip over filtered calls when searching.
[apitrace] / gui / apitracecall.cpp
index 8d95f167fd44607f7d21157316ecb367c59fd0c0..67fc955957805308f71fb8b9c0ac06c37933fe4e 100644 (file)
@@ -537,6 +537,22 @@ const QList<ApiFramebuffer> & ApiTraceState::framebuffers() const
     return m_framebuffers;
 }
 
+ApiFramebuffer ApiTraceState::colorBuffer() const
+{
+    foreach (ApiFramebuffer fbo, m_framebuffers) {
+        if (fbo.type() == QLatin1String("GL_BACK")) {
+            return fbo;
+        }
+    }
+    foreach (ApiFramebuffer fbo, m_framebuffers) {
+        if (fbo.type() == QLatin1String("GL_FRONT")) {
+            return fbo;
+        }
+    }
+    return ApiFramebuffer();
+}
+
+
 ApiTraceCallSignature::ApiTraceCallSignature(const QString &name,
                                              const QStringList &argNames)
     : m_name(name),
@@ -657,11 +673,8 @@ QString ApiTraceCall::error() const
 void ApiTraceCall::setError(const QString &msg)
 {
     if (m_error != msg) {
-        ApiTrace *trace = parentTrace();
         m_error = msg;
         m_richText = QString();
-        if (trace)
-            trace->callError(this);
     }
 }
 
@@ -932,7 +945,8 @@ ApiTraceFrame::ApiTraceFrame(ApiTrace *parentTrace)
       m_parentTrace(parentTrace),
       m_binaryDataSize(0),
       m_loaded(false),
-      m_callsToLoad(0)
+      m_callsToLoad(0),
+      m_lastCallIndex(0)
 {
 }
 
@@ -946,23 +960,23 @@ QStaticText ApiTraceFrame::staticText() const
     if (m_staticText && !m_staticText->text().isEmpty())
         return *m_staticText;
 
-    QString richText;
+    QString richText = QObject::tr(
+                "<span style=\"font-weight:bold\">Frame %1</span>"
+                "&nbsp;&nbsp;&nbsp;"
+                "<span style=\"font-style:italic;font-size:small;font-weight:lighter;\"> "
+                "(%2 calls)</span>")
+            .arg(number)
+            .arg(m_loaded ? m_calls.count() : m_callsToLoad);
 
     //mark the frame if it uploads more than a meg a frame
     if (m_binaryDataSize > (1024*1024)) {
         richText =
             QObject::tr(
-                "<span style=\"font-weight:bold;\">"
-                "Frame&nbsp;%1</span>"
+                "%1"
                 "<span style=\"font-style:italic;\">"
                 "&nbsp;&nbsp;&nbsp;&nbsp;(%2MB)</span>")
-            .arg(number)
+            .arg(richText)
             .arg(double(m_binaryDataSize / (1024.*1024.)), 0, 'g', 2);
-    } else {
-        richText =
-            QObject::tr(
-                "<span style=\"font-weight:bold\">Frame %1</span>")
-            .arg(number);
     }
 
     if (!m_staticText)
@@ -1043,9 +1057,11 @@ void ApiTraceFrame::setCalls(const QVector<ApiTraceCall*> &calls,
     m_calls = calls;
     m_binaryDataSize = binaryDataSize;
     m_loaded = true;
+    delete m_staticText;
+    m_staticText = 0;
 }
 
-bool ApiTraceFrame::loaded() const
+bool ApiTraceFrame::isLoaded() const
 {
     return m_loaded;
 }
@@ -1113,3 +1129,17 @@ ApiTraceFrame::findPrevCall(ApiTraceCall *from,
     }
     return 0;
 }
+
+void ApiTraceFrame::setLastCallIndex(unsigned index)
+{
+    m_lastCallIndex = index;
+}
+
+unsigned ApiTraceFrame::lastCallIndex() const
+{
+    if (m_loaded && !m_calls.isEmpty()) {
+        return m_calls.last()->index();
+    } else {
+        return m_lastCallIndex;
+    }
+}