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); m_hud = hud::Hud::createHud(m_device);
if (m_hud != nullptr) 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_B_BIT
| VK_COLOR_COMPONENT_A_BIT; | VK_COLOR_COMPONENT_A_BIT;
addItem<HudVersionItem>("version"); addItem<HudVersionItem>("version", -1);
addItem<HudDeviceInfoItem>("devinfo", m_device); addItem<HudDeviceInfoItem>("devinfo", -1, m_device);
addItem<HudFpsItem>("fps"); addItem<HudFpsItem>("fps", -1);
addItem<HudFrameTimeItem>("frametimes"); addItem<HudFrameTimeItem>("frametimes", -1);
addItem<HudSubmissionStatsItem>("submissions", device); addItem<HudSubmissionStatsItem>("submissions", -1, device);
addItem<HudDrawCallStatsItem>("drawcalls", device); addItem<HudDrawCallStatsItem>("drawcalls", -1, device);
addItem<HudPipelineStatsItem>("pipelines", device); addItem<HudPipelineStatsItem>("pipelines", -1, device);
addItem<HudMemoryStatsItem>("memory", device); addItem<HudMemoryStatsItem>("memory", -1, device);
addItem<HudGpuLoadItem>("gpuload", device); addItem<HudGpuLoadItem>("gpuload", -1, device);
addItem<HudCompilerActivityItem>("compiler", device); addItem<HudCompilerActivityItem>("compiler", -1, device);
} }

View File

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