From 6b9d13306a7434abb30ea20698b6cf0c3574de3c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 1 Aug 2011 00:08:40 +0100 Subject: [PATCH] Avoid pointless data structure copying. C++ makes life easy, but sure makes it easy to write inefficient code. Probably more cases like this lying around. --- gui/apitracecall.cpp | 8 ++++---- gui/apitracecall.h | 8 ++++---- gui/mainwindow.cpp | 10 ++++++---- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index 7119822..271a38d 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -661,12 +661,12 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson) } } -QVariantMap ApiTraceState::parameters() const +const QVariantMap & ApiTraceState::parameters() const { return m_parameters; } -QMap ApiTraceState::shaderSources() const +const QMap & ApiTraceState::shaderSources() const { return m_shaderSources; } @@ -676,12 +676,12 @@ bool ApiTraceState::isEmpty() const return m_parameters.isEmpty(); } -QList ApiTraceState::textures() const +const QList & ApiTraceState::textures() const { return m_textures; } -QList ApiTraceState::framebuffers() const +const QList & ApiTraceState::framebuffers() const { return m_framebuffers; } diff --git a/gui/apitracecall.h b/gui/apitracecall.h index b7362eb..2b6e97c 100644 --- a/gui/apitracecall.h +++ b/gui/apitracecall.h @@ -135,10 +135,10 @@ public: explicit ApiTraceState(const QVariantMap &parseJson); bool isEmpty() const; - QVariantMap parameters() const; - QMap shaderSources() const; - QList textures() const; - QList framebuffers() const; + const QVariantMap & parameters() const; + const QMap & shaderSources() const; + const QList & textures() const; + const QList & framebuffers() const; private: QVariantMap m_parameters; diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 057168b..b0290ce 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -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 items; - variantMapToItems(params, defaultParams, items); + variantMapToItems(state.parameters(), defaultParams, items); m_ui.stateTreeWidget->insertTopLevelItems(0, items); QMap shaderSources = state.shaderSources(); @@ -496,6 +493,11 @@ void MainWindow::fillStateForFrame() m_sourcesWidget->setShaders(shaderSources); } + m_ui.uniformsTreeWidget->clear(); + QList uniformsItems; + variantMapToItems(state.uniforms, QVariantMap(), uniformsItems); + m_ui.uniformsTreeWidget->insertTopLevelItems(0, uniformsItems); + const QList &textures = state.textures(); const QList &fbos = -- 2.43.0