Monado OpenXR Runtime
comp_multi_interface.h
Go to the documentation of this file.
1 // Copyright 2021, Collabora, Ltd.
2 // SPDX-License-Identifier: BSL-1.0
3 /*!
4  * @file
5  * @brief Interface for the multi-client layer code.
6  * @author Jakob Bornecrantz <jakob@collabora.com>
7  * @ingroup comp_main
8  */
9 
10 #pragma once
11 
12 #include "xrt/xrt_compositor.h"
13 
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
20 
21 
22 /*!
23  * Create a "system compositor" that can handle multiple clients (each
24  * through a "multi compositor") and that drives a single native compositor.
25  * Both the native compositor and the pacing factory is owned by the system
26  * compositor and destroyed by it.
27  *
28  * @param xcn Native compositor that client are multi-plexed to.
29  * @param upaf App pacing factory, one pacer created per client.
30  * @param xsci Information to be exposed.
31  * @param do_warm_start Should we always submit a frame at startup.
32  * @param out_xsysc Created @ref xrt_system_compositor.
33  *
34  * @public @memberof multi_system_compositor
35  */
38  struct u_pacing_app_factory *upaf,
39  const struct xrt_system_compositor_info *xsci,
40  bool do_warm_start,
41  struct xrt_system_compositor **out_xsysc);
42 
43 
44 #ifdef __cplusplus
45 }
46 #endif
enum xrt_result xrt_result_t
Result type used across Monado.
xrt_result_t comp_multi_create_system_compositor(struct xrt_compositor_native *xcn, struct u_pacing_app_factory *upaf, const struct xrt_system_compositor_info *xsci, bool do_warm_start, struct xrt_system_compositor **out_xsysc)
Create a "system compositor" that can handle multiple clients (each through a "multi compositor") and...
Definition: comp_multi_system.c:715
Small helper that creates a app pacers, allows timing information to be collected and controlled to a...
Definition: u_pacing.h:619
Main compositor server interface.
Definition: xrt_compositor.h:2196
Capabilities and information about the system compositor (and its wrapped native compositor,...
Definition: xrt_compositor.h:2267
The system compositor handles composition for a system.
Definition: xrt_compositor.h:2386
Header declaring XRT graphics interfaces.