1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

[hud] Add parameter to allow placing HUD items

This commit is contained in:
Philip Rebohle 2020-01-28 13:57:56 +01:00 committed by Joshie
parent 588beb5b2f
commit 38ad868214
4 changed files with 22 additions and 16 deletions

View File

@ -1024,7 +1024,7 @@ namespace dxvk {
m_hud = hud::Hud::createHud(m_device);
if (m_hud != nullptr)
m_hud->addItem<hud::HudSamplerCount>("samplers", m_parent);
m_hud->addItem<hud::HudSamplerCount>("samplers", -1, m_parent);
}

View File

@ -29,16 +29,16 @@ namespace dxvk::hud {
| VK_COLOR_COMPONENT_B_BIT
| VK_COLOR_COMPONENT_A_BIT;
addItem<HudVersionItem>("version");
addItem<HudDeviceInfoItem>("devinfo", m_device);
addItem<HudFpsItem>("fps");
addItem<HudFrameTimeItem>("frametimes");
addItem<HudSubmissionStatsItem>("submissions", device);
addItem<HudDrawCallStatsItem>("drawcalls", device);
addItem<HudPipelineStatsItem>("pipelines", device);
addItem<HudMemoryStatsItem>("memory", device);
addItem<HudGpuLoadItem>("gpuload", device);
addItem<HudCompilerActivityItem>("compiler", device);
addItem<HudVersionItem>("version", -1);
addItem<HudDeviceInfoItem>("devinfo", -1, m_device);
addItem<HudFpsItem>("fps", -1);
addItem<HudFrameTimeItem>("frametimes", -1);
addItem<HudSubmissionStatsItem>("submissions", -1, device);
addItem<HudDrawCallStatsItem>("drawcalls", -1, device);
addItem<HudPipelineStatsItem>("pipelines", -1, device);
addItem<HudMemoryStatsItem>("memory", -1, device);
addItem<HudGpuLoadItem>("gpuload", -1, device);
addItem<HudCompilerActivityItem>("compiler", -1, device);
}

View File

@ -57,8 +57,8 @@ namespace dxvk::hud {
* \param [in] args Constructor arguments
*/
template<typename T, typename... Args>
void addItem(const char* name, Args... args) {
m_hudItems.add<T>(name, std::forward<Args>(args)...);
void addItem(const char* name, int32_t at, Args... args) {
m_hudItems.add<T>(name, at, std::forward<Args>(args)...);
}
/**

View File

@ -76,10 +76,11 @@ namespace dxvk::hud {
*
* \tparam T The HUD item type
* \param [in] name HUD item name
* \param [in] at Position at which to insert the item
* \param [in] args Constructor arguments
*/
template<typename T, typename... Args>
void add(const char* name, Args... args) {
void add(const char* name, int32_t at, Args... args) {
bool enable = m_enableFull;
if (!enable) {
@ -87,8 +88,13 @@ namespace dxvk::hud {
enable = entry != m_enabled.end();
}
if (enable)
m_items.push_back(new T(std::forward<Args>(args)...));
if (at < 0 || at > int32_t(m_items.size()))
at = m_items.size();
if (enable) {
m_items.insert(m_items.begin() + at,
new T(std::forward<Args>(args)...));
}
}
private: