]> git.cworth.org Git - apitrace/commitdiff
Avoid pointless data structure copying.
authorJosé Fonseca <jfonseca@vmware.com>
Sun, 31 Jul 2011 23:08:40 +0000 (00:08 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 31 Jul 2011 23:08:40 +0000 (00:08 +0100)
C++ makes life easy, but sure makes it easy to write inefficient code.

Probably more cases like this lying around.

gui/apitracecall.cpp
gui/apitracecall.h
gui/mainwindow.cpp

index 7119822776f187b05d7754e6bbcad287f6c9e4c8..271a38d684c10173edcf67efe33664de82b1b991 100644 (file)
@@ -661,12 +661,12 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
     }
 }
 
-QVariantMap ApiTraceState::parameters() const
+const QVariantMap & ApiTraceState::parameters() const
 {
     return m_parameters;
 }
 
-QMap<QString, QString> ApiTraceState::shaderSources() const
+const QMap<QString, QString> & ApiTraceState::shaderSources() const
 {
     return m_shaderSources;
 }
@@ -676,12 +676,12 @@ bool ApiTraceState::isEmpty() const
     return m_parameters.isEmpty();
 }
 
-QList<ApiTexture> ApiTraceState::textures() const
+const QList<ApiTexture> & ApiTraceState::textures() const
 {
     return m_textures;
 }
 
-QList<ApiFramebuffer> ApiTraceState::framebuffers() const
+const QList<ApiFramebuffer> & ApiTraceState::framebuffers() const
 {
     return m_framebuffers;
 }
index b7362eb521558a1a92c20948d1f58f06169be848..2b6e97c1d22c812aff94455cff62dab1552e817b 100644 (file)
@@ -135,10 +135,10 @@ public:
     explicit ApiTraceState(const QVariantMap &parseJson);
 
     bool isEmpty() const;
-    QVariantMap parameters() const;
-    QMap<QString, QString> shaderSources() const;
-    QList<ApiTexture> textures() const;
-    QList<ApiFramebuffer> framebuffers() const;
+    const QVariantMap & parameters() const;
+    const QMap<QString, QString> & shaderSources() const;
+    const QList<ApiTexture> & textures() const;
+    const QList<ApiFramebuffer> & framebuffers() const;
 
 private:
     QVariantMap m_parameters;
index 057168b1d76ba3e6793c017fbfcd475205640eb4..b0290ce7fc7e50b1fbcc7a61d37877df8e4d2dc9 100644 (file)
@@ -464,8 +464,6 @@ static void addSurfaceItem(const ApiSurface &surface,
 
 void MainWindow::fillStateForFrame()
 {
-    QVariantMap params;
-
     if (!m_selectedEvent || m_selectedEvent->state().isEmpty())
         return;
 
@@ -484,9 +482,8 @@ void MainWindow::fillStateForFrame()
 
     const ApiTraceState &state = m_selectedEvent->state();
     m_ui.stateTreeWidget->clear();
-    params = state.parameters();
     QList<QTreeWidgetItem *> items;
-    variantMapToItems(params, defaultParams, items);
+    variantMapToItems(state.parameters(), defaultParams, items);
     m_ui.stateTreeWidget->insertTopLevelItems(0, items);
 
     QMap<QString, QString> shaderSources = state.shaderSources();
@@ -496,6 +493,11 @@ void MainWindow::fillStateForFrame()
         m_sourcesWidget->setShaders(shaderSources);
     }
 
+    m_ui.uniformsTreeWidget->clear();
+    QList<QTreeWidgetItem *> uniformsItems;
+    variantMapToItems(state.uniforms, QVariantMap(), uniformsItems);
+    m_ui.uniformsTreeWidget->insertTopLevelItems(0, uniformsItems);
+
     const QList<ApiTexture> &textures =
         state.textures();
     const QList<ApiFramebuffer> &fbos =