mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-01 12:46:12 +00:00
st/gui: Reshuffle and document debug gui struct
This commit is contained in:
parent
ff9f68bc96
commit
ea13c373c5
|
@ -36,6 +36,25 @@
|
||||||
|
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Structs and defines.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @defgroup gui_debug Debug GUI
|
||||||
|
* @ingroup gui
|
||||||
|
*
|
||||||
|
* @brief GUI for live inspecting Monado.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* A single record window, here only used to draw a single element in a object
|
||||||
|
* window, holds all the needed state.
|
||||||
|
*
|
||||||
|
* @ingroup gui_debug
|
||||||
|
*/
|
||||||
struct debug_record
|
struct debug_record
|
||||||
{
|
{
|
||||||
void *ptr;
|
void *ptr;
|
||||||
|
@ -44,8 +63,11 @@ struct debug_record
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* A GUI scene showing the variable tracking provided by @ref util/u_var.h
|
* A GUI scene for debugging Monado while it is running, it uses the variable
|
||||||
|
* tracking code in the @ref util/u_var.h file to provide live updates state.
|
||||||
|
*
|
||||||
* @implements gui_scene
|
* @implements gui_scene
|
||||||
|
* @ingroup gui_debug
|
||||||
*/
|
*/
|
||||||
struct debug_scene
|
struct debug_scene
|
||||||
{
|
{
|
||||||
|
@ -56,6 +78,43 @@ struct debug_scene
|
||||||
uint32_t num_recrs;
|
uint32_t num_recrs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//! How many nested gui headers can we show, overly large.
|
||||||
|
#define MAX_HEADER_NESTING 256
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* One "frame" of draw state, what is passed to the variable tracking visitor
|
||||||
|
* functions, holds pointers to the program and live state such as visibility
|
||||||
|
* stack of gui headers.
|
||||||
|
*
|
||||||
|
* @ingroup gui_debug
|
||||||
|
*/
|
||||||
|
struct draw_state
|
||||||
|
{
|
||||||
|
struct gui_program *p;
|
||||||
|
struct debug_scene *ds;
|
||||||
|
|
||||||
|
//! Visibility stack for nested headers.
|
||||||
|
bool vis_stack[MAX_HEADER_NESTING];
|
||||||
|
int vis_i;
|
||||||
|
|
||||||
|
//! Should we show the GUI headers for record sinks.
|
||||||
|
bool inhibit_sink_headers;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* State for plotting @ref m_ff_vec3_f32, assumes it's relative to now.
|
||||||
|
*
|
||||||
|
* @ingroup gui_debug
|
||||||
|
*/
|
||||||
|
struct plot_state
|
||||||
|
{
|
||||||
|
//! The filter fifo we are plotting.
|
||||||
|
struct m_ff_vec3_f32 *ff;
|
||||||
|
|
||||||
|
//! When now is, all entries are made relative to this.
|
||||||
|
uint64_t now;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
|
@ -105,22 +164,6 @@ handle_draggable_quat(const char *name, struct xrt_quat *q)
|
||||||
math_quat_normalize(q);
|
math_quat_normalize(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_HEADER_NESTING 256
|
|
||||||
struct draw_state
|
|
||||||
{
|
|
||||||
struct gui_program *p;
|
|
||||||
struct debug_scene *ds;
|
|
||||||
bool vis_stack[MAX_HEADER_NESTING]; //!< Visibility stack for nested headers
|
|
||||||
int vis_i;
|
|
||||||
bool inhibit_sink_headers;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct plot_state
|
|
||||||
{
|
|
||||||
struct m_ff_vec3_f32 *ff;
|
|
||||||
uint64_t now;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PLOT_HELPER(elm) \
|
#define PLOT_HELPER(elm) \
|
||||||
ImPlotPoint plot_##elm(void *ptr, int index) \
|
ImPlotPoint plot_##elm(void *ptr, int index) \
|
||||||
{ \
|
{ \
|
||||||
|
|
Loading…
Reference in a new issue