The open source OpenXR runtime

xrt: Improve doxygen documentation.

+767 -148
+2 -1
doc/Doxyfile.in
··· 48 48 49 49 WARN_IF_UNDOCUMENTED = @DOXYGEN_WARN_UNDOCUMENTED@ 50 50 EXTRACT_ALL = @DOXYGEN_EXTRACT_ALL@ 51 + HIDE_UNDOC_RELATIONS = NO 51 52 52 53 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the 53 54 # path mentioned in the documentation of a class, which tells the reader which ··· 2243 2244 # and usage relations if the target is undocumented or is not a class. 2244 2245 # The default value is: YES. 2245 2246 2246 - HIDE_UNDOC_RELATIONS = YES 2247 + # HIDE_UNDOC_RELATIONS = YES 2247 2248 2248 2249 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 2249 2250 # available from the path. This tool is part of Graphviz (see:
+1
doc/changes/xrt/mr.365.md
··· 1 + Improve Doxygen documentation of interfaces. Now the inheritance structure and implementation of interfaces is shown in the docs, and helper functions that call through function pointers are listed as "member functions", to help developers understand the internal structure of Monado better.
+1
src/xrt/auxiliary/os/os_ble.h
··· 20 20 21 21 22 22 /*! 23 + * @interface os_ble_device 23 24 * Representing a single ble notify attribute on a device. 24 25 * 25 26 * @ingroup aux_os
+4
src/xrt/auxiliary/os/os_ble_dbus.c
··· 28 28 * 29 29 */ 30 30 31 + /*! 32 + * An implementation of @ref os_ble_device using a DBus connection to BlueZ. 33 + * @implements os_ble_device 34 + */ 31 35 struct ble_notify 32 36 { 33 37 struct os_ble_device base;
+17
src/xrt/auxiliary/os/os_hid.h
··· 21 21 22 22 23 23 /*! 24 + * @interface os_hid_device 25 + * 24 26 * Representing a single hid interface on a device. 25 27 */ 26 28 struct os_hid_device ··· 56 58 * 57 59 * If milliseconds are negative, this call blocks indefinitely, 0 polls, 58 60 * and positive will block for that amount of milliseconds. 61 + * 62 + * @public @memberof os_hid_device 59 63 */ 60 64 static inline int 61 65 os_hid_read(struct os_hid_device *hid_dev, ··· 68 72 69 73 /*! 70 74 * Write an output report to the given device. 75 + * 76 + * @public @memberof os_hid_device 71 77 */ 72 78 static inline int 73 79 os_hid_write(struct os_hid_device *hid_dev, const uint8_t *data, size_t size) ··· 80 86 * 81 87 * If the device doesn't have more than one feature report, just request 82 88 * report 0. 89 + * 90 + * @public @memberof os_hid_device 83 91 */ 84 92 static inline int 85 93 os_hid_get_feature(struct os_hid_device *hid_dev, ··· 92 100 93 101 /*! 94 102 * Get a feature report with a timeout. 103 + * 104 + * @public @memberof os_hid_device 95 105 */ 96 106 static inline int 97 107 os_hid_get_feature_timeout(struct os_hid_device *hid_dev, ··· 107 117 * 108 118 * The first byte of the buffer is the report number, to be followed by 109 119 * the data of the report. 120 + * 121 + * @public @memberof os_hid_device 110 122 */ 111 123 static inline int 112 124 os_hid_set_feature(struct os_hid_device *hid_dev, ··· 118 130 119 131 /*! 120 132 * Close and free the given device. 133 + * 134 + * @public @memberof os_hid_device 121 135 */ 122 136 static inline void 123 137 os_hid_destroy(struct os_hid_device *hid_dev) ··· 128 142 #ifdef XRT_OS_LINUX 129 143 /*! 130 144 * Open the given path as a hidraw device. 145 + * 146 + * @public @memberof hid_hidraw 147 + * @relatesalso os_hid_device 131 148 */ 132 149 int 133 150 os_hid_open_hidraw(const char *path, struct os_hid_device **out_hid);
+3
src/xrt/auxiliary/os/os_hid_hidraw.c
··· 28 28 29 29 #include <stdio.h> 30 30 31 + /*! 32 + * @implements os_hid_device 33 + */ 31 34 struct hid_hidraw 32 35 { 33 36 struct os_hid_device base;
+6
src/xrt/auxiliary/tracking/t_debug_hsv_filter.cpp
··· 27 27 #define HSV2_WIN "HSV Channel #3 (Blue)" 28 28 #define HSV3_WIN "HSV Channel #4 (White)" 29 29 30 + /*! 31 + * An @ref xrt_frame_sink that can be used to debug the behavior of 32 + * @ref t_hsv_filter. 33 + * @implements xrt_frame_sink 34 + * @implements xrt_frame_node 35 + */ 30 36 class DebugHSVFilter 31 37 { 32 38 public:
+6
src/xrt/auxiliary/tracking/t_debug_hsv_picker.cpp
··· 28 28 #define max(a, b) (a > b ? a : b) 29 29 #define min(a, b) (a < b ? a : b) 30 30 31 + /*! 32 + * An @ref xrt_frame_sink that can be used to select HSV thresholds 33 + * interactively. 34 + * @implements xrt_frame_sink 35 + * @implements xrt_frame_node 36 + */ 31 37 class DebugHSVPicker 32 38 { 33 39 public:
+5
src/xrt/auxiliary/tracking/t_debug_hsv_viewer.cpp
··· 23 23 24 24 #define HSV_WIN "HSV Filter Tester" 25 25 26 + /*! 27 + * An @ref xrt_frame_sink related to debug viewing of HSV. 28 + * @implements xrt_frame_sink 29 + * @implements xrt_frame_node 30 + */ 26 31 class DebugHSVViewer 27 32 { 28 33 public:
+5
src/xrt/auxiliary/tracking/t_hsv_filter.c
··· 132 132 133 133 #define NUM_CHANNELS 4 134 134 135 + /*! 136 + * An @ref xrt_frame_sink that splits the input based on hue. 137 + * @implements xrt_frame_sink 138 + * @implements xrt_frame_node 139 + */ 135 140 struct t_hsv_filter 136 141 { 137 142 struct xrt_frame_sink base;
+9
src/xrt/auxiliary/tracking/t_tracker_psmv.cpp
··· 33 33 34 34 /*! 35 35 * Single camera. 36 + * 37 + * @see TrackerPSMV 36 38 */ 37 39 struct View 38 40 { ··· 63 65 } 64 66 }; 65 67 68 + /*! 69 + * The core object of the PS Move tracking setup. 70 + * 71 + * @implements xrt_tracked_psmv 72 + * @implements xrt_frame_sink 73 + * @implements xrt_frame_node 74 + */ 66 75 struct TrackerPSMV 67 76 { 68 77 struct xrt_tracked_psmv base = {};
+43
src/xrt/auxiliary/tracking/t_tracking.h
··· 129 129 130 130 /*! 131 131 * Allocates a new stereo calibration data, unreferences the old @p calib. 132 + * 133 + * @public @memberof t_stereo_camera_calibration 132 134 */ 133 135 void 134 136 t_stereo_camera_calibration_alloc(struct t_stereo_camera_calibration **calib); 135 137 136 138 /*! 137 139 * Only to be called by @p t_stereo_camera_calibration_reference. 140 + * 141 + * @private @memberof t_stereo_camera_calibration 138 142 */ 139 143 void 140 144 t_stereo_camera_calibration_destroy(struct t_stereo_camera_calibration *c); ··· 147 151 * @p dst points to will be set to @p src. 148 152 * @param[in] src Object to be have it's refcount increased @p dst is set to 149 153 * this. 154 + * 155 + * @relates t_stereo_camera_calibration 150 156 */ 151 157 static inline void 152 158 t_stereo_camera_calibration_reference(struct t_stereo_camera_calibration **dst, ··· 257 263 uint8_t v_min; 258 264 }; 259 265 266 + /*! 267 + * Parameters for constructing an HSV filter. 268 + * @relates t_hsv_filter 269 + */ 260 270 struct t_hsv_filter_params 261 271 { 262 272 struct t_hsv_filter_color color[3]; ··· 299 309 return t->v[y / T_HSV_STEP][u / T_HSV_STEP][v / T_HSV_STEP]; 300 310 } 301 311 312 + /*! 313 + * Construct an HSV filter sink. 314 + * @public @memberof t_hsv_filter 315 + * 316 + * @relates xrt_frame_context 317 + */ 302 318 int 303 319 t_hsv_filter_create(struct xrt_frame_context *xfctx, 304 320 struct t_hsv_filter_params *params, ··· 312 328 * 313 329 */ 314 330 331 + /*! 332 + * @public @memberof xrt_tracked_psmv 333 + */ 315 334 int 316 335 t_psmv_start(struct xrt_tracked_psmv *xtmv); 317 336 337 + /*! 338 + * @public @memberof xrt_tracked_psmv 339 + */ 318 340 int 319 341 t_psmv_create(struct xrt_frame_context *xfctx, 320 342 struct xrt_colour_rgb_f32 *rgb, ··· 322 344 struct xrt_tracked_psmv **out_xtmv, 323 345 struct xrt_frame_sink **out_sink); 324 346 347 + /*! 348 + * @public @memberof xrt_tracked_psvr 349 + */ 325 350 int 326 351 t_psvr_start(struct xrt_tracked_psvr *xtvr); 327 352 353 + /*! 354 + * @public @memberof xrt_tracked_psvr 355 + */ 328 356 int 329 357 t_psvr_create(struct xrt_frame_context *xfctx, 330 358 struct t_stereo_camera_calibration *data, ··· 420 448 421 449 /*! 422 450 * Sets the calibration parameters to the their default values. 451 + * @public @memberof t_calibration_params 423 452 */ 424 453 static inline void 425 454 t_calibration_params_default(struct t_calibration_params *p) ··· 473 502 * retained, and pointed-to struct modified. 474 503 * @param gui Frame sink 475 504 * @param out_sink Output: created frame sink. 505 + * 506 + * @relates xrt_frame_context 476 507 */ 477 508 int 478 509 t_calibration_stereo_create(struct xrt_frame_context *xfctx, ··· 488 519 * 489 520 */ 490 521 522 + /*! 523 + * @relates xrt_frame_context 524 + */ 491 525 int 492 526 t_convert_yuv_or_yuyv_create(struct xrt_frame_sink *next, 493 527 struct xrt_frame_sink **out_sink); 494 528 495 529 496 530 531 + /*! 532 + * @relates xrt_frame_context 533 + */ 497 534 int 498 535 t_debug_hsv_picker_create(struct xrt_frame_context *xfctx, 499 536 struct xrt_frame_sink *passthrough, 500 537 struct xrt_frame_sink **out_sink); 501 538 539 + /*! 540 + * @relates xrt_frame_context 541 + */ 502 542 int 503 543 t_debug_hsv_viewer_create(struct xrt_frame_context *xfctx, 504 544 struct xrt_frame_sink *passthrough, 505 545 struct xrt_frame_sink **out_sink); 506 546 547 + /*! 548 + * @relates xrt_frame_context 549 + */ 507 550 int 508 551 t_debug_hsv_filter_create(struct xrt_frame_context *xfctx, 509 552 struct xrt_frame_sink *passthrough,
+3 -1
src/xrt/auxiliary/util/u_distortion_mesh.c
··· 158 158 #define div_scalar m_vec2_div_scalar 159 159 #define len m_vec2_len 160 160 161 - 161 + /*! 162 + * @implements u_uv_generator 163 + */ 162 164 struct panotools_state 163 165 { 164 166 struct u_uv_generator base;
+8 -1
src/xrt/auxiliary/util/u_distortion_mesh.h
··· 47 47 }; 48 48 49 49 /*! 50 - * Generator struct for building meshes, can be implemented by drivers for 50 + * @interface u_uv_generator 51 + * 52 + * Generator interface for building meshes, can be implemented by drivers for 51 53 * special meshes. 52 54 * 53 55 * @ingroup aux_util ··· 67 69 * Given a @ref u_uv_generator generates num_views meshes, populates target. 68 70 * 69 71 * @ingroup aux_util 72 + * @public @memberof u_uv_generator 73 + * @relatesalso xrt_hmd_parts 70 74 */ 71 75 void 72 76 u_distortion_mesh_from_gen(struct u_uv_generator *, ··· 78 82 * values into it. This probably isn't the function you want. 79 83 * 80 84 * @ingroup aux_util 85 + * @see u_distortion_mesh_from_panotools 81 86 */ 82 87 void 83 88 u_distortion_mesh_generator_from_panotools( ··· 90 95 * This is probably the function you want. 91 96 * 92 97 * @ingroup aux_util 98 + * @relates xrt_hmd_parts 93 99 */ 94 100 void 95 101 u_distortion_mesh_from_panotools(const struct u_panotools_values *left, ··· 100 106 * Create two distortion meshes with no distortion. 101 107 * 102 108 * @ingroup aux_util 109 + * @relates xrt_hmd_parts 103 110 */ 104 111 void 105 112 u_distortion_mesh_none(struct xrt_hmd_parts *target);
+38 -2
src/xrt/auxiliary/util/u_sink.h
··· 15 15 extern "C" { 16 16 #endif 17 17 18 - 18 + /*! 19 + * @see u_sink_quirk_create 20 + */ 19 21 struct u_sink_quirk_params 20 22 { 21 23 bool stereo_sbs; ··· 23 25 bool leap_motion; 24 26 }; 25 27 28 + /*! 29 + * @relatesalso xrt_frame_sink 30 + * @relates xrt_frame_context 31 + */ 26 32 void 27 33 u_sink_create_format_converter(struct xrt_frame_context *xfctx, 28 34 enum xrt_format f, 29 35 struct xrt_frame_sink *downstream, 30 36 struct xrt_frame_sink **out_xfs); 31 37 38 + /*! 39 + * @relatesalso xrt_frame_sink 40 + * @relates xrt_frame_context 41 + */ 32 42 void 33 43 u_sink_create_to_r8g8b8_or_l8(struct xrt_frame_context *xfctx, 34 44 struct xrt_frame_sink *downstream, 35 45 struct xrt_frame_sink **out_xfs); 36 46 47 + /*! 48 + * @relatesalso xrt_frame_sink 49 + * @relates xrt_frame_context 50 + */ 37 51 void 38 52 u_sink_create_to_yuv_yuyv_uyvy_or_l8(struct xrt_frame_context *xfctx, 39 53 struct xrt_frame_sink *downstream, 40 54 struct xrt_frame_sink **out_xfs); 41 55 56 + /*! 57 + * @relatesalso xrt_frame_sink 58 + * @relates xrt_frame_context 59 + */ 42 60 void 43 61 u_sink_create_to_yuv_or_yuyv(struct xrt_frame_context *xfctx, 44 62 struct xrt_frame_sink *downstream, 45 63 struct xrt_frame_sink **out_xfs); 46 - 64 + /*! 65 + * @public @memberof u_sink_deinterleaver 66 + * @relatesalso xrt_frame_sink 67 + * @relates xrt_frame_context 68 + */ 47 69 void 48 70 u_sink_deinterleaver_create(struct xrt_frame_context *xfctx, 49 71 struct xrt_frame_sink *downstream, 50 72 struct xrt_frame_sink **out_xfs); 51 73 74 + /*! 75 + * @public @memberof u_sink_queue 76 + * @relatesalso xrt_frame_sink 77 + * @relates xrt_frame_context 78 + */ 52 79 bool 53 80 u_sink_queue_create(struct xrt_frame_context *xfctx, 54 81 struct xrt_frame_sink *downstream, 55 82 struct xrt_frame_sink **out_xfs); 56 83 84 + /*! 85 + * @public @memberof u_sink_quirk 86 + * @relatesalso xrt_frame_sink 87 + * @relates xrt_frame_context 88 + */ 57 89 void 58 90 u_sink_quirk_create(struct xrt_frame_context *xfctx, 59 91 struct xrt_frame_sink *downstream, 60 92 struct u_sink_quirk_params *params, 61 93 struct xrt_frame_sink **out_xfs); 62 94 95 + /*! 96 + * @public @memberof u_sink_split 97 + * @relatesalso xrt_frame_sink 98 + */ 63 99 void 64 100 u_sink_split_create(struct xrt_frame_context *xfctx, 65 101 struct xrt_frame_sink *left,
+5
src/xrt/auxiliary/util/u_sink_converter.c
··· 26 26 * 27 27 */ 28 28 29 + /*! 30 + * An @ref xrt_frame_sink that converts frames. 31 + * @implements xrt_frame_sink 32 + * @implements xrt_frame_node 33 + */ 29 34 struct u_sink_converter 30 35 { 31 36 struct xrt_frame_sink base;
+6 -1
src/xrt/auxiliary/util/u_sink_deinterleaver.c
··· 2 2 // SPDX-License-Identifier: BSL-1.0 3 3 /*! 4 4 * @file 5 - * @brief A @ref xrt_frame_sink that deinterleaves stereo frames. 5 + * @brief An @ref xrt_frame_sink that deinterleaves stereo frames. 6 6 * @author Pete Black <pblack@collabora.com> 7 7 * @author Jakob Bornecrantz <jakob@collabora.com> 8 8 * @ingroup aux_util ··· 13 13 #include "util/u_frame.h" 14 14 15 15 16 + /*! 17 + * An @ref xrt_frame_sink that deinterleaves stereo frames. 18 + * @implements xrt_frame_sink 19 + * @implements xrt_frame_node 20 + */ 16 21 struct u_sink_deinterleaver 17 22 { 18 23 struct xrt_frame_sink base;
+6 -1
src/xrt/auxiliary/util/u_sink_queue.c
··· 2 2 // SPDX-License-Identifier: BSL-1.0 3 3 /*! 4 4 * @file 5 - * @brief A @ref xrt_frame_sink queue. 5 + * @brief An @ref xrt_frame_sink queue. 6 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 7 * @ingroup aux_util 8 8 */ ··· 14 14 #include <pthread.h> 15 15 16 16 17 + /*! 18 + * An @ref xrt_frame_sink queue. 19 + * @implements xrt_frame_sink 20 + * @implements xrt_frame_node 21 + */ 17 22 struct u_sink_queue 18 23 { 19 24 struct xrt_frame_sink base;
+6 -2
src/xrt/auxiliary/util/u_sink_quirk.c
··· 2 2 // SPDX-License-Identifier: BSL-1.0 3 3 /*! 4 4 * @file 5 - * @brief A @ref xrt_frame_sink that quirks frames. 5 + * @brief An @ref xrt_frame_sink that quirks frames. 6 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 7 * @ingroup aux_util 8 8 */ ··· 10 10 #include "util/u_misc.h" 11 11 #include "util/u_sink.h" 12 12 13 - 13 + /*! 14 + * An @ref xrt_frame_sink that quirks frames. 15 + * @implements xrt_frame_sink 16 + * @implements xrt_frame_node 17 + */ 14 18 struct u_sink_quirk 15 19 { 16 20 struct xrt_frame_sink base;
+6 -1
src/xrt/auxiliary/util/u_sink_split.c
··· 2 2 // SPDX-License-Identifier: BSL-1.0 3 3 /*! 4 4 * @file 5 - * @brief A @ref xrt_frame_sink splitter. 5 + * @brief An @ref xrt_frame_sink splitter. 6 6 * @author Jakob Bornecrantz <jakob@collabora.com> 7 7 * @ingroup aux_util 8 8 */ ··· 11 11 #include "util/u_sink.h" 12 12 13 13 14 + /*! 15 + * An @ref xrt_frame_sink splitter. 16 + * @implements xrt_frame_sink 17 + * @implements xrt_frame_node 18 + */ 14 19 struct u_sink_split 15 20 { 16 21 struct xrt_frame_sink base;
+16 -2
src/xrt/compositor/client/comp_gl_client.h
··· 23 23 */ 24 24 25 25 /*! 26 + * @class client_gl_swapchain 27 + * 26 28 * Wraps the real compositor swapchain providing a OpenGL based interface. 27 29 * 28 30 * Almost a one to one mapping to a OpenXR swapchain. 29 31 * 30 32 * @ingroup comp_client 33 + * @implements xrt_swapchain_gl 31 34 */ 32 35 struct client_gl_swapchain 33 36 { ··· 37 40 }; 38 41 39 42 /*! 43 + * @class client_gl_compositor 44 + * 40 45 * Wraps the real compositor providing a OpenGL based interface. 41 46 * 42 47 * @ingroup comp_client 48 + * @implements xrt_compositor_gl 43 49 */ 44 50 struct client_gl_compositor 45 51 { ··· 56 62 */ 57 63 58 64 /*! 59 - * Convenience function to convert a xrt_swapchain to a client_gl_swapchain. 65 + * Down-cast helper. 66 + * @private @memberof client_gl_swapchain 60 67 */ 61 68 static inline struct client_gl_swapchain * 62 69 client_gl_swapchain(struct xrt_swapchain *xsc) ··· 65 72 } 66 73 67 74 /*! 68 - * Convenience function to convert a xrt_compositor to a client_gl_compositor. 75 + * Down-cast helper. 76 + * @private @memberof client_gl_compositor 69 77 */ 70 78 static inline struct client_gl_compositor * 71 79 client_gl_compositor(struct xrt_compositor *xc) ··· 79 87 80 88 /*! 81 89 * Fill in a client_gl_compositor and do common OpenGL sanity checking. 90 + * 91 + * OpenGL can have multiple backing window systems we have to interact with, so 92 + * there isn't just one unified OpenGL client constructor. 93 + * 94 + * @public @memberof client_gl_compositor 95 + * @relatesalso xrt_compositor_fd 82 96 */ 83 97 bool 84 98 client_gl_compositor_init(struct client_gl_compositor *c,
+6 -4
src/xrt/compositor/client/comp_gl_xlib_client.h
··· 18 18 19 19 20 20 /*! 21 + * @class client_gl_xlib_compositor 21 22 * A client facing xlib OpenGL base compositor. 22 23 * 23 24 * @ingroup comp_client 25 + * @extends client_gl_compositor 24 26 */ 25 27 struct client_gl_xlib_compositor 26 28 { ··· 29 31 }; 30 32 31 33 /*! 32 - * Convenience function to convert a xrt_compositor to a 33 - * client_gl_xlib_compositor. 34 + * Down-cast helper. 34 35 * 35 - * @ingroup comp_client 36 + * @private @memberof client_gl_xlib_compositor 36 37 */ 37 38 static inline struct client_gl_xlib_compositor * 38 39 client_gl_xlib_compositor(struct xrt_compositor *xc) ··· 43 44 /*! 44 45 * Create a new client_gl_xlib_compositor. 45 46 * 46 - * @ingroup comp_client 47 + * @public @memberof client_gl_xlib_compositor 48 + * @relatesalso xrt_compositor_fd 47 49 */ 48 50 struct client_gl_xlib_compositor * 49 51 client_gl_xlib_compositor_create(struct xrt_compositor_fd *xcfd,
+15 -5
src/xrt/compositor/client/comp_vk_client.h
··· 32 32 * Almost a one to one mapping to a OpenXR swapchain. 33 33 * 34 34 * @ingroup comp_client 35 + * @implements xrt_swapchain_vk 35 36 */ 36 37 struct client_vk_swapchain 37 38 { 38 39 struct xrt_swapchain_vk base; 40 + 41 + //! Owning reference to the backing fd swapchain. 39 42 struct xrt_swapchain_fd *xscfd; 43 + 44 + //! Non-owning reference to our parent compositor. 40 45 struct client_vk_compositor *c; 41 46 }; 42 47 43 48 /*! 49 + * @class client_vk_compositor 50 + * 44 51 * Wraps the real compositor providing a Vulkan based interface. 45 52 * 46 53 * @ingroup comp_client 54 + * @implements xrt_compositor_vk 47 55 */ 48 56 struct client_vk_compositor 49 57 { 50 58 struct xrt_compositor_vk base; 51 59 60 + //! Owning reference to the backing fd compositor 52 61 struct xrt_compositor_fd *xcfd; 53 62 54 63 struct vk_bundle vk; ··· 62 71 */ 63 72 64 73 /*! 65 - * Convenience function to convert a xrt_swapchain to a client_vk_swapchain. 74 + * Down-cast helper. 66 75 * 67 - * @ingroup comp_client 76 + * @private @memberof client_vk_swapchain 68 77 */ 69 78 static inline struct client_vk_swapchain * 70 79 client_vk_swapchain(struct xrt_swapchain *xsc) ··· 73 82 } 74 83 75 84 /*! 76 - * Convenience function to convert a xrt_compositor to a client_vk_compositor. 85 + * Down-cast helper. 77 86 * 78 - * @ingroup comp_client 87 + * @private @memberof client_vk_compositor 79 88 */ 80 89 static inline struct client_vk_compositor * 81 90 client_vk_compositor(struct xrt_compositor *xc) ··· 86 95 /*! 87 96 * Create a new client_vk_compositor. 88 97 * 89 - * @ingroup comp_client 98 + * @public @memberof client_vk_compositor 99 + * @relatesalso xrt_compositor_fd 90 100 */ 91 101 struct client_vk_compositor * 92 102 client_vk_compositor_create(struct xrt_compositor_fd *xcfd,
+23 -11
src/xrt/compositor/main/comp_compositor.h
··· 37 37 * A single swapchain image, holds the needed state for tracking image usage. 38 38 * 39 39 * @ingroup comp_main 40 + * @see comp_swapchain 40 41 */ 41 42 struct comp_swapchain_image 42 43 { ··· 59 60 * Not used by the window backend that uses the vk_swapchain to render to. 60 61 * 61 62 * @ingroup comp_main 63 + * @implements xrt_swapchain_fd 64 + * @see comp_compositor 62 65 */ 63 66 struct comp_swapchain 64 67 { ··· 74 77 */ 75 78 struct u_index_fifo fifo; 76 79 }; 77 - 80 + /*! 81 + * Tag for distinguishing the union contents of @ref comp_layer. 82 + */ 78 83 enum comp_layer_type 79 84 { 85 + //! comp_layer::stereo is initialized 80 86 COMP_LAYER_STEREO_PROJECTION, 87 + //! comp_layer::quad is initialized 81 88 COMP_LAYER_QUAD, 82 89 }; 83 90 ··· 85 92 * A quad layer. 86 93 * 87 94 * @ingroup comp_main 95 + * @see comp_layer 88 96 */ 89 97 struct comp_layer_quad 90 98 { ··· 101 109 * A stereo projection layer. 102 110 * 103 111 * @ingroup comp_main 112 + * @see comp_layer 104 113 */ 105 114 struct comp_layer_stereo 106 115 { ··· 116 125 * A single layer. 117 126 * 118 127 * @ingroup comp_main 128 + * @see comp_layer_slot 119 129 */ 120 130 struct comp_layer 121 131 { ··· 133 143 * A stack of layers. 134 144 * 135 145 * @ingroup comp_main 146 + * @see comp_compositor 136 147 */ 137 148 struct comp_layer_slot 138 149 { ··· 147 158 * Main compositor struct tying everything in the compositor together. 148 159 * 149 160 * @ingroup comp_main 161 + * @implements xrt_compositor_fd 150 162 */ 151 163 struct comp_compositor 152 164 { ··· 245 257 /*! 246 258 * Convenience function to convert a xrt_swapchain to a comp_swapchain. 247 259 * 248 - * @ingroup comp_main 260 + * @private @memberof comp_swapchain 249 261 */ 250 262 static inline struct comp_swapchain * 251 263 comp_swapchain(struct xrt_swapchain *xsc) ··· 256 268 /*! 257 269 * Convenience function to convert a xrt_compositor to a comp_compositor. 258 270 * 259 - * @ingroup comp_main 271 + * @private @memberof comp_compositor 260 272 */ 261 273 static inline struct comp_compositor * 262 274 comp_compositor(struct xrt_compositor *xc) ··· 268 280 * Do garbage collection, destroying any resources that has been scheduled for 269 281 * destruction from other threads. 270 282 * 271 - * @ingroup comp_main 283 + * @public @memberof comp_compositor 272 284 */ 273 285 void 274 286 comp_compositor_garbage_collect(struct comp_compositor *c); ··· 276 288 /*! 277 289 * A compositor function that is implemented in the swapchain code. 278 290 * 279 - * @ingroup comp_main 291 + * @public @memberof comp_compositor 280 292 */ 281 293 struct xrt_swapchain * 282 294 comp_swapchain_create(struct xrt_compositor *xc, ··· 295 307 * does the actual destruction and is called from @ref 296 308 * comp_compositor_garbage_collect. 297 309 * 298 - * @ingroup comp_main 310 + * @private @memberof comp_swapchain 299 311 */ 300 312 void 301 313 comp_swapchain_really_destroy(struct comp_swapchain *sc); ··· 303 315 /*! 304 316 * Printer helper. 305 317 * 306 - * @ingroup comp_main 318 + * @public @memberof comp_compositor 307 319 */ 308 320 void 309 321 comp_compositor_print(struct comp_compositor *c, ··· 314 326 /*! 315 327 * Spew level logging. 316 328 * 317 - * @ingroup comp_main 329 + * @relates comp_compositor 318 330 */ 319 331 #define COMP_SPEW(c, ...) \ 320 332 do { \ ··· 326 338 /*! 327 339 * Debug level logging. 328 340 * 329 - * @ingroup comp_main 341 + * @relates comp_compositor 330 342 */ 331 343 #define COMP_DEBUG(c, ...) \ 332 344 do { \ ··· 338 350 /*! 339 351 * Mode printing. 340 352 * 341 - * @ingroup comp_main 353 + * @relates comp_compositor 342 354 */ 343 355 #define COMP_PRINT_MODE(c, ...) \ 344 356 do { \ ··· 350 362 /*! 351 363 * Error level logging. 352 364 * 353 - * @ingroup comp_main 365 + * @relates comp_compositor 354 366 */ 355 367 #define COMP_ERROR(c, ...) \ 356 368 do { \
+7 -2
src/xrt/compositor/main/comp_window.h
··· 25 25 */ 26 26 27 27 /*! 28 + * @interface comp_window 28 29 * A output device or a window, often directly connected to the device. 29 30 * 30 31 * @ingroup comp_main ··· 61 62 * Create a xcb window. 62 63 * 63 64 * @ingroup comp_main 65 + * @public @memberof comp_window_xcb 64 66 */ 65 67 struct comp_window * 66 68 comp_window_xcb_create(struct comp_compositor *c); ··· 71 73 * Create a wayland window. 72 74 * 73 75 * @ingroup comp_main 76 + * @public @memberof comp_window_wayland 74 77 */ 75 78 struct comp_window * 76 79 comp_window_wayland_create(struct comp_compositor *c); ··· 78 81 79 82 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 80 83 /*! 81 - * Create a direct surface to a HMD over RandR. 84 + * Create a direct surface to an HMD over RandR. 82 85 * 83 86 * @ingroup comp_main 87 + * @public @memberof comp_window_direct_randr 84 88 */ 85 89 struct comp_window * 86 90 comp_window_direct_randr_create(struct comp_compositor *c); 87 91 88 92 /*! 89 - * Create a direct surface to a HMD on NVIDIA. 93 + * Create a direct surface to an HMD on NVIDIA. 90 94 * 91 95 * @ingroup comp_main 96 + * @public @memberof comp_window_direct_nvidia 92 97 */ 93 98 struct comp_window * 94 99 comp_window_direct_nvidia_create(struct comp_compositor *c);
+3 -1
src/xrt/compositor/main/comp_window_direct_nvidia.c
··· 31 31 /*! 32 32 * Direct mode "window" into a device, using Vulkan direct mode extension 33 33 * and xcb. 34 + * 35 + * @implements comp_window 34 36 */ 35 37 struct comp_window_direct_nvidia 36 38 { ··· 43 45 44 46 /* 45 47 * 46 - * Pre decalre functions 48 + * Forward declare functions 47 49 * 48 50 */ 49 51
+3 -1
src/xrt/compositor/main/comp_window_direct_randr.c
··· 39 39 /*! 40 40 * Direct mode "window" into a device, using Vulkan direct mode extension 41 41 * and xcb. 42 + * 43 + * @implements comp_window 42 44 */ 43 45 struct comp_window_direct_randr 44 46 { ··· 56 58 57 59 /* 58 60 * 59 - * Pre decalre functions 61 + * Forward declare functions 60 62 * 61 63 */ 62 64
+2
src/xrt/compositor/main/comp_window_wayland.c
··· 29 29 30 30 /*! 31 31 * A Wayland connection and window. 32 + * 33 + * @implements comp_window 32 34 */ 33 35 struct comp_window_wayland 34 36 {
+2
src/xrt/compositor/main/comp_window_xcb.c
··· 43 43 44 44 /*! 45 45 * A xcb connection and window. 46 + * 47 + * @implements comp_window 46 48 */ 47 49 struct comp_window_xcb 48 50 {
+3
src/xrt/drivers/arduino/arduino_device.c
··· 57 57 struct arduino_parsed_sample sample; 58 58 }; 59 59 60 + /*! 61 + * @implements xrt_device 62 + */ 60 63 struct arduino_device 61 64 { 62 65 struct xrt_device base;
+4
src/xrt/drivers/arduino/arduino_prober.c
··· 35 35 * Arduino prober struct. 36 36 * 37 37 * @ingroup drv_arduino 38 + * @implements xrt_auto_prober 38 39 */ 39 40 struct arduino_prober 40 41 { ··· 52 53 * 53 54 */ 54 55 56 + //! @private @memberof arduino_prober 55 57 static inline struct arduino_prober * 56 58 arduino_prober(struct xrt_auto_prober *p) 57 59 { 58 60 return (struct arduino_prober *)p; 59 61 } 60 62 63 + //! @public @memberof arduino_prober 61 64 static void 62 65 arduino_prober_destroy(struct xrt_auto_prober *p) 63 66 { ··· 66 69 free(ap); 67 70 } 68 71 72 + //! @public @memberof arduino_prober 69 73 static struct xrt_device * 70 74 arduino_prober_autoprobe(struct xrt_auto_prober *xap, 71 75 cJSON *attached_data,
+3
src/xrt/drivers/daydream/daydream_device.h
··· 61 61 struct daydream_parsed_sample sample; 62 62 }; 63 63 64 + /*! 65 + * @implements xrt_device 66 + */ 64 67 struct daydream_device 65 68 { 66 69 struct xrt_device base;
+5 -1
src/xrt/drivers/daydream/daydream_prober.c
··· 27 27 * 28 28 */ 29 29 30 - // Should the experimental PSVR driver be enabled. 30 + // Should the experimental Daydream driver be enabled. 31 31 DEBUG_GET_ONCE_BOOL_OPTION(daydream_enable, "DAYDREAM_ENABLE", true) 32 32 DEBUG_GET_ONCE_BOOL_OPTION(daydream_spew, "DAYDREAM_PRINT_SPEW", false) 33 33 DEBUG_GET_ONCE_BOOL_OPTION(daydream_debug, "DAYDREAM_PRINT_DEBUG", false) ··· 36 36 * Daydream prober struct. 37 37 * 38 38 * @ingroup drv_daydream 39 + * @implements xrt_auto_prober 39 40 */ 40 41 struct daydream_prober 41 42 { ··· 53 54 * 54 55 */ 55 56 57 + //! @private @memberof daydream_prober 56 58 static inline struct daydream_prober * 57 59 daydream_prober(struct xrt_auto_prober *p) 58 60 { 59 61 return (struct daydream_prober *)p; 60 62 } 61 63 64 + //! @public @memberof daydream_prober 62 65 static void 63 66 daydream_prober_destroy(struct xrt_auto_prober *p) 64 67 { ··· 67 70 free(pdaydream); 68 71 } 69 72 73 + //! @public @memberof daydream_prober 70 74 static struct xrt_device * 71 75 daydream_prober_autoprobe(struct xrt_auto_prober *xap, 72 76 cJSON *attached_data,
+3
src/xrt/drivers/dummy/dummy_hmd.c
··· 32 32 * 33 33 */ 34 34 35 + /*! 36 + * @implements xrt_device 37 + */ 35 38 struct dummy_hmd 36 39 { 37 40 struct xrt_device base;
+6 -1
src/xrt/drivers/dummy/dummy_prober.c
··· 17 17 18 18 #include "dummy_interface.h" 19 19 20 - 20 + /*! 21 + * @implements xrt_auto_prober 22 + */ 21 23 struct dummy_prober 22 24 { 23 25 struct xrt_auto_prober base; 24 26 }; 25 27 28 + //! @private @memberof dummy_prober 26 29 static inline struct dummy_prober * 27 30 dummy_prober(struct xrt_auto_prober *p) 28 31 { 29 32 return (struct dummy_prober *)p; 30 33 } 31 34 35 + //! @public @memberof dummy_prober 32 36 static void 33 37 dummy_prober_destroy(struct xrt_auto_prober *p) 34 38 { ··· 37 41 free(dp); 38 42 } 39 43 44 + //! @public @memberof dummy_prober 40 45 static struct xrt_device * 41 46 dummy_prober_autoprobe(struct xrt_auto_prober *xap, 42 47 cJSON *attached_data,
+3
src/xrt/drivers/hdk/hdk_device.h
··· 24 24 HDK_VARIANT_2 25 25 }; 26 26 27 + /*! 28 + * @implements xrt_device 29 + */ 27 30 struct hdk_device 28 31 { 29 32 struct xrt_device base;
+2
src/xrt/drivers/hydra/hydra_driver.c
··· 154 154 * A Razer Hydra system containing two controllers. 155 155 * 156 156 * @ingroup drv_hydra 157 + * @extends xrt_tracking_origin 157 158 */ 158 159 struct hydra_system 159 160 { ··· 191 192 * A Razer Hydra device, representing just a single controller. 192 193 * 193 194 * @ingroup drv_hydra 195 + * @implements xrt_device 194 196 */ 195 197 struct hydra_device 196 198 {
+2
src/xrt/drivers/north_star/ns_hmd.h
··· 118 118 * Information about the whole North Star headset. 119 119 * 120 120 * @ingroup drv_ns 121 + * @implements xrt_device 121 122 */ 122 123 struct ns_hmd 123 124 { ··· 139 140 * The mesh generator for the North Star distortion. 140 141 * 141 142 * @ingroup drv_ns 143 + * @implements u_uv_generator 142 144 */ 143 145 struct ns_mesh 144 146 {
+6
src/xrt/drivers/north_star/ns_prober.c
··· 24 24 DEBUG_GET_ONCE_BOOL_OPTION(ns_spew, "NS_PRINT_SPEW", false) 25 25 DEBUG_GET_ONCE_BOOL_OPTION(ns_debug, "NS_PRINT_DEBUG", false) 26 26 27 + /*! 28 + * @implements xrt_auto_prober 29 + */ 27 30 struct ns_prober 28 31 { 29 32 struct xrt_auto_prober base; ··· 32 35 bool print_debug; 33 36 }; 34 37 38 + //! @private @memberof ns_prober 35 39 static inline struct ns_prober * 36 40 ns_prober(struct xrt_auto_prober *p) 37 41 { 38 42 return (struct ns_prober *)p; 39 43 } 40 44 45 + //! @public @memberof ns_prober 41 46 static void 42 47 ns_prober_destroy(struct xrt_auto_prober *p) 43 48 { ··· 46 51 free(nsp); 47 52 } 48 53 54 + //! @public @memberof ns_prober 49 55 static struct xrt_device * 50 56 ns_prober_autoprobe(struct xrt_auto_prober *xap, 51 57 cJSON *attached_data,
+3
src/xrt/drivers/ohmd/oh_device.h
··· 19 19 typedef struct ohmd_context ohmd_context; 20 20 typedef struct ohmd_device ohmd_device; 21 21 22 + /*! 23 + * @implements xrt_device 24 + */ 22 25 struct oh_device 23 26 { 24 27 struct xrt_device base;
+6
src/xrt/drivers/ohmd/oh_prober.c
··· 24 24 DEBUG_GET_ONCE_BOOL_OPTION(oh_debug, "OH_PRINT_DEBUG", false) 25 25 DEBUG_GET_ONCE_BOOL_OPTION(oh_external, "OH_EXTERNAL_DRIVER", false) 26 26 27 + /*! 28 + * @implements xrt_auto_prober 29 + */ 27 30 struct oh_prober 28 31 { 29 32 struct xrt_auto_prober base; ··· 32 35 bool print_debug; 33 36 }; 34 37 38 + //! @private @memberof oh_prober 35 39 static inline struct oh_prober * 36 40 oh_prober(struct xrt_auto_prober *p) 37 41 { 38 42 return (struct oh_prober *)p; 39 43 } 40 44 45 + //! @public @memberof oh_prober 41 46 static void 42 47 oh_prober_destroy(struct xrt_auto_prober *p) 43 48 { ··· 51 56 free(ohp); 52 57 } 53 58 59 + //! @public @memberof oh_prober 54 60 static struct xrt_device * 55 61 oh_prober_autoprobe(struct xrt_auto_prober *xap, 56 62 cJSON *attached_data,
+2
src/xrt/drivers/psmv/psmv_driver.c
··· 440 440 * Translated to axis that means the ball is on the Y+ axis, the buttons on the 441 441 * Z+ axis, the trigger on the Z- axis, the USB port on the Y- axis, the start 442 442 * button on the X+ axis, select button on the X- axis. 443 + * 444 + * @implements xrt_device 443 445 */ 444 446 struct psmv_device 445 447 {
+1
src/xrt/drivers/psvr/psvr_device.c
··· 49 49 * Private struct for the @ref drv_psvr device. 50 50 * 51 51 * @ingroup drv_psvr 52 + * @implements xrt_device 52 53 */ 53 54 struct psvr_device 54 55 {
+1
src/xrt/drivers/psvr/psvr_interface.h
··· 24 24 * Create a probe for PSVR devices. 25 25 * 26 26 * @ingroup drv_psvr 27 + * @relates xrt_auto_prober 27 28 */ 28 29 struct xrt_auto_prober * 29 30 psvr_create_auto_prober(void);
+4
src/xrt/drivers/psvr/psvr_prober.c
··· 37 37 * PSVR prober struct. 38 38 * 39 39 * @ingroup drv_psvr 40 + * @implements xrt_auto_prober 40 41 */ 41 42 struct psvr_prober 42 43 { ··· 54 55 * 55 56 */ 56 57 58 + //! @private @memberof psvr_prober 57 59 static inline struct psvr_prober * 58 60 psvr_prober(struct xrt_auto_prober *p) 59 61 { 60 62 return (struct psvr_prober *)p; 61 63 } 62 64 65 + //! @public @memberof psvr_prober 63 66 static void 64 67 psvr_prober_destroy(struct xrt_auto_prober *p) 65 68 { ··· 68 71 free(ppsvr); 69 72 } 70 73 74 + //! @public @memberof psvr_prober 71 75 static struct xrt_device * 72 76 psvr_prober_autoprobe(struct xrt_auto_prober *xap, 73 77 cJSON *attached_data,
+3
src/xrt/drivers/realsense/rs_6dof.c
··· 28 28 29 29 30 30 31 + /*! 32 + * @implements xrt_device 33 + */ 31 34 struct rs_6dof 32 35 { 33 36 struct xrt_device base;
+7
src/xrt/drivers/survive/survive_driver.c
··· 106 106 static bool survive_already_initialized = false; 107 107 108 108 #define MAX_PENDING_EVENTS 30 109 + 110 + /*! 111 + * @implements xrt_device 112 + */ 109 113 struct survive_device 110 114 { 111 115 struct xrt_device base; ··· 128 132 VIVE_VARIANT_INDEX 129 133 }; 130 134 135 + /*! 136 + * @extends xrt_tracking_origin 137 + */ 131 138 struct survive_system 132 139 { 133 140 struct xrt_tracking_origin base;
+33 -1
src/xrt/drivers/v4l2/v4l2_driver.c
··· 35 35 * 36 36 */ 37 37 38 + /*! 39 + * Spew level logging. 40 + * 41 + * Outputs a line, from the given format string and arguments, only if 42 + * v4l2_fs::print_spew is true. 43 + * @relates v4l2_fs 44 + */ 38 45 #define V_SPEW(p, ...) \ 39 46 do { \ 40 47 if (p->print_spew) { \ ··· 44 51 } \ 45 52 } while (false) 46 53 54 + /*! 55 + * Debug level logging. 56 + * 57 + * Outputs a line, from the given format string and arguments, only if 58 + * v4l2_fs::print_debug is true. 59 + * 60 + * @relates v4l2_fs 61 + */ 47 62 #define V_DEBUG(p, ...) \ 48 63 do { \ 49 64 if (p->print_debug) { \ ··· 53 68 } \ 54 69 } while (false) 55 70 71 + /*! 72 + * Error level logging. 73 + * 74 + * Outputs a line, from the given format string and arguments. 75 + * 76 + * @relates v4l2_fs 77 + */ 56 78 #define V_ERROR(p, ...) \ 57 79 do { \ 58 80 fprintf(stderr, "%s - ", __func__); \ ··· 91 113 * 92 114 */ 93 115 116 + /*! 117 + * @extends xrt_frame 118 + * @ingroup drv_v4l2 119 + */ 94 120 struct v4l2_frame 95 121 { 96 122 struct xrt_frame base; ··· 100 126 struct v4l2_buffer v_buf; 101 127 }; 102 128 129 + /*! 130 + * @ingroup drv_v4l2 131 + */ 103 132 struct v4l2_control_state 104 133 { 105 134 int force; ··· 110 139 }; 111 140 112 141 /*! 113 - * A single open v4l2 capture device, starts it's own thread and waits on it. 142 + * A single open v4l2 capture device, starts its own thread and waits on it. 143 + * 144 + * @implements xrt_frame_node 145 + * @implements xrt_fs 114 146 */ 115 147 struct v4l2_fs 116 148 {
+1
src/xrt/drivers/v4l2/v4l2_interface.h
··· 28 28 * Descriptor of a v4l2 source. 29 29 * 30 30 * @ingroup drv_v4l2 31 + * @extends xrt_fs_mode 31 32 */ 32 33 struct v4l2_source_descriptor 33 34 {
+1
src/xrt/drivers/vive/vive_controller_driver.c
··· 127 127 * A Vive Controller device, representing just a single controller. 128 128 * 129 129 * @ingroup drv_vive 130 + * @implements xrt_device 130 131 */ 131 132 struct vive_controller_device 132 133 {
+3
src/xrt/drivers/vive/vive_device.h
··· 48 48 VIVE_VARIANT_INDEX 49 49 }; 50 50 51 + /*! 52 + * @implements xrt_device 53 + */ 51 54 struct vive_device 52 55 { 53 56 struct xrt_device base;
+138 -42
src/xrt/include/xrt/xrt_compositor.h
··· 70 70 }; 71 71 72 72 /*! 73 - * Common swapchain base. 73 + * @interface xrt_swapchain 74 + * Common swapchain interface/base. 74 75 * 75 76 * @ingroup xrt_iface 76 77 */ ··· 106 107 }; 107 108 108 109 /*! 109 - * Helper for xrt_swapchain::acquire_image. 110 + * @copydoc xrt_swapchain::acquire_image 110 111 * 111 - * @ingroup xrt_iface 112 + * Helper for calling through the function pointer. 113 + * 114 + * @public @memberof xrt_swapchain 112 115 */ 113 116 static inline bool 114 117 xrt_swapchain_acquire_image(struct xrt_swapchain *xsc, uint32_t *index) ··· 117 120 } 118 121 119 122 /*! 120 - * Helper for xrt_swapchain::wait_image. 123 + * @copydoc xrt_swapchain::wait_image 124 + * 125 + * Helper for calling through the function pointer. 121 126 * 122 - * @ingroup xrt_iface 127 + * @public @memberof xrt_swapchain 123 128 */ 124 129 static inline bool 125 130 xrt_swapchain_wait_image(struct xrt_swapchain *xsc, ··· 130 135 } 131 136 132 137 /*! 133 - * Helper for xrt_swapchain::release_image. 138 + * @copydoc xrt_swapchain::release_image 139 + * 140 + * Helper for calling through the function pointer. 134 141 * 135 - * @ingroup xrt_iface 142 + * @public @memberof xrt_swapchain 136 143 */ 137 144 static inline bool 138 145 xrt_swapchain_release_image(struct xrt_swapchain *xsc, uint32_t index) ··· 141 148 } 142 149 143 150 /*! 144 - * Helper for xrt_swapchain::destroy, does a null check and sets xc_ptr to 145 - * null if freed. 151 + * @copydoc xrt_swapchain::destroy 152 + * 153 + * Helper for calling through the function pointer: does a null check and sets 154 + * xsc_ptr to null if freed. 146 155 * 147 - * @ingroup xrt_iface 156 + * @public @memberof xrt_swapchain 148 157 */ 149 158 static inline void 150 159 xrt_swapchain_destroy(struct xrt_swapchain **xsc_ptr) ··· 159 168 } 160 169 161 170 /*! 162 - * Common compositor base. 171 + * @interface xrt_compositor 172 + * 173 + * Common compositor client interface/base. 163 174 * 164 175 * @ingroup xrt_iface 165 176 */ ··· 241 252 void (*discard_frame)(struct xrt_compositor *xc); 242 253 243 254 /*! 244 - * Begins layer submission, this and the other layer_* calls equivalent 245 - * to xrEndFrame, except over multiple class. It's only after 255 + * Begins layer submission, this and the other layer_* calls are 256 + * equivalent to xrEndFrame, except over multiple calls. It's only after 246 257 * @p layer_commit that layers will be displayed. From the point of view 247 258 * of the swapchain the image is used as soon as it's given in a call. 248 259 */ ··· 252 263 /*! 253 264 * Adds a stereo projection layer for submissions. 254 265 * 266 + * @param xc Self pointer 255 267 * @param timestamp When should this layer be shown. 256 268 * @param xdev The device the layer is relative to. 257 269 * @param name Which pose this layer is relative to. ··· 294 306 * Adds a quad layer for submission, the center of the quad is specified 295 307 * by the pose and extends outwards from it. 296 308 * 309 + * @param xc Self pointer 297 310 * @param timestamp When should this layer be shown. 298 311 * @param xdev The device the layer is relative to. 299 312 * @param name Which pose this layer is relative to. ··· 337 350 }; 338 351 339 352 /*! 340 - * Helper for xrt_compositor::create_swapchain 353 + * @copydoc xrt_compositor::create_swapchain 354 + * 355 + * Helper for calling through the function pointer. 341 356 * 342 - * @ingroup xrt_iface 357 + * @public @memberof xrt_compositor 343 358 */ 344 359 static inline struct xrt_swapchain * 345 360 xrt_comp_create_swapchain(struct xrt_compositor *xc, ··· 359 374 } 360 375 361 376 /*! 362 - * Helper for xrt_compositor::poll_events 377 + * @copydoc xrt_compositor::poll_events 363 378 * 364 - * @ingroup xrt_iface 379 + * Helper for calling through the function pointer. 380 + * 381 + * @public @memberof xrt_compositor 365 382 */ 366 383 static inline void 367 384 xrt_comp_poll_events(struct xrt_compositor *xc, uint64_t *WIP) ··· 370 387 } 371 388 372 389 /*! 373 - * Helper for xrt_compositor::prepare_session 390 + * @copydoc xrt_compositor::prepare_session 374 391 * 375 - * @ingroup xrt_iface 392 + * Helper for calling through the function pointer. 393 + * 394 + * @public @memberof xrt_compositor 376 395 */ 377 396 static inline void 378 397 xrt_comp_prepare_session(struct xrt_compositor *xc) ··· 381 400 } 382 401 383 402 /*! 384 - * Helper for xrt_compositor::begin_session 403 + * @copydoc xrt_compositor::begin_session 385 404 * 386 - * @ingroup xrt_iface 405 + * Helper for calling through the function pointer. 406 + * 407 + * @public @memberof xrt_compositor 387 408 */ 388 409 static inline void 389 410 xrt_comp_begin_session(struct xrt_compositor *xc, enum xrt_view_type view_type) ··· 392 413 } 393 414 394 415 /*! 395 - * Helper for xrt_compositor::end_session 416 + * @copydoc xrt_compositor::end_session 417 + * 418 + * Helper for calling through the function pointer. 396 419 * 397 - * @ingroup xrt_iface 420 + * @public @memberof xrt_compositor 398 421 */ 399 422 static inline void 400 423 xrt_comp_end_session(struct xrt_compositor *xc) ··· 403 426 } 404 427 405 428 /*! 406 - * Helper for xrt_compositor::wait_frame 429 + * @copydoc xrt_compositor::wait_frame 430 + * 431 + * Helper for calling through the function pointer. 407 432 * 408 - * @ingroup xrt_iface 433 + * @public @memberof xrt_compositor 409 434 */ 410 435 static inline void 411 436 xrt_comp_wait_frame(struct xrt_compositor *xc, ··· 416 441 } 417 442 418 443 /*! 419 - * Helper for xrt_compositor::begin_frame 444 + * @copydoc xrt_compositor::begin_frame 420 445 * 421 - * @ingroup xrt_iface 446 + * Helper for calling through the function pointer. 447 + * 448 + * @public @memberof xrt_compositor 422 449 */ 423 450 static inline void 424 451 xrt_comp_begin_frame(struct xrt_compositor *xc) ··· 427 454 } 428 455 429 456 /*! 430 - * Helper for xrt_compositor::discard_frame 457 + * @copydoc xrt_compositor::discard_frame 458 + * 459 + * Helper for calling through the function pointer. 431 460 * 432 - * @ingroup xrt_iface 461 + * @public @memberof xrt_compositor 433 462 */ 434 463 static inline void 435 464 xrt_comp_discard_frame(struct xrt_compositor *xc) ··· 438 467 } 439 468 440 469 /*! 441 - * Helper for xrt_compositor::layer_begin 470 + * @copydoc xrt_compositor::layer_begin 442 471 * 443 - * @ingroup xrt_iface 472 + * Helper for calling through the function pointer. 473 + * 474 + * @public @memberof xrt_compositor 444 475 */ 445 476 static inline void 446 477 xrt_comp_layer_begin(struct xrt_compositor *xc, ··· 450 481 } 451 482 452 483 /*! 453 - * Helper for xrt_compositor::layer_stereo_projection 484 + * @copydoc xrt_compositor::layer_stereo_projection 454 485 * 455 - * @ingroup xrt_iface 486 + * Helper for calling through the function pointer. 487 + * 488 + * @public @memberof xrt_compositor 456 489 */ 457 490 static inline void 458 491 xrt_comp_layer_stereo_projection(struct xrt_compositor *xc, ··· 481 514 } 482 515 483 516 /*! 484 - * Helper for xrt_compositor::layer_quad 517 + * @copydoc xrt_compositor::layer_quad 518 + * 519 + * Helper for calling through the function pointer. 485 520 * 486 - * @ingroup xrt_iface 521 + * @public @memberof xrt_compositor 487 522 */ 488 523 static inline void 489 524 xrt_comp_layer_quad(struct xrt_compositor *xc, ··· 505 540 } 506 541 507 542 /*! 508 - * Helper for xrt_compositor::layer_commit 543 + * @copydoc xrt_compositor::layer_commit 509 544 * 510 - * @ingroup xrt_iface 545 + * Helper for calling through the function pointer. 546 + * 547 + * @public @memberof xrt_compositor 511 548 */ 512 549 static inline void 513 550 xrt_comp_layer_commit(struct xrt_compositor *xc) ··· 516 553 } 517 554 518 555 /*! 519 - * Helper for xrt_compositor::destroy, does a null check and sets xc_ptr to 520 - * null if freed. 556 + * @copydoc xrt_compositor::destroy 557 + * 558 + * Helper for calling through the function pointer: does a null check and sets 559 + * xc_ptr to null if freed. 521 560 * 522 - * @ingroup xrt_iface 561 + * @public @memberof xrt_compositor 523 562 */ 524 563 static inline void 525 564 xrt_comp_destroy(struct xrt_compositor **xc_ptr) ··· 541 580 */ 542 581 543 582 /*! 583 + * Base class for an OpenGL (ES) client swapchain. 544 584 * @ingroup xrt_iface comp_client 585 + * @extends xrt_swapchain 545 586 */ 546 587 struct xrt_swapchain_gl 547 588 { 589 + //! @public Base 548 590 struct xrt_swapchain base; 549 591 550 592 // GLuint ··· 554 596 }; 555 597 556 598 /*! 599 + * Base class for an OpenGL (ES) client compositor. 557 600 * @ingroup xrt_iface comp_client 601 + * @extends xrt_compositor 558 602 */ 559 603 struct xrt_compositor_gl 560 604 { 561 605 struct xrt_compositor base; 562 606 }; 563 607 608 + /*! 609 + * Down-cast helper. 610 + * 611 + * @private @memberof xrt_swapchain_gl 612 + * 613 + * @todo unused - remove? 614 + */ 564 615 static inline struct xrt_swapchain_gl * 565 616 xrt_swapchain_gl(struct xrt_swapchain *xsc) 566 617 { 567 618 return (struct xrt_swapchain_gl *)xsc; 568 619 } 569 620 621 + /*! 622 + * Down-cast helper. 623 + * 624 + * @private @memberof xrt_compositor_gl 625 + * 626 + * @todo unused - remove? 627 + */ 570 628 static inline struct xrt_compositor_gl * 571 629 xrt_compositor_gl(struct xrt_compositor *xc) 572 630 { ··· 592 650 * Base class for a Vulkan client swapchain. 593 651 * 594 652 * @ingroup xrt_iface comp_client 653 + * @extends xrt_swapchain 595 654 */ 596 655 struct xrt_swapchain_vk 597 656 { 657 + //! @public Base 598 658 struct xrt_swapchain base; 599 659 600 660 VkImage images[XRT_MAX_SWAPCHAIN_IMAGES]; ··· 605 665 * Base class for a Vulkan client compositor. 606 666 * 607 667 * @ingroup xrt_iface comp_client 668 + * @extends xrt_compositor 608 669 */ 609 670 struct xrt_compositor_vk 610 671 { 672 + //! @public Base 611 673 struct xrt_compositor base; 612 674 }; 613 675 676 + /*! 677 + * Down-cast helper. 678 + * 679 + * @private @memberof xrt_swapchain_vk 680 + * 681 + * @todo unused - remove? 682 + */ 614 683 static inline struct xrt_swapchain_vk * 615 684 xrt_swapchain_vk(struct xrt_swapchain *xsc) 616 685 { 617 686 return (struct xrt_swapchain_vk *)xsc; 618 687 } 619 688 689 + /*! 690 + * Down-cast helper. 691 + * 692 + * @private @memberof xrt_compositor_vk 693 + * 694 + * @todo unused - remove? 695 + */ 620 696 static inline struct xrt_compositor_vk * 621 697 xrt_compositor_vk(struct xrt_compositor *xc) 622 698 { ··· 634 710 * A single image of a fd based swapchain. 635 711 * 636 712 * @ingroup xrt_iface comp 713 + * @see xrt_swapchain_fd 637 714 */ 638 715 struct xrt_image_fd 639 716 { ··· 643 720 }; 644 721 645 722 /*! 646 - * A swapchain that exposes fd to be imported into a client API. 723 + * @interface xrt_swapchain_fd 724 + * Base class for a swapchain that exposes fd to be imported into a client API. 647 725 * 648 726 * @ingroup xrt_iface comp 727 + * @extends xrt_swapchain 649 728 */ 650 729 struct xrt_swapchain_fd 651 730 { 731 + //! @public Base 652 732 struct xrt_swapchain base; 653 733 654 734 struct xrt_image_fd images[XRT_MAX_SWAPCHAIN_IMAGES]; 655 735 }; 656 736 657 737 /*! 658 - * Main compositor. 738 + * @interface xrt_compositor_fd 739 + * 740 + * Main compositor server interface. 659 741 * 660 742 * @ingroup xrt_iface comp 743 + * @extends xrt_compositor 661 744 */ 662 745 struct xrt_compositor_fd 663 746 { 747 + //! @public Base 664 748 struct xrt_compositor base; 665 749 }; 666 750 751 + /*! 752 + * Down-cast helper. 753 + * 754 + * @public @memberof xrt_swapchain_fd 755 + */ 667 756 static inline struct xrt_swapchain_fd * 668 757 xrt_swapchain_fd(struct xrt_swapchain *xsc) 669 758 { 670 759 return (struct xrt_swapchain_fd *)xsc; 671 760 } 672 761 762 + /*! 763 + * Down-cast helper. 764 + * 765 + * @public @memberof xrt_compositor_fd 766 + * 767 + * @todo unused - remove? 768 + */ 673 769 static inline struct xrt_compositor_fd * 674 770 xrt_compositor_fd(struct xrt_compositor *xc) 675 771 {
+12
src/xrt/include/xrt/xrt_device.h
··· 202 202 }; 203 203 204 204 /*! 205 + * @interface xrt_device 206 + * 205 207 * A single HMD or input device. 206 208 * 207 209 * @ingroup xrt_iface ··· 311 313 312 314 /*! 313 315 * Helper function for @ref xrt_device::update_inputs. 316 + * 317 + * @public @memberof xrt_device 314 318 */ 315 319 static inline void 316 320 xrt_device_update_inputs(struct xrt_device *xdev) ··· 320 324 321 325 /*! 322 326 * Helper function for @ref xrt_device::get_tracked_pose. 327 + * 328 + * @public @memberof xrt_device 323 329 */ 324 330 static inline void 325 331 xrt_device_get_tracked_pose(struct xrt_device *xdev, ··· 334 340 335 341 /*! 336 342 * Helper function for @ref xrt_device::set_output. 343 + * 344 + * @public @memberof xrt_device 337 345 */ 338 346 static inline void 339 347 xrt_device_set_output(struct xrt_device *xdev, ··· 345 353 346 354 /*! 347 355 * Helper function for @ref xrt_device::get_view_pose. 356 + * 357 + * @public @memberof xrt_device 348 358 */ 349 359 static inline void 350 360 xrt_device_get_view_pose(struct xrt_device *xdev, ··· 357 367 358 368 /*! 359 369 * Helper function for @ref xrt_device::destroy. 370 + * 371 + * @public @memberof xrt_device 360 372 */ 361 373 static inline void 362 374 xrt_device_destroy(struct xrt_device **xdev_ptr)
+12 -3
src/xrt/include/xrt/xrt_frame.h
··· 44 44 45 45 46 46 /*! 47 + * @interface xrt_frame_sink 48 + * 47 49 * A object that is sent frames. 50 + * 51 + * All objects that implement @ref xrt_frame_sink **must** also implement @ref 52 + * xrt_frame_node, and should take an @ref xrt_frame_context to register 53 + * themselves with in their constructor. 48 54 * 49 55 * @ingroup xrt_iface 50 56 */ ··· 58 64 }; 59 65 60 66 /*! 67 + * @interface xrt_frame_node 68 + * 61 69 * A interface object used for destroying a frame graph. 62 70 * 63 71 * @see container_of ··· 105 113 * @param[in] src Object to be have it's refcount increased @p dst is set to 106 114 * this. 107 115 * @ingroup xrt_iface 116 + * @relates xrt_frame 108 117 */ 109 118 static inline void 110 119 xrt_frame_reference(struct xrt_frame **dst, struct xrt_frame *src) ··· 131 140 /*! 132 141 * Add a node to a context. 133 142 * 134 - * @ingroup xrt_iface 143 + * @public @memberof xrt_frame_context 135 144 */ 136 145 static inline void 137 146 xrt_frame_context_add(struct xrt_frame_context *xfctx, ··· 142 151 } 143 152 144 153 /*! 145 - * Destroy all child nodes, but free the context itself. 154 + * Destroy all child nodes, but do not free the context itself. 146 155 * 147 - * @ingroup xrt_iface 156 + * @public @memberof xrt_frame_context 148 157 */ 149 158 static inline void 150 159 xrt_frame_context_destroy_nodes(struct xrt_frame_context *xfctx)
+28 -12
src/xrt/include/xrt/xrt_frameserver.h
··· 27 27 * floats for broad applicability. 28 28 * 29 29 * @ingroup xrt_iface 30 + * @see xrt_fs 30 31 */ 31 32 struct xrt_fs_capture_parameters 32 33 { ··· 34 35 float exposure; 35 36 }; 36 37 38 + /*! 39 + * @see xrt_fs 40 + * @ingroup xrt_iface 41 + */ 37 42 struct xrt_fs_mode 38 43 { 39 44 uint32_t width; ··· 43 48 }; 44 49 45 50 /*! 46 - * Frameserver that generates frame, multiple subframes (like stereo and 51 + * @interface xrt_fs 52 + * Frameserver that generates frames. Multiple subframes (like stereo and 47 53 * mipmaps) can be generate in one frame. 48 54 * 49 55 * @ingroup xrt_iface ··· 56 62 char name[512]; 57 63 58 64 /*! 59 - * All frames produced by this frameserver is tagged with this id. 65 + * All frames produced by this frameserver are tagged with this id. 60 66 */ 61 67 uint64_t source_id; 62 68 ··· 100 106 */ 101 107 102 108 /*! 103 - * Helper for xrt_fs::enumerate_modes. 109 + * @copydoc xrt_fs::enumerate_modes 104 110 * 105 - * @ingroup xrt_iface 111 + * Helper for calling through the function pointer. 112 + * 113 + * @public @memberof xrt_fs 106 114 */ 107 115 static inline bool 108 116 xrt_fs_enumerate_modes(struct xrt_fs *xfs, ··· 113 121 } 114 122 115 123 /*! 116 - * Helper for xrt_fs::configure_capture. 124 + * @copydoc xrt_fs::configure_capture 117 125 * 118 - * @ingroup xrt_iface 126 + * Helper for calling through the function pointer. 127 + * 128 + * @public @memberof xrt_fs 119 129 */ 120 130 static inline bool 121 131 xrt_fs_configure_capture(struct xrt_fs *xfs, ··· 125 135 } 126 136 127 137 /*! 128 - * Helper for xrt_fs::stream_start. 138 + * @copydoc xrt_fs::stream_start 129 139 * 130 - * @ingroup xrt_iface 140 + * Helper for calling through the function pointer. 141 + * 142 + * @public @memberof xrt_fs 131 143 */ 132 144 static inline bool 133 145 xrt_fs_stream_start(struct xrt_fs *xfs, ··· 138 150 } 139 151 140 152 /*! 141 - * Helper for xrt_fs::stream_stop. 153 + * @copydoc xrt_fs::stream_stop 142 154 * 143 - * @ingroup xrt_iface 155 + * Helper for calling through the function pointer. 156 + * 157 + * @public @memberof xrt_fs 144 158 */ 145 159 static inline bool 146 160 xrt_fs_stream_stop(struct xrt_fs *xfs) ··· 149 163 } 150 164 151 165 /*! 152 - * Helper for xrt_fs::is_running. 166 + * @copydoc xrt_fs::is_running 153 167 * 154 - * @ingroup xrt_iface 168 + * Helper for calling through the function pointer. 169 + * 170 + * @public @memberof xrt_fs 155 171 */ 156 172 static inline bool 157 173 xrt_fs_is_running(struct xrt_fs *xfs)
+3
src/xrt/include/xrt/xrt_gfx_egl.h
··· 25 25 struct time_state; 26 26 27 27 /*! 28 + * Create an OpenGL(ES) compositor client using EGL. 29 + * 28 30 * @ingroup xrt_iface 31 + * @public @memberof xrt_compositor_fd 29 32 */ 30 33 struct xrt_compositor_gl * 31 34 xrt_gfx_provider_create_gl_egl(struct xrt_compositor_fd *xcfd,
+1
src/xrt/include/xrt/xrt_gfx_fd.h
··· 23 23 * Creates the main fd compositor. 24 24 * 25 25 * @ingroup xrt_iface 26 + * @relates xrt_compositor_fd 26 27 */ 27 28 struct xrt_compositor_fd * 28 29 xrt_gfx_provider_create_fd(struct xrt_device *xdev, bool flip_y);
+3
src/xrt/include/xrt/xrt_gfx_vk.h
··· 38 38 xrt_gfx_vk_get_versions(struct xrt_api_requirements *ver); 39 39 40 40 /*! 41 + * Create a Vulkan compositor client. 42 + * 41 43 * @ingroup xrt_iface 44 + * @public @memberof xrt_compositor_fd 42 45 */ 43 46 struct xrt_compositor_vk * 44 47 xrt_gfx_vk_provider_create(struct xrt_compositor_fd *xcfd,
+3
src/xrt/include/xrt/xrt_gfx_xlib.h
··· 24 24 struct time_state; 25 25 26 26 /*! 27 + * Create an OpenGL compositor client using xlib. 28 + * 27 29 * @ingroup xrt_iface 30 + * @public @memberof xrt_compositor_fd 28 31 */ 29 32 struct xrt_compositor_gl * 30 33 xrt_gfx_provider_create_gl_xlib(struct xrt_compositor_fd *xcfd,
+15 -21
src/xrt/include/xrt/xrt_instance.h
··· 26 26 */ 27 27 28 28 /*! 29 + * @interface xrt_instance 30 + * 29 31 * This interface acts as a root object for Monado. 30 32 * It typically either wraps an @ref xrt_prober or forms a connection to an 31 33 * out-of-process XR service. ··· 37 39 * interface, which is exposed by implementing xrt_instance_create(). 38 40 * 39 41 * Additional information can be found in @ref md_targets 42 + * 43 + * @sa ipc_instance_create 40 44 */ 41 45 struct xrt_instance 42 46 { ··· 130 134 }; 131 135 132 136 /*! 133 - * @name Method call helpers for xrt_instance 134 - * Calling code should prefer using these instead of directly using the function 135 - * pointer members. 136 - * @{ 137 - */ 138 - /*! 139 - * Helper function for @ref xrt_instance::select. 137 + * @copydoc xrt_instance::select 140 138 * 141 - * See @ref xrt_instance::select for documentation. 139 + * Helper for calling through the function pointer. 142 140 * 143 - * @relates xrt_instance 141 + * @public @memberof xrt_instance 144 142 */ 145 143 static inline int 146 144 xrt_instance_select(struct xrt_instance *xinst, ··· 151 149 } 152 150 153 151 /*! 154 - * Helper function for @ref xrt_instance::create_fd_compositor. 152 + * @copydoc xrt_instance::create_fd_compositor 155 153 * 156 - * See @ref xrt_instance::create_fd_compositor for documentation. 154 + * Helper for calling through the function pointer. 157 155 * 158 - * @relates xrt_instance 156 + * @public @memberof xrt_instance 159 157 */ 160 158 static inline int 161 159 xrt_instance_create_fd_compositor(struct xrt_instance *xinst, ··· 167 165 } 168 166 169 167 /*! 170 - * Helper function for @ref xrt_instance::get_prober. 168 + * @copydoc xrt_instance::get_prober 171 169 * 172 - * See @ref xrt_instance::get_prober for documentation. 170 + * Helper for calling through the function pointer. 173 171 * 174 - * @relates xrt_instance 172 + * @public @memberof xrt_instance 175 173 */ 176 174 static inline int 177 175 xrt_instance_get_prober(struct xrt_instance *xinst, struct xrt_prober **out_xp) ··· 180 178 } 181 179 182 180 /*! 183 - * Helper function for @ref xrt_instance::destroy. 181 + * Destroy an xrt_instance - helper function. 184 182 * 185 183 * @param[in,out] xinst_ptr A pointer to your instance implementation pointer. 186 184 * 187 185 * Will destroy the instance if *xinst_ptr is not NULL. Will then set *xinst_ptr 188 186 * to NULL. 189 187 * 190 - * @relates xrt_instance 188 + * @public @memberof xrt_instance 191 189 */ 192 190 static inline void 193 191 xrt_instance_destroy(struct xrt_instance **xinst_ptr) ··· 200 198 xinst->destroy(xinst); 201 199 *xinst_ptr = NULL; 202 200 } 203 - /*! 204 - * @} 205 - */ 206 - 207 201 208 202 /*! 209 203 * @name Factory
+18 -21
src/xrt/include/xrt/xrt_prober.h
··· 224 224 /*! 225 225 * Helper function for @ref xrt_prober::probe. 226 226 * 227 - * @ingroup xrt_iface 228 - * @relates xrt_prober 227 + * @public @memberof xrt_prober 229 228 */ 230 229 static inline int 231 230 xrt_prober_probe(struct xrt_prober *xp) ··· 236 235 /*! 237 236 * Helper function for @ref xrt_prober::dump. 238 237 * 239 - * @ingroup xrt_iface 240 - * @relates xrt_prober 238 + * @public @memberof xrt_prober 241 239 */ 242 240 static inline int 243 241 xrt_prober_dump(struct xrt_prober *xp) ··· 248 246 /*! 249 247 * Helper function for @ref xrt_prober::select. 250 248 * 251 - * @ingroup xrt_iface 252 - * @relates xrt_prober 249 + * @public @memberof xrt_prober 253 250 */ 254 251 static inline int 255 252 xrt_prober_select(struct xrt_prober *xp, ··· 262 259 /*! 263 260 * Helper function for @ref xrt_prober::open_hid_interface. 264 261 * 265 - * @ingroup xrt_iface 266 - * @relates xrt_prober 262 + * @public @memberof xrt_prober 267 263 */ 268 264 static inline int 269 265 xrt_prober_open_hid_interface(struct xrt_prober *xp, ··· 277 273 /*! 278 274 * Helper function for @ref xrt_prober::get_string_descriptor. 279 275 * 280 - * @ingroup xrt_iface 281 - * @relates xrt_prober 276 + * @public @memberof xrt_prober 282 277 */ 283 278 static inline int 284 279 xrt_prober_get_string_descriptor(struct xrt_prober *xp, ··· 294 289 /*! 295 290 * Helper function for @ref xrt_prober::can_open. 296 291 * 297 - * @ingroup xrt_iface 298 - * @relates xrt_prober 292 + * @public @memberof xrt_prober 299 293 */ 300 294 static inline bool 301 295 xrt_prober_can_open(struct xrt_prober *xp, struct xrt_prober_device *xpdev) ··· 307 301 /*! 308 302 * Helper function for @ref xrt_prober::xrt_prober_open_video_device. 309 303 * 310 - * @ingroup xrt_iface 311 - * @relates xrt_prober 304 + * @public @memberof xrt_prober 312 305 */ 313 306 static inline int 314 307 xrt_prober_open_video_device(struct xrt_prober *xp, ··· 322 315 /*! 323 316 * Helper function for @ref xrt_prober::list_video_devices. 324 317 * 325 - * @ingroup xrt_iface 326 - * @relates xrt_prober 318 + * @public @memberof xrt_prober 327 319 */ 328 320 static inline int 329 321 xrt_prober_list_video_devices(struct xrt_prober *xp, ··· 336 328 /*! 337 329 * Helper function for @ref xrt_prober::destroy. 338 330 * 339 - * @ingroup xrt_iface 340 - * @relates xrt_prober 331 + * @public @memberof xrt_prober 341 332 */ 342 333 static inline void 343 334 xrt_prober_destroy(struct xrt_prober **xp_ptr) ··· 360 351 * created xrt_prober instance. 361 352 * @param[in] list Prober entry list 362 353 * 363 - * @ingroup xrt_iface 364 - * @relates xrt_prober 354 + * @public @memberof xrt_prober 365 355 */ 366 356 int 367 357 xrt_prober_create_with_lists(struct xrt_prober **out_xp, 368 358 struct xrt_prober_entry_lists *list); 369 359 360 + /*! 361 + * @public @memberof xrt_prober 362 + */ 370 363 bool 371 364 xrt_prober_match_string(struct xrt_prober *xp, 372 365 struct xrt_prober_device *dev, ··· 380 373 */ 381 374 382 375 /*! 383 - * A simple prober to probe for a HMD device connected to the system. 376 + * @interface xrt_auto_prober 377 + * 378 + * An interface to be exposed by a device driver that should probe for the 379 + * existence of its own device on the system, rather than using shared probers 380 + * with vendor/product IDs, etc. 384 381 * 385 382 * @ingroup xrt_iface 386 383 */
+13
src/xrt/include/xrt/xrt_tracking.h
··· 49 49 50 50 /*! 51 51 * A tracking system or device origin. 52 + * 53 + * Tracking systems will typically extend this structure. 52 54 */ 53 55 struct xrt_tracking_origin 54 56 { ··· 66 68 }; 67 69 68 70 /*! 71 + * @interface xrt_tracking_factory 69 72 * Tracking factory. 70 73 */ 71 74 struct xrt_tracking_factory ··· 98 101 }; 99 102 100 103 /*! 104 + * @interface xrt_tracked_psmv 105 + * 101 106 * A single tracked PS Move controller, camera and ball are not synced. 102 107 * 103 108 * @todo How do we communicate ball colour change? ··· 140 145 }; 141 146 142 147 /*! 148 + * @interface xrt_tracked_psvr 149 + * 143 150 * A tracked PSVR headset. 144 151 * 145 152 * @todo How do we communicate led lighting status? ··· 180 187 * 181 188 */ 182 189 190 + //! @public @memberof xrt_tracked_psmv 183 191 static inline void 184 192 xrt_tracked_psmv_get_tracked_pose(struct xrt_tracked_psmv *psmv, 185 193 enum xrt_input_name name, ··· 189 197 psmv->get_tracked_pose(psmv, name, when_ns, out_relation); 190 198 } 191 199 200 + //! @public @memberof xrt_tracked_psmv 192 201 static inline void 193 202 xrt_tracked_psmv_push_imu(struct xrt_tracked_psmv *psmv, 194 203 timepoint_ns timestamp_ns, ··· 197 206 psmv->push_imu(psmv, timestamp_ns, sample); 198 207 } 199 208 209 + //! @public @memberof xrt_tracked_psmv 200 210 static inline void 201 211 xrt_tracked_psmv_destroy(struct xrt_tracked_psmv **xtmv_ptr) 202 212 { ··· 209 219 *xtmv_ptr = NULL; 210 220 } 211 221 222 + //! @public @memberof xrt_tracked_psmv 212 223 static inline void 213 224 xrt_tracked_psvr_get_tracked_pose(struct xrt_tracked_psvr *psvr, 214 225 timepoint_ns when_ns, ··· 217 228 psvr->get_tracked_pose(psvr, when_ns, out_relation); 218 229 } 219 230 231 + //! @public @memberof xrt_tracked_psmv 220 232 static inline void 221 233 xrt_tracked_psvr_push_imu(struct xrt_tracked_psvr *psvr, 222 234 timepoint_ns timestamp_ns, ··· 225 237 psvr->push_imu(psvr, timestamp_ns, sample); 226 238 } 227 239 240 + //! @public @memberof xrt_tracked_psmv 228 241 static inline void 229 242 xrt_tracked_psvr_destroy(struct xrt_tracked_psvr **xtvr_ptr) 230 243 {
+8 -2
src/xrt/ipc/ipc_client.h
··· 86 86 87 87 } ipc_connection_t; 88 88 89 - 89 + /*! 90 + * @name IPC low-level interface 91 + * These functions are called by generated IPC client code. 92 + * @{ 93 + */ 90 94 ipc_result_t 91 95 ipc_client_send_message(ipc_connection_t *ipc_c, void *message, size_t size); 92 96 ··· 105 109 size_t reply_size, 106 110 int *fds, 107 111 size_t num_fds); 108 - 112 + /*! 113 + * @} 114 + */ 109 115 110 116 /* 111 117 *
+8 -1
src/xrt/ipc/ipc_client_compositor.c
··· 32 32 * Internal structs and helpers. 33 33 * 34 34 */ 35 - 35 + /*! 36 + * Client proxy for an xrt_compositor_fd implementation over IPC. 37 + * @implements xrt_compositor_fd 38 + */ 36 39 struct ipc_client_compositor 37 40 { 38 41 struct xrt_compositor_fd base; ··· 50 53 } layers; 51 54 }; 52 55 56 + /*! 57 + * Client proxy for an xrt_swapchain_fd implementation over IPC. 58 + * @implements xrt_swapchain_fd 59 + */ 53 60 struct ipc_client_swapchain 54 61 { 55 62 struct xrt_swapchain_fd base;
+7
src/xrt/ipc/ipc_client_device.c
··· 35 35 * 36 36 */ 37 37 38 + /*! 39 + * An IPC client proxy for an @ref xrt_device. 40 + * @implements xrt_device 41 + */ 38 42 struct ipc_client_device 39 43 { 40 44 struct xrt_device base; ··· 125 129 } 126 130 } 127 131 132 + /*! 133 + * @public @memberof ipc_client_device 134 + */ 128 135 struct xrt_device * 129 136 ipc_client_device_create(ipc_connection_t *ipc_c, 130 137 struct xrt_tracking_origin *xtrack,
+7
src/xrt/ipc/ipc_client_hmd.c
··· 35 35 * 36 36 */ 37 37 38 + /*! 39 + * An IPC client proxy for an HMD @ref xrt_device. 40 + * @implements xrt_device 41 + */ 38 42 struct ipc_client_hmd 39 43 { 40 44 struct xrt_device base; ··· 117 121 } 118 122 } 119 123 124 + /*! 125 + * @public @memberof ipc_client_hmd 126 + */ 120 127 struct xrt_device * 121 128 ipc_client_hmd_create(ipc_connection_t *ipc_c, 122 129 struct xrt_tracking_origin *xtrack,
+9
src/xrt/ipc/ipc_client_instance.c
··· 34 34 * 35 35 */ 36 36 37 + /*! 38 + * @implements xrt_instance 39 + */ 37 40 struct ipc_client_instance 38 41 { 42 + //! @public Base 39 43 struct xrt_instance base; 40 44 41 45 ipc_connection_t ipc_c; ··· 173 177 * 174 178 */ 175 179 180 + /*! 181 + * Constructor for xrt_instance IPC client proxy. 182 + * 183 + * @public @memberof ipc_instance 184 + */ 176 185 int 177 186 ipc_instance_create(struct xrt_instance **out_xinst) 178 187 {
+3
src/xrt/state_trackers/gui/gui_common.h
··· 55 55 }; 56 56 57 57 /*! 58 + * @interface gui_scene 58 59 * A single currently running scene. 60 + * 61 + * @ingroup gui 59 62 */ 60 63 struct gui_scene 61 64 {
+5
src/xrt/state_trackers/gui/gui_ogl.c
··· 16 16 #include <pthread.h> 17 17 18 18 19 + /*! 20 + * An @ref xrt_frame_sink that shows sunk frames in the GUI. 21 + * @implements xrt_frame_sink 22 + * @implements xrt_frame_node 23 + */ 19 24 struct gui_ogl_sink 20 25 { 21 26 struct gui_ogl_texture tex;
+4 -1
src/xrt/state_trackers/gui/gui_scene_calibrate.c
··· 29 29 30 30 #include <assert.h> 31 31 32 - 32 + /*! 33 + * An OpenCV-based camera calibration scene. 34 + * @implements gui_scene 35 + */ 33 36 struct calibration_scene 34 37 { 35 38 struct gui_scene base;
+4
src/xrt/state_trackers/gui/gui_scene_debug.c
··· 31 31 32 32 #include <float.h> 33 33 34 + /*! 35 + * A GUI scene showing the variable tracking provided by @ref util/u_var.h 36 + * @implements gui_scene 37 + */ 34 38 struct debug_scene 35 39 { 36 40 struct gui_scene base;
+4
src/xrt/state_trackers/gui/gui_scene_main_menu.c
··· 15 15 16 16 static ImVec2 button_dims = {256, 0}; 17 17 18 + /*! 19 + * A main menu GUI scene allowing selection of which scene to proceed to. 20 + * @implements gui_scene 21 + */ 18 22 struct main_menu 19 23 { 20 24 struct gui_scene base;
+4
src/xrt/state_trackers/gui/gui_scene_video.c
··· 18 18 #include "gui_imgui.h" 19 19 20 20 21 + /*! 22 + * A GUI scene that lets the user select a user device. 23 + * @implements gui_scene 24 + */ 21 25 struct video_select 22 26 { 23 27 struct gui_scene base;
+81 -1
src/xrt/state_trackers/prober/p_prober.h
··· 80 80 #endif 81 81 82 82 /*! 83 - * A prober device. 83 + * A single device found by a @ref prober. 84 + * 85 + * @implements xrt_prober_device 84 86 */ 85 87 struct prober_device 86 88 { ··· 127 129 #endif 128 130 }; 129 131 132 + /*! 133 + * @implements xrt_prober 134 + */ 130 135 struct prober 131 136 { 132 137 struct xrt_prober base; ··· 180 185 181 186 /*! 182 187 * Load the JSON config file. 188 + * 189 + * @public @memberof prober 183 190 */ 184 191 void 185 192 p_json_open_or_create_main_file(struct prober *p); 186 193 187 194 /*! 188 195 * Extract tracking settings from the JSON. 196 + * 197 + * @public @memberof prober 198 + * @relatesalso xrt_settings_tracking 189 199 */ 190 200 bool 191 201 p_json_get_tracking_settings(struct prober *p, struct xrt_settings_tracking *s); 192 202 193 203 /*! 194 204 * Dump the given device to stdout. 205 + * 206 + * @public @memberof prober 195 207 */ 196 208 void 197 209 p_dump_device(struct prober *p, struct prober_device *pdev, int id); 198 210 199 211 /*! 200 212 * Get or create a @ref prober_device from the device. 213 + * 214 + * @public @memberof prober 201 215 */ 202 216 int 203 217 p_dev_get_usb_dev(struct prober *p, ··· 209 223 210 224 /*! 211 225 * Get or create a @ref prober_device from the device. 226 + * 227 + * @public @memberof prober 212 228 */ 213 229 int 214 230 p_dev_get_bluetooth_dev(struct prober *p, ··· 218 234 struct prober_device **out_pdev); 219 235 220 236 /*! 237 + * @name Tracking systems 238 + * @{ 239 + */ 240 + /*! 221 241 * Init the tracking factory. 242 + * 243 + * @private @memberof prober 244 + * @relatesalso xrt_tracking_factory 222 245 */ 223 246 int 224 247 p_tracking_init(struct prober *p); 225 248 226 249 /*! 227 250 * Teardown the tracking factory. 251 + * 252 + * @private @memberof prober 253 + * @relatesalso xrt_tracking_factory 228 254 */ 229 255 void 230 256 p_tracking_teardown(struct prober *p); 231 257 258 + /*! 259 + * @} 260 + */ 261 + 232 262 #ifdef XRT_HAVE_LIBUSB 263 + /*! 264 + * @name libusb 265 + * @{ 266 + */ 267 + /*! 268 + * @private @memberof prober 269 + */ 233 270 int 234 271 p_libusb_init(struct prober *p); 235 272 273 + /*! 274 + * @private @memberof prober 275 + */ 236 276 void 237 277 p_libusb_teardown(struct prober *p); 238 278 279 + /*! 280 + * @private @memberof prober 281 + */ 239 282 int 240 283 p_libusb_probe(struct prober *p); 241 284 285 + /*! 286 + * @private @memberof prober 287 + */ 242 288 int 243 289 p_libusb_get_string_descriptor(struct prober *p, 244 290 struct prober_device *pdev, ··· 246 292 unsigned char *buffer, 247 293 int length); 248 294 295 + /*! 296 + * @private @memberof prober 297 + */ 249 298 bool 250 299 p_libusb_can_open(struct prober *p, struct prober_device *pdev); 300 + 301 + /*! 302 + * @} 303 + */ 251 304 #endif 252 305 253 306 #ifdef XRT_HAVE_LIBUVC 307 + /*! 308 + * @name libuvc 309 + * @{ 310 + */ 311 + /*! 312 + * @private @memberof prober 313 + */ 254 314 int 255 315 p_libuvc_init(struct prober *p); 256 316 317 + /*! 318 + * @private @memberof prober 319 + */ 257 320 void 258 321 p_libuvc_teardown(struct prober *p); 259 322 323 + /*! 324 + * @private @memberof prober 325 + */ 260 326 int 261 327 p_libuvc_probe(struct prober *p); 328 + 329 + /*! 330 + * @} 331 + */ 262 332 #endif 263 333 264 334 #ifdef XRT_HAVE_LIBUDEV 335 + /*! 336 + * @name udev 337 + * @{ 338 + */ 339 + /*! 340 + * @private @memberof prober 341 + */ 265 342 int 266 343 p_udev_probe(struct prober *p); 344 + /*! 345 + * @} 346 + */ 267 347 #endif
+4
src/xrt/state_trackers/prober/p_tracking.c
··· 32 32 * 33 33 */ 34 34 35 + /*! 36 + * @implements xrt_tracking_factory 37 + * @extends xrt_tracking_origin 38 + */ 35 39 struct p_factory 36 40 { 37 41 //! Base struct.
+7
src/xrt/targets/common/target_instance_parts.h
··· 22 22 * 23 23 */ 24 24 25 + /*! 26 + * Main "real" instance implementation. 27 + * 28 + * Used in instances both with and without compositor access. 29 + * 30 + * @implements xrt_instance 31 + */ 25 32 struct t_instance 26 33 { 27 34 struct xrt_instance base;
+6 -5
src/xrt/targets/gui/gui_sdl2.h
··· 29 29 * Common struct holding state for the GUI interface. 30 30 * 31 31 * @ingroup gui 32 + * @extends gui_program 32 33 */ 33 34 struct sdl2_program 34 35 { ··· 43 44 /*! 44 45 * Init SDL2, create and show a window and bring up any other structs needed. 45 46 * 46 - * @ingroup gui 47 + * @public @memberof sdl2_program 47 48 */ 48 49 int 49 50 gui_sdl2_init(struct sdl2_program *p); 50 51 51 52 /*! 52 - * Loop until user request quit and show Imgui interface. 53 + * Loop until user requests quit, and show Imgui interface. 53 54 * 54 - * @ingroup gui 55 + * @public @memberof sdl2_program 55 56 */ 56 57 void 57 58 gui_sdl2_imgui_loop(struct sdl2_program *p); ··· 59 60 /*! 60 61 * Loop until quit signal has been received. 61 62 * 62 - * @ingroup gui 63 + * @public @memberof sdl2_program 63 64 */ 64 65 void 65 66 gui_sdl2_loop(struct sdl2_program *p); ··· 67 68 /*! 68 69 * Destroy all SDL things and quit SDL. 69 70 * 70 - * @ingroup gui 71 + * @public @memberof sdl2_program 71 72 */ 72 73 void 73 74 gui_sdl2_quit(struct sdl2_program *p);
+1
src/xrt/targets/openxr/oxr_sdl2_hack.c
··· 48 48 49 49 /*! 50 50 * Common struct holding state for the GUI interface. 51 + * @extends gui_program 51 52 */ 52 53 struct sdl2_program 53 54 {