The open source OpenXR runtime

c/multi: Even more documentation

+35 -4
+2
src/xrt/compositor/multi/comp_multi_interface.h
··· 30 30 * @param xsci Information to be exposed. 31 31 * @param do_warm_start Should we always submit a frame at startup. 32 32 * @param out_xsysc Created @ref xrt_system_compositor. 33 + * 34 + * @public @memberof multi_system_compositor 33 35 */ 34 36 xrt_result_t 35 37 comp_multi_create_system_compositor(struct xrt_compositor_native *xcn,
+33 -4
src/xrt/compositor/multi/comp_multi_private.h
··· 23 23 #endif 24 24 25 25 26 + /*! 27 + * Number of max active clients. 28 + * 29 + * @todo Move to `xrt_limits.h`, or make dynamic to remove limit. 30 + * @ingroup comp_multi 31 + */ 26 32 #define MULTI_MAX_CLIENTS 64 33 + 34 + /*! 35 + * Number of max active layers per @ref multi_compositor. 36 + * 37 + * @todo Move to `xrt_limits.h` and share. 38 + * @ingroup comp_multi 39 + */ 27 40 #define MULTI_MAX_LAYERS 16 28 41 29 42 ··· 186 199 struct u_pacing_app *upa; 187 200 }; 188 201 202 + /*! 203 + * Small helper go from @ref xrt_compositor to @ref multi_compositor. 204 + * 205 + * @ingroup comp_multi 206 + */ 189 207 static inline struct multi_compositor * 190 208 multi_compositor(struct xrt_compositor *xc) 191 209 { ··· 298 316 }; 299 317 300 318 /*! 301 - * The multi-client system compositor multiplexes access to a single native compositor, 302 - * merging layers from one or more client apps/sessions. 319 + * The multi-client module (aka multi compositor) is system compositor that 320 + * multiplexes access to a single @ref xrt_compositor_native, merging layers 321 + * from one or more client apps/sessions. This object implements the 322 + * @ref xrt_system_compositor, and gives each session a @ref multi_compositor, 323 + * which implements @ref xrt_compositor_native. 303 324 * 304 325 * @ingroup comp_multi 305 326 * @implements xrt_system_compositor 306 327 */ 307 328 struct multi_system_compositor 308 329 { 330 + //! Base interface. 309 331 struct xrt_system_compositor base; 310 332 311 333 //! Extra functions to handle multi client. 312 334 struct xrt_multi_compositor_control xmcc; 313 335 314 - //! Real native compositor. 336 + /*! 337 + * Real native compositor, which this multi client module submits the 338 + * combined layers of active @ref multi_compositor objects. 339 + */ 315 340 struct xrt_compositor_native *xcn; 316 341 317 - //! App pacer factory. 342 + /*! 343 + * App pacer factory, when a new @ref multi_compositor is created a 344 + * pacer is created from this factory. 345 + */ 318 346 struct u_pacing_app_factory *upaf; 319 347 320 348 //! Render loop thread. ··· 347 375 uint64_t diff_ns; 348 376 } last_timings; 349 377 378 + //! List of active clients. 350 379 struct multi_compositor *clients[MULTI_MAX_CLIENTS]; 351 380 }; 352 381