Provide a renderer callback when the overlay data changes
This commit is contained in:
parent
947970e07b
commit
6ed512e762
7 changed files with 80 additions and 26 deletions
|
|
@ -1,25 +1,50 @@
|
|||
#include "overlaymanager.h"
|
||||
|
||||
OverlayManager::OverlayManager()
|
||||
using namespace Overlay;
|
||||
|
||||
OverlayManager::OverlayManager() :
|
||||
m_Renderer(nullptr)
|
||||
{
|
||||
memset(m_Overlays, 0, sizeof(m_Overlays));
|
||||
}
|
||||
|
||||
bool OverlayManager::isOverlayEnabled(OverlayManager::OverlayType type)
|
||||
bool OverlayManager::isOverlayEnabled(OverlayType type)
|
||||
{
|
||||
return m_Overlays[type].enabled;
|
||||
}
|
||||
|
||||
char* OverlayManager::getOverlayText(OverlayType type)
|
||||
{
|
||||
return m_Overlays[type].text;
|
||||
}
|
||||
|
||||
void OverlayManager::setOverlayState(OverlayManager::OverlayType type, bool enabled)
|
||||
void OverlayManager::setOverlayTextUpdated(OverlayType type)
|
||||
{
|
||||
m_Overlays[type].enabled = enabled;
|
||||
if (!enabled) {
|
||||
// Set the text to empty string on disable
|
||||
m_Overlays[type].text[0] = 0;
|
||||
// Only update the overlay state if it's enabled. If it's not enabled,
|
||||
// the renderer has already been notified by setOverlayState().
|
||||
if (m_Overlays[type].enabled && m_Renderer != nullptr) {
|
||||
m_Renderer->notifyOverlayUpdated(type);
|
||||
}
|
||||
}
|
||||
|
||||
void OverlayManager::setOverlayState(OverlayType type, bool enabled)
|
||||
{
|
||||
bool stateChanged = m_Overlays[type].enabled != enabled;
|
||||
|
||||
m_Overlays[type].enabled = enabled;
|
||||
|
||||
if (stateChanged) {
|
||||
if (!enabled) {
|
||||
// Set the text to empty string on disable
|
||||
m_Overlays[type].text[0] = 0;
|
||||
}
|
||||
|
||||
if (m_Renderer != nullptr) {
|
||||
m_Renderer->notifyOverlayUpdated(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OverlayManager::setOverlayRenderer(IOverlayRenderer* renderer)
|
||||
{
|
||||
m_Renderer = renderer;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue