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
16extern "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:739
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:2224
Capabilities and information about the system compositor (and its wrapped native compositor,...
Definition: xrt_compositor.h:2295
The system compositor handles composition for a system.
Definition: xrt_compositor.h:2414
Header declaring XRT graphics interfaces.