mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 05:20:45 +00:00
Implement a Performance Counter Viewer pane, hook up selection dialog
This commit is contained in:
committed by
baldurk
parent
7d15d75638
commit
03343239c7
@@ -40,6 +40,7 @@
|
||||
#include "Windows/Dialogs/LiveCapture.h"
|
||||
#include "Windows/EventBrowser.h"
|
||||
#include "Windows/MainWindow.h"
|
||||
#include "Windows/PerformanceCounterViewer.h"
|
||||
#include "Windows/PipelineState/PipelineStateViewer.h"
|
||||
#include "Windows/PixelHistoryView.h"
|
||||
#include "Windows/PythonShell.h"
|
||||
@@ -732,6 +733,18 @@ IDebugMessageView *CaptureContext::GetDebugMessageView()
|
||||
return m_DebugMessageView;
|
||||
}
|
||||
|
||||
IPerformanceCounterViewer *CaptureContext::GetPerformanceCounterViewer()
|
||||
{
|
||||
if(m_PerformanecCounterViewer)
|
||||
return m_PerformanecCounterViewer;
|
||||
|
||||
m_PerformanecCounterViewer = new PerformanceCounterViewer(*this, m_MainWindow);
|
||||
m_PerformanecCounterViewer->setObjectName(lit("performanceCounterViewer"));
|
||||
setupDockWindow(m_PerformanecCounterViewer);
|
||||
|
||||
return m_PerformanecCounterViewer;
|
||||
}
|
||||
|
||||
IStatisticsViewer *CaptureContext::GetStatisticsViewer()
|
||||
{
|
||||
if(m_StatisticsViewer)
|
||||
@@ -803,6 +816,11 @@ void CaptureContext::ShowDebugMessageView()
|
||||
m_MainWindow->showDebugMessageView();
|
||||
}
|
||||
|
||||
void CaptureContext::ShowPerformanceCounterViewer()
|
||||
{
|
||||
m_MainWindow->showPerformanceCounterViewer();
|
||||
}
|
||||
|
||||
void CaptureContext::ShowStatisticsViewer()
|
||||
{
|
||||
m_MainWindow->showStatisticsViewer();
|
||||
|
||||
@@ -45,6 +45,7 @@ class BufferViewer;
|
||||
class TextureViewer;
|
||||
class CaptureDialog;
|
||||
class DebugMessageView;
|
||||
class PerformanceCounterViewer;
|
||||
class StatisticsViewer;
|
||||
class TimelineBar;
|
||||
class PythonShell;
|
||||
@@ -133,6 +134,7 @@ public:
|
||||
IPipelineStateViewer *GetPipelineViewer() override;
|
||||
ICaptureDialog *GetCaptureDialog() override;
|
||||
IDebugMessageView *GetDebugMessageView() override;
|
||||
IPerformanceCounterViewer *GetPerformanceCounterViewer() override;
|
||||
IStatisticsViewer *GetStatisticsViewer() override;
|
||||
ITimelineBar *GetTimelineBar() override;
|
||||
IPythonShell *GetPythonShell() override;
|
||||
@@ -144,6 +146,7 @@ public:
|
||||
bool HasMeshPreview() override { return m_MeshPreview != NULL; }
|
||||
bool HasCaptureDialog() override { return m_CaptureDialog != NULL; }
|
||||
bool HasDebugMessageView() override { return m_DebugMessageView != NULL; }
|
||||
bool HasPerformanceCounterViewer() override { return m_PerformanecCounterViewer != NULL; }
|
||||
bool HasStatisticsViewer() override { return m_StatisticsViewer != NULL; }
|
||||
bool HasTimelineBar() override { return m_TimelineBar != NULL; }
|
||||
bool HasPythonShell() override { return m_PythonShell != NULL; }
|
||||
@@ -154,6 +157,7 @@ public:
|
||||
void ShowPipelineViewer() override;
|
||||
void ShowCaptureDialog() override;
|
||||
void ShowDebugMessageView() override;
|
||||
void ShowPerformanceCounterViewer() override;
|
||||
void ShowStatisticsViewer() override;
|
||||
void ShowTimelineBar() override;
|
||||
void ShowPythonShell() override;
|
||||
@@ -278,6 +282,7 @@ private:
|
||||
PipelineStateViewer *m_PipelineViewer = NULL;
|
||||
CaptureDialog *m_CaptureDialog = NULL;
|
||||
DebugMessageView *m_DebugMessageView = NULL;
|
||||
PerformanceCounterViewer *m_PerformanecCounterViewer = NULL;
|
||||
StatisticsViewer *m_StatisticsViewer = NULL;
|
||||
TimelineBar *m_TimelineBar = NULL;
|
||||
PythonShell *m_PythonShell = NULL;
|
||||
|
||||
@@ -1147,6 +1147,13 @@ as well as messages generated during replay and analysis.
|
||||
)");
|
||||
virtual IDebugMessageView *GetDebugMessageView() = 0;
|
||||
|
||||
DOCUMENT(R"(Retrieve the current singleton :class:`PerformanceCounterViewer`.
|
||||
|
||||
:return: The current window, which is created (but not shown) it there wasn't one open.
|
||||
:rtype: PerformanceCounterViewer
|
||||
)");
|
||||
virtual IPerformanceCounterViewer *GetPerformanceCounterViewer() = 0;
|
||||
|
||||
DOCUMENT(R"(Retrieve the current singleton :class:`StatisticsViewer`.
|
||||
|
||||
:return: The current window, which is created (but not shown) it there wasn't one open.
|
||||
@@ -1217,6 +1224,13 @@ as well as messages generated during replay and analysis.
|
||||
)");
|
||||
virtual bool HasDebugMessageView() = 0;
|
||||
|
||||
DOCUMENT(R"(Check if there is a current :class:`PerformanceCounterViewer` open.
|
||||
|
||||
:return: ``True`` if there is a window open.
|
||||
:rtype: ``bool``
|
||||
)");
|
||||
virtual bool HasPerformanceCounterViewer() = 0;
|
||||
|
||||
DOCUMENT(R"(Check if there is a current :class:`StatisticsViewer` open.
|
||||
|
||||
:return: ``True`` if there is a window open.
|
||||
@@ -1253,6 +1267,10 @@ as well as messages generated during replay and analysis.
|
||||
DOCUMENT(
|
||||
"Raise the current :class:`DebugMessageView`, showing it in the default place if needed.");
|
||||
virtual void ShowDebugMessageView() = 0;
|
||||
DOCUMENT(
|
||||
"Raise the current :class:`PerformanceCounterViewer`, showing it in the default place if "
|
||||
"needed.");
|
||||
virtual void ShowPerformanceCounterViewer() = 0;
|
||||
DOCUMENT(
|
||||
"Raise the current :class:`StatisticsViewer`, showing it in the default place if needed.");
|
||||
virtual void ShowStatisticsViewer() = 0;
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
/******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016-2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016-2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#include "PerformanceCounterSelection.h"
|
||||
#include "Code/CaptureContext.h"
|
||||
@@ -98,17 +98,19 @@ PerformanceCounterSelection::PerformanceCounterSelection(ICaptureContext &ctx, Q
|
||||
// Add
|
||||
auto listItem = new QListWidgetItem(ui->enabledCounters);
|
||||
listItem->setText(item->text(0));
|
||||
m_SelectedCounters.insert(d.toInt(), listItem);
|
||||
m_SelectedCounters.insert(d.toUInt(), listItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove
|
||||
auto listItem = m_SelectedCounters.take(d.toInt());
|
||||
auto listItem = m_SelectedCounters.take(d.toUInt());
|
||||
delete listItem;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
connect(ui->sampleCounters, &QPushButton::pressed, [&]() -> void { this->accept(); });
|
||||
|
||||
ui->counterTree->setMouseTracking(true);
|
||||
|
||||
auto showCounters = [&](const QVector<CounterDescription> &counters) -> void {
|
||||
@@ -153,7 +155,7 @@ PerformanceCounterSelection::PerformanceCounterSelection(ICaptureContext &ctx, Q
|
||||
auto counterItem = new QTreeWidgetItem{categoryItem};
|
||||
counterItem->setText(0, desc.name);
|
||||
counterItem->setData(0, Qt::UserRole + 1, desc.description);
|
||||
counterItem->setData(0, Qt::UserRole + 2, (int32_t)desc.counterID);
|
||||
counterItem->setData(0, Qt::UserRole + 2, (uint32_t)desc.counterID);
|
||||
counterItem->setCheckState(0, Qt::Unchecked);
|
||||
}
|
||||
};
|
||||
@@ -173,3 +175,8 @@ PerformanceCounterSelection::~PerformanceCounterSelection()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
QList<uint32_t> PerformanceCounterSelection::GetSelectedCounters() const
|
||||
{
|
||||
return m_SelectedCounters.keys();
|
||||
}
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
/******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#include <QDialog>
|
||||
#include <QMap>
|
||||
@@ -41,9 +41,11 @@ public:
|
||||
explicit PerformanceCounterSelection(ICaptureContext &ctx, QWidget *parent = 0);
|
||||
~PerformanceCounterSelection();
|
||||
|
||||
QList<uint32_t> GetSelectedCounters() const;
|
||||
|
||||
private:
|
||||
Ui::PerformanceCounterSelection *ui;
|
||||
|
||||
ICaptureContext &m_Ctx;
|
||||
QMap<int, QListWidgetItem *> m_SelectedCounters;
|
||||
QMap<uint32_t, QListWidgetItem *> m_SelectedCounters;
|
||||
};
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
#include "Windows/Dialogs/AboutDialog.h"
|
||||
#include "Windows/Dialogs/CaptureDialog.h"
|
||||
#include "Windows/Dialogs/LiveCapture.h"
|
||||
#include "Windows/Dialogs/PerformanceCounterSelection.h"
|
||||
#include "Windows/Dialogs/RemoteManager.h"
|
||||
#include "Windows/Dialogs/SettingsDialog.h"
|
||||
#include "Windows/Dialogs/SuggestRemoteDialog.h"
|
||||
@@ -1647,8 +1646,12 @@ void MainWindow::on_actionShow_Tips_triggered()
|
||||
|
||||
void MainWindow::on_action_Counter_Viewer_triggered()
|
||||
{
|
||||
PerformanceCounterSelection pcs(m_Ctx, this);
|
||||
RDDialog::show(&pcs);
|
||||
QWidget *performanceCounterViewer = m_Ctx.GetPerformanceCounterViewer()->Widget();
|
||||
|
||||
if(ui->toolWindowManager->toolWindows().contains(performanceCounterViewer))
|
||||
ToolWindowManager::raiseToolWindow(performanceCounterViewer);
|
||||
else
|
||||
ui->toolWindowManager->addToolWindow(performanceCounterViewer, mainToolArea());
|
||||
}
|
||||
|
||||
void MainWindow::saveLayout_triggered()
|
||||
|
||||
@@ -408,7 +408,7 @@
|
||||
</action>
|
||||
<action name="action_Counter_Viewer">
|
||||
<property name="text">
|
||||
<string>Counter selection</string>
|
||||
<string>Performance Counter Viewer</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
/******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#include "PerformanceCounterViewer.h"
|
||||
#include "Windows/Dialogs/PerformanceCounterSelection.h"
|
||||
#include "ui_PerformanceCounterViewer.h"
|
||||
|
||||
PerformanceCounterViewer::PerformanceCounterViewer(ICaptureContext &ctx, QWidget *parent)
|
||||
@@ -31,6 +32,26 @@ PerformanceCounterViewer::PerformanceCounterViewer(ICaptureContext &ctx, QWidget
|
||||
ui->setupUi(this);
|
||||
|
||||
m_Ctx.AddLogViewer(this);
|
||||
|
||||
connect(ui->captureCounters, &QToolButton::pressed, [=]() -> void {
|
||||
PerformanceCounterSelection pcs(m_Ctx, this);
|
||||
if(RDDialog::show(&pcs) == QDialog::Accepted)
|
||||
{
|
||||
const QList<uint32_t> selectedCounters = pcs.GetSelectedCounters();
|
||||
|
||||
m_Ctx.Replay().AsyncInvoke([=](IReplayController *controller) -> void {
|
||||
rdctype::array<GPUCounter> counters;
|
||||
counters.create(selectedCounters.size());
|
||||
|
||||
for(int i = 0; i < selectedCounters.size(); ++i)
|
||||
{
|
||||
counters[i] = (GPUCounter)selectedCounters[i];
|
||||
}
|
||||
|
||||
controller->FetchCounters(counters);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
PerformanceCounterViewer::~PerformanceCounterViewer()
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
/******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -202,6 +202,11 @@ struct CaptureContextInvoker : ICaptureContext
|
||||
{
|
||||
return InvokeRetFunction<IDebugMessageView *>(&ICaptureContext::GetDebugMessageView);
|
||||
}
|
||||
virtual IPerformanceCounterViewer *GetPerformanceCounterViewer() override
|
||||
{
|
||||
return InvokeRetFunction<IPerformanceCounterViewer *>(
|
||||
&ICaptureContext::GetPerformanceCounterViewer);
|
||||
}
|
||||
virtual IStatisticsViewer *GetStatisticsViewer() override
|
||||
{
|
||||
return InvokeRetFunction<IStatisticsViewer *>(&ICaptureContext::GetStatisticsViewer);
|
||||
@@ -242,6 +247,10 @@ struct CaptureContextInvoker : ICaptureContext
|
||||
{
|
||||
return InvokeRetFunction<bool>(&ICaptureContext::HasDebugMessageView);
|
||||
}
|
||||
virtual bool HasPerformanceCounterViewer() override
|
||||
{
|
||||
return InvokeRetFunction<bool>(&ICaptureContext::HasPerformanceCounterViewer);
|
||||
}
|
||||
virtual bool HasStatisticsViewer() override
|
||||
{
|
||||
return InvokeRetFunction<bool>(&ICaptureContext::HasStatisticsViewer);
|
||||
@@ -280,6 +289,10 @@ struct CaptureContextInvoker : ICaptureContext
|
||||
{
|
||||
InvokeVoidFunction(&ICaptureContext::ShowDebugMessageView);
|
||||
}
|
||||
virtual void ShowPerformanceCounterViewer() override
|
||||
{
|
||||
InvokeVoidFunction(&ICaptureContext::ShowPerformanceCounterViewer);
|
||||
}
|
||||
virtual void ShowStatisticsViewer() override
|
||||
{
|
||||
InvokeVoidFunction(&ICaptureContext::ShowStatisticsViewer);
|
||||
|
||||
Reference in New Issue
Block a user