VR-Engage  2.2
Loading...
Searching...
No Matches
makVre::DtVreDebugManager Class Reference

Detailed Description

This singleton class provides the central interface for all debugging functionality in VREngage, including menu management, debug rendering, and debug message passing throughout the application.

#include <debugManager.h>

Public Member Functions

virtual bool addDebugMenuCallback (const std::string &sec, const DtVreDebugMenuCallback &cb, CallbackPosition position=CallbackPosition::BACK)
 
virtual bool removeDebugMenuCallback (const DtVreDebugMenuCallback &cb)
 
virtual bool addDebugEnabledCallback (const DtVreDebugEnabledCallback &cb, CallbackPosition position=CallbackPosition::BACK)
 
virtual bool removeDebugEnabledCallback (const DtVreDebugEnabledCallback &cb)
 
virtual void addDebugMenuEntry (const std::string &name, DtVreDebugMenuConfiguration conf)
 
virtual void removeDebugMenuEntry (const std::string &name)
 
DebugMenuConfigurationMap::iterator getDebugMenuConfiguration (const std::string &name)
 
bool getDebugProcess (const std::string &type, DtSimulationAddress address, DtConfigurableDebugProcess &proc)
 
virtual void drawVrEngageDebugMenu ()
 
bool isDebugWindowVisible () const
 
void setDebugWindowVisible (bool vis)
 
bool getSendDebugMessages () const
 
void setSendDebugMessages (bool send)
 
bool isLiteMode () const
 
bool isFullMode () const
 
DtInitializergetDebugInitializer ()
 
DtDebugRendererdebugRenderer ()
 

Static Public Member Functions

static DtVreDebugManagerinstance ()
 
static void installFull (makVrv::DtDe &)
 
static void installLite ()
 
static void shutdown ()
 
static void PushStyleCompact ()
 
static void PopStyleCompact ()
 
static void Indent ()
 
static void Unindent ()
 
static void HelpMarker (const std::string &desc)
 
static bool IsDebuggerAttached (bool recheck=false)
 
static bool ConditionalCheckbox (const std::string &enabledString, const std::string &disabledString, bool *val)
 

Protected Member Functions

 DtVreDebugManager (makVrv::DtDe *)
 
virtual ~DtVreDebugManager ()
 
 DtVreDebugManager (DtVreDebugManager &)=delete
 
 DtVreDebugManager (DtVreDebugManager &&)=delete
 
DtVreDebugManageroperator= (DtVreDebugManager &)=delete
 
DtVreDebugManageroperator= (DtVreDebugManager &&)=delete
 
virtual void generalCallback ()
 
virtual void simCallback ()
 
virtual void loadDebugConfiguration ()
 
virtual void installDefaultDebugMessages ()
 
void drawVrEngageDebugOption ()
 
DtVreMessageResult handleDebugMetaData (DtVreMessage *msg)
 
DtVreMessageResult handleDebugMetaEnable (DtVreMessage *msg)
 
DtVreMessageResult handleDebugMetaRegister (DtVreMessage *msg)
 
DtVreMessageResult handleDebugGlobalEnable (DtVreMessage *msg)
 

Protected Attributes

makVrv::DtDe * myDe
 
DebugMenuConfigurationMap myDebugConfigurationMap
 
DebugEnabledCallbackList myDebugEnabledCallbackList
 
std::unique_ptr< DtDebugRenderermyDebugRenderer
 
std::unique_ptr< DtInitializermyDebugInitializer
 
bool myDrawWindow
 
float myIndentWidth
 
bool myDebuggerAttached
 
bool mySendingDebugMessages
 
bool myLiteDebugManager
 
bool myConsoleShown
 

Static Protected Attributes

static DtVreDebugManagertheDebugManager
 

Constructor & Destructor Documentation

◆ DtVreDebugManager() [1/3]

makVre::DtVreDebugManager::DtVreDebugManager ( makVrv::DtDe * )
explicitprotected

Constructor for DtVreDebugManager.

Protected since this is a singleton class

Parameters
dePointer to the graphics engine (can be null for lite mode)

Referenced by DtVreDebugManager(), DtVreDebugManager(), instance(), operator=(), and operator=().

◆ ~DtVreDebugManager()

virtual makVre::DtVreDebugManager::~DtVreDebugManager ( )
protectedvirtual

Virtual destructor.

Handles cleanup of debug manager resources

◆ DtVreDebugManager() [2/3]

makVre::DtVreDebugManager::DtVreDebugManager ( DtVreDebugManager & )
protecteddelete

Copy constructor (deleted)

References DtVreDebugManager().

◆ DtVreDebugManager() [3/3]

makVre::DtVreDebugManager::DtVreDebugManager ( DtVreDebugManager && )
protecteddelete

Move constructor (deleted)

References DtVreDebugManager().

Member Function Documentation

◆ instance()

static DtVreDebugManager * makVre::DtVreDebugManager::instance ( )
static

Gets the singleton debug manager instance.

Returns
Pointer to the singleton instance

References DtVreDebugManager().

◆ installFull()

static void makVre::DtVreDebugManager::installFull ( makVrv::DtDe & )
static

Installs the full debug system with rendering capabilities.

Parameters
deThe graphics engine to attach the debug renderer to

◆ installLite()

static void makVre::DtVreDebugManager::installLite ( )
static

Installs a lightweight version of the debug system without rendering.

Use this when no graphics engine is available but debugging is still required

◆ shutdown()

static void makVre::DtVreDebugManager::shutdown ( )
static

Cleans up and shuts down the debug system.

Releases all resources and destroys the singleton instance

◆ addDebugMenuCallback()

virtual bool makVre::DtVreDebugManager::addDebugMenuCallback ( const std::string & sec,
const DtVreDebugMenuCallback & cb,
CallbackPosition position = CallbackPosition::BACK )
virtual

Registers a callback for a specific debug menu section.

The callback will be invoked when the specified debug menu section is active

Parameters
secThe section name to register the callback for
cbThe callback function to register
positionWhere to place the callback in the execution order
Returns
True if the callback was successfully registered

References makVre::BACK.

◆ removeDebugMenuCallback()

virtual bool makVre::DtVreDebugManager::removeDebugMenuCallback ( const DtVreDebugMenuCallback & cb)
virtual

Removes a previously registered debug menu callback.

Parameters
cbThe callback to remove
Returns
True if the callback was found and removed

◆ addDebugEnabledCallback()

virtual bool makVre::DtVreDebugManager::addDebugEnabledCallback ( const DtVreDebugEnabledCallback & cb,
CallbackPosition position = CallbackPosition::BACK )
virtual

Registers a callback that is triggered when debug rendering is enabled/disabled.

This callback will be invoked when the debug rendering enabled state changes

Parameters
cbThe callback function to register
positionWhere to place the callback in the execution order
Returns
True if the callback was successfully registered

References makVre::BACK.

◆ removeDebugEnabledCallback()

virtual bool makVre::DtVreDebugManager::removeDebugEnabledCallback ( const DtVreDebugEnabledCallback & cb)
virtual

Removes a previously registered debug enabled callback.

Parameters
cbThe callback to remove
Returns
True if the callback was found and removed

◆ addDebugMenuEntry()

virtual void makVre::DtVreDebugManager::addDebugMenuEntry ( const std::string & name,
DtVreDebugMenuConfiguration conf )
virtual

Adds a new debug menu entry to the debug UI.

Parameters
nameThe name of the menu entry
confThe configuration for this menu entry

◆ removeDebugMenuEntry()

virtual void makVre::DtVreDebugManager::removeDebugMenuEntry ( const std::string & name)
virtual

Removes a debug menu entry from the debug UI.

Parameters
nameThe name of the menu entry to remove

◆ getDebugMenuConfiguration()

DebugMenuConfigurationMap::iterator makVre::DtVreDebugManager::getDebugMenuConfiguration ( const std::string & name)

Gets an iterator to a debug menu configuration by name.

Parameters
nameThe name of the menu configuration to find
Returns
Iterator to the debug menu configuration, or end() if not found

◆ getDebugProcess()

bool makVre::DtVreDebugManager::getDebugProcess ( const std::string & type,
DtSimulationAddress address,
DtConfigurableDebugProcess & proc )

Gets a debug process by type and simulation address.

Parameters
typeThe type of debug process to find
addressThe simulation address of the process
procThe found debug process configuration (output parameter)
Returns
True if the process was found, false otherwise

◆ drawVrEngageDebugMenu()

virtual void makVre::DtVreDebugManager::drawVrEngageDebugMenu ( )
virtual

Draws the VREngage debug menu using ImGui.

This is the main drawing function that renders all registered debug UI elements. It should be called from the application's ImGui rendering pass.

◆ isDebugWindowVisible()

bool makVre::DtVreDebugManager::isDebugWindowVisible ( ) const

Checks if the debug window is currently visible.

Returns
True if the debug window is visible

◆ setDebugWindowVisible()

void makVre::DtVreDebugManager::setDebugWindowVisible ( bool vis)

Sets the visibility of the debug window.

Parameters
visTrue to show the window, false to hide it

◆ getSendDebugMessages()

bool makVre::DtVreDebugManager::getSendDebugMessages ( ) const

Checks if debug messages are being sent.

Returns
True if debug messages are enabled

◆ setSendDebugMessages()

void makVre::DtVreDebugManager::setSendDebugMessages ( bool send)

Enables or disables sending of debug messages.

Parameters
sendTrue to enable debug messages, false to disable

◆ isLiteMode()

bool makVre::DtVreDebugManager::isLiteMode ( ) const

Checks if the debug system is running in lite mode.

Returns
True if running in lite mode (without rendering)

◆ isFullMode()

bool makVre::DtVreDebugManager::isFullMode ( ) const

Checks if the debug system is running in full mode.

Returns
True if running in full mode (with rendering)

◆ getDebugInitializer()

DtInitializer * makVre::DtVreDebugManager::getDebugInitializer ( )
inline

Gets the debug initializer.

Returns
Pointer to the debug initializer

◆ debugRenderer()

DtDebugRenderer * makVre::DtVreDebugManager::debugRenderer ( )
inline

Gets the debug renderer instance.

Returns
Pointer to the debug renderer

◆ PushStyleCompact()

static void makVre::DtVreDebugManager::PushStyleCompact ( )
static

Pushes compact ImGui style settings.

Modifies ImGui style to use more compact layout for debug UI elements

◆ PopStyleCompact()

static void makVre::DtVreDebugManager::PopStyleCompact ( )
static

Pops compact ImGui style settings.

Restores the previous ImGui style settings after PushStyleCompact()

◆ Indent()

static void makVre::DtVreDebugManager::Indent ( )
static

Indents the ImGui content.

Adds indentation to subsequent ImGui elements

◆ Unindent()

static void makVre::DtVreDebugManager::Unindent ( )
static

Unindents the ImGui content.

Removes indentation from subsequent ImGui elements

◆ HelpMarker()

static void makVre::DtVreDebugManager::HelpMarker ( const std::string & desc)
static

Displays a help marker with description text.

Parameters
descThe description text to display in the help tooltip

◆ IsDebuggerAttached()

static bool makVre::DtVreDebugManager::IsDebuggerAttached ( bool recheck = false)
static

Checks if a debugger is attached to the process.

Parameters
recheckForce a recheck instead of using cached value
Returns
True if a debugger is attached

◆ ConditionalCheckbox()

static bool makVre::DtVreDebugManager::ConditionalCheckbox ( const std::string & enabledString,
const std::string & disabledString,
bool * val )
static

Creates a checkbox that displays different strings based on its state.

Parameters
enabledStringText to display when checkbox is checked
disabledStringText to display when checkbox is unchecked
valPointer to the boolean value controlled by the checkbox
Returns
True if the checkbox value was changed

◆ operator=() [1/2]

DtVreDebugManager & makVre::DtVreDebugManager::operator= ( DtVreDebugManager & )
protecteddelete

Copy assignment operator (deleted)

References DtVreDebugManager().

◆ operator=() [2/2]

DtVreDebugManager & makVre::DtVreDebugManager::operator= ( DtVreDebugManager && )
protecteddelete

Move assignment operator (deleted)

References DtVreDebugManager().

◆ generalCallback()

virtual void makVre::DtVreDebugManager::generalCallback ( )
protectedvirtual

General callback for debug events.

Called when general debug events need to be processed

◆ simCallback()

virtual void makVre::DtVreDebugManager::simCallback ( )
protectedvirtual

Simulation-specific callback for debug events.

Called when simulation-specific debug events need to be processed

◆ loadDebugConfiguration()

virtual void makVre::DtVreDebugManager::loadDebugConfiguration ( )
protectedvirtual

Loads debug configuration settings.

Initializes the debug configuration from saved settings

◆ installDefaultDebugMessages()

virtual void makVre::DtVreDebugManager::installDefaultDebugMessages ( )
protectedvirtual

Installs default debug message handlers.

Sets up the standard debug message handlers for the system

◆ drawVrEngageDebugOption()

void makVre::DtVreDebugManager::drawVrEngageDebugOption ( )
protected

Draws the "Show VR-Engage Debug Menu" option.

Renders the toggle option for showing/hiding the debug menu

◆ handleDebugMetaData()

DtVreMessageResult makVre::DtVreDebugManager::handleDebugMetaData ( DtVreMessage * msg)
protected

Handles debug metadata messages.

Parameters
msgThe message to process
Returns
Result of the message handling

◆ handleDebugMetaEnable()

DtVreMessageResult makVre::DtVreDebugManager::handleDebugMetaEnable ( DtVreMessage * msg)
protected

Handles debug meta enable/disable messages.

Parameters
msgThe message to process
Returns
Result of the message handling

◆ handleDebugMetaRegister()

DtVreMessageResult makVre::DtVreDebugManager::handleDebugMetaRegister ( DtVreMessage * msg)
protected

Handles debug meta registration messages.

Parameters
msgThe message to process
Returns
Result of the message handling

◆ handleDebugGlobalEnable()

DtVreMessageResult makVre::DtVreDebugManager::handleDebugGlobalEnable ( DtVreMessage * msg)
protected

Handles global debug enable/disable messages.

Parameters
msgThe message to process
Returns
Result of the message handling

Member Data Documentation

◆ theDebugManager

DtVreDebugManager* makVre::DtVreDebugManager::theDebugManager
staticprotected

Singleton instance of the debug manager.

◆ myDe

makVrv::DtDe* makVre::DtVreDebugManager::myDe
protected

Pointer to the graphics engine.

◆ myDebugConfigurationMap

DebugMenuConfigurationMap makVre::DtVreDebugManager::myDebugConfigurationMap
protected

Map of debug menu configurations and their callbacks.

◆ myDebugEnabledCallbackList

DebugEnabledCallbackList makVre::DtVreDebugManager::myDebugEnabledCallbackList
protected

List of callbacks to invoke when debug is enabled/disabled.

◆ myDebugRenderer

std::unique_ptr<DtDebugRenderer> makVre::DtVreDebugManager::myDebugRenderer
protected

Debug renderer instance owned by the manager.

◆ myDebugInitializer

std::unique_ptr<DtInitializer> makVre::DtVreDebugManager::myDebugInitializer
protected

Debug initializer instance.

◆ myDrawWindow

bool makVre::DtVreDebugManager::myDrawWindow
protected

Flag indicating if the debug window should be drawn.

◆ myIndentWidth

float makVre::DtVreDebugManager::myIndentWidth
protected

Width of indentation for ImGui elements.

◆ myDebuggerAttached

bool makVre::DtVreDebugManager::myDebuggerAttached
protected

Flag indicating if a debugger is attached to the process.

◆ mySendingDebugMessages

bool makVre::DtVreDebugManager::mySendingDebugMessages
protected

Flag indicating if debug messages should be sent.

◆ myLiteDebugManager

bool makVre::DtVreDebugManager::myLiteDebugManager
protected

Flag indicating if running in lite mode.

◆ myConsoleShown

bool makVre::DtVreDebugManager::myConsoleShown
protected

Flag indicating if the debug console is shown.


The documentation for this class was generated from the following file: