···3030 * @param xsci Information to be exposed.
3131 * @param do_warm_start Should we always submit a frame at startup.
3232 * @param out_xsysc Created @ref xrt_system_compositor.
3333+ *
3434+ * @public @memberof multi_system_compositor
3335 */
3436xrt_result_t
3537comp_multi_create_system_compositor(struct xrt_compositor_native *xcn,
+33-4
src/xrt/compositor/multi/comp_multi_private.h
···2323#endif
242425252626+/*!
2727+ * Number of max active clients.
2828+ *
2929+ * @todo Move to `xrt_limits.h`, or make dynamic to remove limit.
3030+ * @ingroup comp_multi
3131+ */
2632#define MULTI_MAX_CLIENTS 64
3333+3434+/*!
3535+ * Number of max active layers per @ref multi_compositor.
3636+ *
3737+ * @todo Move to `xrt_limits.h` and share.
3838+ * @ingroup comp_multi
3939+ */
2740#define MULTI_MAX_LAYERS 16
28412942···186199 struct u_pacing_app *upa;
187200};
188201202202+/*!
203203+ * Small helper go from @ref xrt_compositor to @ref multi_compositor.
204204+ *
205205+ * @ingroup comp_multi
206206+ */
189207static inline struct multi_compositor *
190208multi_compositor(struct xrt_compositor *xc)
191209{
···298316};
299317300318/*!
301301- * The multi-client system compositor multiplexes access to a single native compositor,
302302- * merging layers from one or more client apps/sessions.
319319+ * The multi-client module (aka multi compositor) is system compositor that
320320+ * multiplexes access to a single @ref xrt_compositor_native, merging layers
321321+ * from one or more client apps/sessions. This object implements the
322322+ * @ref xrt_system_compositor, and gives each session a @ref multi_compositor,
323323+ * which implements @ref xrt_compositor_native.
303324 *
304325 * @ingroup comp_multi
305326 * @implements xrt_system_compositor
306327 */
307328struct multi_system_compositor
308329{
330330+ //! Base interface.
309331 struct xrt_system_compositor base;
310332311333 //! Extra functions to handle multi client.
312334 struct xrt_multi_compositor_control xmcc;
313335314314- //! Real native compositor.
336336+ /*!
337337+ * Real native compositor, which this multi client module submits the
338338+ * combined layers of active @ref multi_compositor objects.
339339+ */
315340 struct xrt_compositor_native *xcn;
316341317317- //! App pacer factory.
342342+ /*!
343343+ * App pacer factory, when a new @ref multi_compositor is created a
344344+ * pacer is created from this factory.
345345+ */
318346 struct u_pacing_app_factory *upaf;
319347320348 //! Render loop thread.
···347375 uint64_t diff_ns;
348376 } last_timings;
349377378378+ //! List of active clients.
350379 struct multi_compositor *clients[MULTI_MAX_CLIENTS];
351380};
352381