diff --git a/src/dxvk/hud/dxvk_hud.h b/src/dxvk/hud/dxvk_hud.h index 75fc6b4a9..6e57046a4 100644 --- a/src/dxvk/hud/dxvk_hud.h +++ b/src/dxvk/hud/dxvk_hud.h @@ -48,8 +48,8 @@ namespace dxvk::hud { * \param [in] args Constructor arguments */ template - void addItem(const char* name, int32_t at, Args... args) { - m_hudItems.add(name, at, std::forward(args)...); + Rc addItem(const char* name, int32_t at, Args... args) { + return m_hudItems.add(name, at, std::forward(args)...); } /** diff --git a/src/dxvk/hud/dxvk_hud_item.h b/src/dxvk/hud/dxvk_hud_item.h index 238991fa8..749c12172 100644 --- a/src/dxvk/hud/dxvk_hud_item.h +++ b/src/dxvk/hud/dxvk_hud_item.h @@ -91,7 +91,7 @@ namespace dxvk::hud { * \param [in] args Constructor arguments */ template - void add(const char* name, int32_t at, Args... args) { + Rc add(const char* name, int32_t at, Args... args) { bool enable = m_enableFull; if (!enable) { @@ -102,10 +102,14 @@ namespace dxvk::hud { if (at < 0 || at > int32_t(m_items.size())) at = m_items.size(); + Rc item; + if (enable) { - m_items.insert(m_items.begin() + at, - new T(std::forward(args)...)); + item = new T(std::forward(args)...); + m_items.insert(m_items.begin() + at, item); } + + return item; } template