|
Monado OpenXR Runtime
|
Small GUI interface to configure Monado based on SDL2. More...

Modules | |
| Debug GUI | |
| GUI for live inspecting Monado. | |
Files | |
| file | gui_common.h |
| Common file for the Monado GUI program. | |
| file | gui_imgui.h |
| Imgui integration for gui. | |
| file | gui_ogl.c |
| OpenGL helper functions for drawing GUI elements. | |
| file | gui_ogl.h |
| OpenGL helper functions for drawing GUI elements. | |
| file | gui_ogl_sink.c |
| OpenGL sink functions. | |
| file | gui_scene.cpp |
| SDL2 functions to drive the GUI. | |
| file | gui_scene_calibrate.c |
| Calibration gui scene. | |
| file | gui_scene_debug.c |
| A debugging scene. | |
| file | gui_scene_hand_tracking_demo.c |
| Small hand-tracking demo scene. | |
| file | gui_scene_main_menu.c |
| Main menu. | |
| file | gui_scene_record.c |
| Recording scene gui. | |
| file | gui_scene_record_euroc.c |
| Small hand-tracking demo scene. | |
| file | gui_scene_remote.c |
| Remote debugging UI. | |
| file | gui_scene_resampler_test.c |
| Audio resampler test. | |
| file | gui_scene_tracking_overrides.c |
| A very small scene that lets the user configure tracking overrides. | |
| file | gui_scene_video.c |
| A very small scene that lets the user select a video device. | |
| file | gui_widget_native_images.c |
| Swapchain rendering helper code. | |
| file | gui_widget_native_images.h |
| Swapchain rendering helper code. | |
| file | gui_window_record.c |
| Recording window gui. | |
| file | gui_window_record.h |
| Recording window gui. | |
| file | gui_sdl2.c |
| SDL2 functions to drive the GUI. | |
| file | gui_sdl2.h |
| Common file for the Monado SDL2 based GUI program. | |
| file | gui_sdl2_imgui.c |
| Main entrypoint for the Monado GUI program. | |
| file | gui_sdl2_main.c |
| Main entrypoint for the Monado GUI program. | |
Data Structures | |
| struct | gui_program |
| A gui program. More... | |
| struct | gui_ogl_texture |
| A OpenGL texture. More... | |
| struct | gui_widget_native_images |
| A small widget that interfaces a u_native_images_debug struct, caching the imports from the listed xrt_image_native list. More... | |
| struct | gui_widget_native_images_record |
| A single record in a native image widget storage. More... | |
| struct | gui_widget_native_images_storage |
| Helper struct to cache gui_widget_native_images. More... | |
| struct | sdl2_program |
| Common struct holding state for the GUI interface. More... | |
| struct | gui_imgui |
| Internal gui state. More... | |
| interface | gui_scene |
| A single currently running scene. More... | |
Functions | |
| void | gui_scene_resampler_test (struct gui_program *p) |
| void | gui_ogl_draw_image (uint32_t width, uint32_t height, uint32_t tex_id, float scale, bool rotate_180, bool flip_y) |
| Draw the given textures as igImage, scale of 1.0f == 100%. More... | |
| void | gui_ogl_draw_background (uint32_t width, uint32_t height, uint32_t tex_id, bool rotate_180, bool flip_y) |
| Draw the given texture to the background of the current OS window. More... | |
| void | gui_widget_native_images_init (struct gui_widget_native_images *gwni) |
| Initialise a embeddable record window. More... | |
| void | gui_widget_native_images_update (struct gui_widget_native_images *gwni, struct u_native_images_debug *unid) |
| Update the swapchain widget. More... | |
| void | gui_widget_native_images_render (struct gui_widget_native_images *gwni, struct gui_program *p) |
| Renders all controls of a record window. More... | |
| void | gui_widget_native_images_to_background (struct gui_widget_native_images *gwni, struct gui_program *p) |
| Draw the sink image as the background to the background of the render view. More... | |
| void | gui_widget_native_images_close (struct gui_widget_native_images *gwni) |
| Frees all resources associated with a record window. More... | |
| struct gui_widget_native_images * | gui_widget_native_images_storage_ensure (struct gui_widget_native_images_storage *gwnis, struct u_native_images_debug *unid) |
| Search the storage for the matching record for the debug swapchain and return it, if not found and there is room create it. More... | |
| struct gui_widget_native_images * | gui_widget_native_images_storage_close (struct gui_widget_native_images_storage *gwnis, struct u_native_images_debug *unid) |
| Close the storage. More... | |
| int | gui_program::gui_prober_init (struct gui_program *p) |
| Initialize the prober and open all devices found. More... | |
| int | gui_program::gui_prober_select (struct gui_program *p) |
| Create devices. More... | |
| void | gui_program::gui_prober_update (struct gui_program *p) |
| Update all devices. More... | |
| void | gui_program::gui_prober_teardown (struct gui_program *p) |
| Destroy all opened devices and destroy the prober. More... | |
| struct gui_ogl_texture * | gui_ogl_texture::gui_ogl_sink_create (const char *name, struct xrt_frame_context *xfctx, struct xrt_frame_sink **out_sink) |
| Create a sink that will turn frames into OpenGL textures, since the frame can come from another thread gui_ogl_sink_update needs to be called. More... | |
| void | gui_ogl_texture::gui_ogl_sink_update (struct gui_ogl_texture *) |
| Update the texture to the latest received frame. More... | |
| void | gui_program::gui_scene_push_front (struct gui_program *p, struct gui_scene *me) |
| Push the scene to the top of the lists. More... | |
| void | gui_program::gui_scene_delete_me (struct gui_program *p, struct gui_scene *me) |
| Put a scene on the delete list, also removes it from any other list. More... | |
| void | gui_program::gui_scene_manager_render (struct gui_program *p) |
| Render the scenes. More... | |
| void | gui_program::gui_scene_manager_init (struct gui_program *p) |
| Initialize the scene manager. More... | |
| void | gui_program::gui_scene_manager_destroy (struct gui_program *p) |
| Destroy the scene manager. More... | |
| void | gui_program::gui_scene_main_menu (struct gui_program *p) |
| Shows the main menu. More... | |
| void | gui_program::gui_scene_select_video_calibrate (struct gui_program *p) |
| Shows a UI that lets you select a video device and mode for calibration. More... | |
| void | gui_program::gui_scene_tracking_overrides (struct gui_program *p) |
| Shows a UI that lets you set up tracking overrides. More... | |
| void | gui_program::gui_scene_debug (struct gui_program *p) |
| Regular debug UI. More... | |
| void | gui_program::gui_scene_hand_tracking_demo (struct gui_program *p) |
| Small hand-tracking demo. More... | |
| void | gui_program::gui_scene_record_euroc (struct gui_program *p) |
| EuRoC recorder for DepthAI cameras. More... | |
| void | gui_program::gui_scene_record (struct gui_program *p, const char *camera) |
| Create a recording view scene. More... | |
| void | gui_program::gui_scene_remote (struct gui_program *p, const char *address) |
| Remote control debugging UI. More... | |
| void | gui_program::gui_scene_calibrate (struct gui_program *p, struct xrt_frame_context *xfctx, struct xrt_fs *xfs, struct xrt_settings_tracking *s) |
| Given the frameserver runs the calibration code on it. More... | |
Small GUI interface to configure Monado based on SDL2.
| void gui_ogl_draw_background | ( | uint32_t | width, |
| uint32_t | height, | ||
| uint32_t | tex_id, | ||
| bool | rotate_180, | ||
| bool | flip_y | ||
| ) |
#include <state_trackers/gui/gui_ogl.h>
Draw the given texture to the background of the current OS window.
Referenced by gui_window_record_to_background().
| void gui_ogl_draw_image | ( | uint32_t | width, |
| uint32_t | height, | ||
| uint32_t | tex_id, | ||
| float | scale, | ||
| bool | rotate_180, | ||
| bool | flip_y | ||
| ) |
#include <state_trackers/gui/gui_ogl.h>
Draw the given textures as igImage, scale of 1.0f == 100%.
| struct gui_ogl_texture * gui_ogl_sink_create | ( | const char * | name, |
| struct xrt_frame_context * | xfctx, | ||
| struct xrt_frame_sink ** | out_sink | ||
| ) |
Create a sink that will turn frames into OpenGL textures, since the frame can come from another thread gui_ogl_sink_update needs to be called.
Destruction is handled by the frame context.
References xrt_frame_node::break_apart, push_frame(), xrt_frame_sink::push_frame, and U_TYPED_CALLOC.
| void gui_ogl_sink_update | ( | struct gui_ogl_texture * | ) |
Update the texture to the latest received frame.
References container_of, U_LOG_E, and xrt_frame::xrt_frame_reference().
Referenced by gui_window_record_render(), and gui_window_record_to_background().
| int gui_prober_init | ( | struct gui_program * | p | ) |
Initialize the prober and open all devices found.
| int gui_prober_select | ( | struct gui_program * | p | ) |
Create devices.
| void gui_prober_teardown | ( | struct gui_program * | p | ) |
Destroy all opened devices and destroy the prober.
| void gui_prober_update | ( | struct gui_program * | p | ) |
Update all devices.
| void gui_scene_calibrate | ( | struct gui_program * | p, |
| struct xrt_frame_context * | xfctx, | ||
| struct xrt_fs * | xfs, | ||
| struct xrt_settings_tracking * | s | ||
| ) |
Given the frameserver runs the calibration code on it.
Claims ownership of s.
References U_TYPED_CALLOC.
| void gui_scene_debug | ( | struct gui_program * | p | ) |
Regular debug UI.
References U_TYPED_CALLOC.
| void gui_scene_delete_me | ( | struct gui_program * | p, |
| struct gui_scene * | me | ||
| ) |
Put a scene on the delete list, also removes it from any other list.
| void gui_scene_hand_tracking_demo | ( | struct gui_program * | p | ) |
Small hand-tracking demo.
| void gui_scene_main_menu | ( | struct gui_program * | p | ) |
Shows the main menu.
References U_TYPED_CALLOC.
| void gui_scene_manager_destroy | ( | struct gui_program * | p | ) |
Destroy the scene manager.
| void gui_scene_manager_init | ( | struct gui_program * | p | ) |
Initialize the scene manager.
| void gui_scene_manager_render | ( | struct gui_program * | p | ) |
Render the scenes.
| void gui_scene_push_front | ( | struct gui_program * | p, |
| struct gui_scene * | me | ||
| ) |
Push the scene to the top of the lists.
| void gui_scene_record | ( | struct gui_program * | p, |
| const char * | camera | ||
| ) |
Create a recording view scene.
References U_TYPED_CALLOC.
| void gui_scene_record_euroc | ( | struct gui_program * | p | ) |
EuRoC recorder for DepthAI cameras.
| void gui_scene_remote | ( | struct gui_program * | p, |
| const char * | address | ||
| ) |
| void gui_scene_select_video_calibrate | ( | struct gui_program * | p | ) |
Shows a UI that lets you select a video device and mode for calibration.
| void gui_scene_tracking_overrides | ( | struct gui_program * | p | ) |
Shows a UI that lets you set up tracking overrides.
| void gui_widget_native_images_close | ( | struct gui_widget_native_images * | gwni | ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Frees all resources associated with a record window.
Make sure to only call this function on the main gui thread, and that nothing is pushing into the record windows sink.
| void gui_widget_native_images_init | ( | struct gui_widget_native_images * | gwni | ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Initialise a embeddable record window.
References gui_widget_native_images::active_index, and U_ZERO.
Referenced by gui_widget_native_images_storage_ensure().
| void gui_widget_native_images_render | ( | struct gui_widget_native_images * | gwni, |
| struct gui_program * | p | ||
| ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Renders all controls of a record window.
References gui_widget_native_images::active_index.
| struct gui_widget_native_images * gui_widget_native_images_storage_close | ( | struct gui_widget_native_images_storage * | gwnis, |
| struct u_native_images_debug * | unid | ||
| ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Close the storage.
| struct gui_widget_native_images * gui_widget_native_images_storage_ensure | ( | struct gui_widget_native_images_storage * | gwnis, |
| struct u_native_images_debug * | unid | ||
| ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Search the storage for the matching record for the debug swapchain and return it, if not found and there is room create it.
References ARRAY_SIZE, and gui_widget_native_images_init().
| void gui_widget_native_images_to_background | ( | struct gui_widget_native_images * | gwni, |
| struct gui_program * | p | ||
| ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Draw the sink image as the background to the background of the render view.
Basically the main window in which all ImGui windows lives in, not to a ImGui window.
References gui_widget_native_images::active_index.
| void gui_widget_native_images_update | ( | struct gui_widget_native_images * | gwni, |
| struct u_native_images_debug * | unid | ||
| ) |
#include <state_trackers/gui/gui_widget_native_images.h>
Update the swapchain widget.
References gui_widget_native_images::cache_id, u_native_images_debug::limited_unique_id, U_LOG_D, and u_native_images_debug_lock().