43class DtSimulationAddress;
262 static bool ConditionalCheckbox(
const std::string& enabledString,
const std::string& disabledString,
bool* val);
361#define DEBUG_MANAGER_REMOVE_MENU_CALLBACK(delegate) \
362 if (DtVreDebugManager::instance()) \
364 DtVreDebugManager::instance()->removeDebugMenuCallback(delegate); \
367#define DEBUG_MANAGER_REMOVE_ENABLED_CALLBACK(delegate) \
368 if (DtVreDebugManager::instance()) \
370 DtVreDebugManager::instance()->removeDebugEnabledCallback(delegate); \
Provides attribute handling system for hierarchical data storage and manipulation.
Handle class for safe access to attributes.
Definition attributeHandle.h:30
Debug renderer for 2D and 3D debug visuals.
Definition debugRenderer.h:128
Modern delegate class that can bind and invoke callables with any number of parameters.
Definition delegate.h:31
Configuration initializer for VREngage components.
Definition initializer.h:80
virtual void installDefaultDebugMessages()
Installs default debug message handlers.
float myIndentWidth
Width of indentation for ImGui elements.
Definition debugManager.h:347
makVrv::DtDe * myDe
Pointer to the graphics engine.
Definition debugManager.h:330
virtual void loadDebugConfiguration()
Loads debug configuration settings.
bool myDrawWindow
Flag indicating if the debug window should be drawn.
Definition debugManager.h:345
bool myLiteDebugManager
Flag indicating if running in lite mode.
Definition debugManager.h:354
DtVreDebugManager(makVrv::DtDe *)
Constructor for DtVreDebugManager.
DebugMenuConfigurationMap::iterator getDebugMenuConfiguration(const std::string &name)
Gets an iterator to a debug menu configuration by name.
static bool ConditionalCheckbox(const std::string &enabledString, const std::string &disabledString, bool *val)
Creates a checkbox that displays different strings based on its state.
static void Unindent()
Unindents the ImGui content.
virtual bool addDebugMenuCallback(const std::string &sec, const DtVreDebugMenuCallback &cb, CallbackPosition position=CallbackPosition::BACK)
Registers a callback for a specific debug menu section.
bool isDebugWindowVisible() const
Checks if the debug window is currently visible.
virtual ~DtVreDebugManager()
Virtual destructor.
static void Indent()
Indents the ImGui content.
DtVreDebugManager & operator=(DtVreDebugManager &)=delete
Copy assignment operator (deleted)
virtual void drawVrEngageDebugMenu()
Draws the VREngage debug menu using ImGui.
DtVreDebugManager(DtVreDebugManager &&)=delete
Move constructor (deleted)
virtual void addDebugMenuEntry(const std::string &name, DtVreDebugMenuConfiguration conf)
Adds a new debug menu entry to the debug UI.
static void installLite()
Installs a lightweight version of the debug system without rendering.
bool myDebuggerAttached
Flag indicating if a debugger is attached to the process.
Definition debugManager.h:350
virtual bool removeDebugMenuCallback(const DtVreDebugMenuCallback &cb)
Removes a previously registered debug menu callback.
static DtVreDebugManager * theDebugManager
Singleton instance of the debug manager.
Definition debugManager.h:328
static void PushStyleCompact()
Pushes compact ImGui style settings.
std::unique_ptr< DtDebugRenderer > myDebugRenderer
Debug renderer instance owned by the manager.
Definition debugManager.h:339
bool mySendingDebugMessages
Flag indicating if debug messages should be sent.
Definition debugManager.h:352
std::unique_ptr< DtInitializer > myDebugInitializer
Debug initializer instance.
Definition debugManager.h:342
bool isLiteMode() const
Checks if the debug system is running in lite mode.
void drawVrEngageDebugOption()
Draws the "Show VR-Engage Debug Menu" option.
static DtVreDebugManager * instance()
Gets the singleton debug manager instance.
DtDebugRenderer * debugRenderer()
Gets the debug renderer instance.
bool getDebugProcess(const std::string &type, DtSimulationAddress address, DtConfigurableDebugProcess &proc)
Gets a debug process by type and simulation address.
static void installFull(makVrv::DtDe &)
Installs the full debug system with rendering capabilities.
DtVreMessageResult handleDebugMetaEnable(DtVreMessage *msg)
Handles debug meta enable/disable messages.
bool myConsoleShown
Flag indicating if the debug console is shown.
Definition debugManager.h:356
DtVreDebugManager(DtVreDebugManager &)=delete
Copy constructor (deleted)
virtual void simCallback()
Simulation-specific callback for debug events.
static void HelpMarker(const std::string &desc)
Displays a help marker with description text.
void setSendDebugMessages(bool send)
Enables or disables sending of debug messages.
static void PopStyleCompact()
Pops compact ImGui style settings.
static bool IsDebuggerAttached(bool recheck=false)
Checks if a debugger is attached to the process.
virtual void removeDebugMenuEntry(const std::string &name)
Removes a debug menu entry from the debug UI.
DtVreMessageResult handleDebugGlobalEnable(DtVreMessage *msg)
Handles global debug enable/disable messages.
DtVreMessageResult handleDebugMetaData(DtVreMessage *msg)
Handles debug metadata messages.
virtual bool removeDebugEnabledCallback(const DtVreDebugEnabledCallback &cb)
Removes a previously registered debug enabled callback.
bool getSendDebugMessages() const
Checks if debug messages are being sent.
bool isFullMode() const
Checks if the debug system is running in full mode.
virtual void generalCallback()
General callback for debug events.
DtVreMessageResult handleDebugMetaRegister(DtVreMessage *msg)
Handles debug meta registration messages.
void setDebugWindowVisible(bool vis)
Sets the visibility of the debug window.
virtual bool addDebugEnabledCallback(const DtVreDebugEnabledCallback &cb, CallbackPosition position=CallbackPosition::BACK)
Registers a callback that is triggered when debug rendering is enabled/disabled.
DebugEnabledCallbackList myDebugEnabledCallbackList
List of callbacks to invoke when debug is enabled/disabled.
Definition debugManager.h:336
DebugMenuConfigurationMap myDebugConfigurationMap
Map of debug menu configurations and their callbacks.
Definition debugManager.h:333
static void shutdown()
Cleans up and shuts down the debug system.
DtVreDebugManager & operator=(DtVreDebugManager &&)=delete
Move assignment operator (deleted)
DtInitializer * getDebugInitializer()
Gets the debug initializer.
Abstract base class for all VREngage messages.
Definition vreMessage.h:50
Defines export macros for the VREngage Debug Manager library.
#define DEBUGMANAGER_DLL
Export/import macro for non-Windows platforms.
Definition export.h:40
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
DtDelegate< void, bool > DtVreDebugEnabledCallback
Definition debugManager.h:71
std::list< DtVreDebugMenuCallback > DebugMenuCallbackList
Definition debugManager.h:67
DtDelegate< void > DtVreDebugMenuCallback
Definition debugManager.h:66
CallbackPosition
Defines the position where callbacks are registered in the callback list.
Definition debugManager.h:60
@ BACK
Add callback to the back of the list (executed last)
Definition debugManager.h:62
@ FRONT
Add callback to the front of the list (executed first)
Definition debugManager.h:61
std::map< std::string, DebugConfigurationValue > DebugMenuConfigurationMap
Definition debugManager.h:69
DtVreMessageResult
Enumeration of possible message handling results.
Definition vreMessage.h:33
std::list< DtVreDebugEnabledCallback > DebugEnabledCallbackList
Definition debugManager.h:72
std::pair< DtVreDebugMenuConfiguration, DebugMenuCallbackList > DebugConfigurationValue
Definition debugManager.h:68
Definition appLauncherComponent.h:28
Configuration structure for debug processes.
Definition debugManager.h:79
DtSimulationAddress address
Simulation address for this debug process.
Definition debugManager.h:98
std::string debugType
Type identifier for the debug process.
Definition debugManager.h:92
bool enabled
Whether the debug process is enabled.
Definition debugManager.h:100
Process
Enumeration of process types that can be debugged.
Definition debugManager.h:82
@ VRF_APP
VRForces application process.
Definition debugManager.h:84
@ VRE_APP
VREngage application process.
Definition debugManager.h:83
@ VRE_SIM
VREngage simulation process.
Definition debugManager.h:85
@ VRF_SIM
VRForces simulation process.
Definition debugManager.h:86
std::string displayName
Display name of the debug process.
Definition debugManager.h:90
std::string menuSection
Menu section where this process should appear.
Definition debugManager.h:94
DtAttributeHandle extraData
Additional data associated with this debug process.
Definition debugManager.h:104
bool showInTable
Whether to show this process in the debug table.
Definition debugManager.h:102
Process process
Type of process (VREngage or VRForces, app or sim)
Definition debugManager.h:96
Defines the base class for all VREngage messages.