From 2b7753af6756b9124393973bc60ce7e70b92c425 Mon Sep 17 00:00:00 2001 From: mweber Date: Wed, 6 Nov 2019 16:33:50 +0100 Subject: [PATCH] Implemented PerformanceCounterViewer::OnEventChanged handling Implemented PerformanceCounterViewer::OnEventChanged to handle global event changes. Behaviour can be toggled on/off via a new 'Sync Views' button similar to the Mesh Viewer; the default is off. --- .../Windows/PerformanceCounterViewer.cpp | 18 ++++++++++ qrenderdoc/Windows/PerformanceCounterViewer.h | 2 +- .../Windows/PerformanceCounterViewer.ui | 33 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.cpp b/qrenderdoc/Windows/PerformanceCounterViewer.cpp index 63b5d66fa..11258b04d 100644 --- a/qrenderdoc/Windows/PerformanceCounterViewer.cpp +++ b/qrenderdoc/Windows/PerformanceCounterViewer.cpp @@ -281,6 +281,24 @@ void PerformanceCounterViewer::OnCaptureLoaded() ui->saveCSV->setEnabled(true); } +void PerformanceCounterViewer::OnEventChanged(uint32_t eventId) +{ + if(ui->syncViews->isChecked()) + { + const int numItems = (int)ui->counterResults->rowCount(); + for(int i = 0; i < numItems; ++i) + { + QTableWidgetItem *item = ui->counterResults->item(i, 0); + if(item->data(Qt::UserRole).toUInt() == eventId) + { + ui->counterResults->setCurrentItem(item); + ui->counterResults->scrollToItem(item); + break; + } + } + } +} + void PerformanceCounterViewer::on_counterResults_doubleClicked(const QModelIndex &index) { QTableWidgetItem *item = ui->counterResults->item(index.row(), 0); diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.h b/qrenderdoc/Windows/PerformanceCounterViewer.h index 809317b47..2b2305d95 100644 --- a/qrenderdoc/Windows/PerformanceCounterViewer.h +++ b/qrenderdoc/Windows/PerformanceCounterViewer.h @@ -48,7 +48,7 @@ public: void OnCaptureLoaded() override; void OnCaptureClosed() override; void OnSelectedEventChanged(uint32_t eventId) override {} - void OnEventChanged(uint32_t eventId) override {} + void OnEventChanged(uint32_t eventId) override; private slots: // automatic slots void on_counterResults_doubleClicked(const QModelIndex &index); diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.ui b/qrenderdoc/Windows/PerformanceCounterViewer.ui index 8ddfa2a4e..7d5c861cf 100644 --- a/qrenderdoc/Windows/PerformanceCounterViewer.ui +++ b/qrenderdoc/Windows/PerformanceCounterViewer.ui @@ -81,6 +81,39 @@ + + + + Sync Views + + + Sync Views + + + + :/arrow_join.png:/arrow_join.png + + + true + + + Qt::ToolButtonTextBesideIcon + + + true + + + Qt::NoArrow + + + + + + + Qt::Vertical + + +