Monado OpenXR Runtime
xrt_multi_compositor_control Interface Reference

Special functions to control multi session/clients. More...

#include <xrt/xrt_compositor.h>

Collaboration diagram for xrt_multi_compositor_control:

Data Fields

xrt_result_t(* set_state )(struct xrt_system_compositor *xsc, struct xrt_compositor *xc, bool visible, bool focused)
 Sets the state of the compositor, generating any events to the client if the state is actually changed. More...
 
xrt_result_t(* set_z_order )(struct xrt_system_compositor *xsc, struct xrt_compositor *xc, int64_t z_order)
 Set the rendering Z order for rendering, visible has higher priority then z_order but is still saved until visible again. More...
 
xrt_result_t(* set_main_app_visibility )(struct xrt_system_compositor *xsc, struct xrt_compositor *xc, bool visible)
 Tell this client/session if the main application is visible or not. More...
 
xrt_result_t(* notify_loss_pending )(struct xrt_system_compositor *xsc, struct xrt_compositor *xc, int64_t loss_time_ns)
 Notify this client/session if the compositor is going to lose the ability of rendering. More...
 
xrt_result_t(* notify_lost )(struct xrt_system_compositor *xsc, struct xrt_compositor *xc)
 Notify this client/session if the compositor lost the ability of rendering. More...
 
xrt_result_t(* notify_display_refresh_changed )(struct xrt_system_compositor *xsc, struct xrt_compositor *xc, float from_display_refresh_rate_hz, float to_display_refresh_rate_hz)
 Notify this client/session if the display refresh rate has been changed. More...
 

Detailed Description

Special functions to control multi session/clients.

Effectively an optional aspect of xrt_system_compositor exposed by implementations that can combine layers from multiple sessions/clients.

Field Documentation

◆ notify_display_refresh_changed

xrt_result_t(* xrt_multi_compositor_control::notify_display_refresh_changed) (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, float from_display_refresh_rate_hz, float to_display_refresh_rate_hz)

Notify this client/session if the display refresh rate has been changed.

Referenced by xrt_system_compositor::xrt_syscomp_notify_display_refresh_changed().

◆ notify_loss_pending

xrt_result_t(* xrt_multi_compositor_control::notify_loss_pending) (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, int64_t loss_time_ns)

Notify this client/session if the compositor is going to lose the ability of rendering.

Parameters
loss_time_nsSystem monotonic timestamps, such as returned by os_monotonic_get_ns().

Referenced by xrt_system_compositor::xrt_syscomp_notify_loss_pending().

◆ notify_lost

xrt_result_t(* xrt_multi_compositor_control::notify_lost) (struct xrt_system_compositor *xsc, struct xrt_compositor *xc)

Notify this client/session if the compositor lost the ability of rendering.

Referenced by xrt_system_compositor::xrt_syscomp_notify_lost().

◆ set_main_app_visibility

xrt_result_t(* xrt_multi_compositor_control::set_main_app_visibility) (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, bool visible)

Tell this client/session if the main application is visible or not.

Referenced by xrt_system_compositor::xrt_syscomp_set_main_app_visibility().

◆ set_state

xrt_result_t(* xrt_multi_compositor_control::set_state) (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, bool visible, bool focused)

Sets the state of the compositor, generating any events to the client if the state is actually changed.

Input focus is enforced/handled by a different component but is still signaled by the compositor.

Referenced by xrt_system_compositor::xrt_syscomp_set_state().

◆ set_z_order

xrt_result_t(* xrt_multi_compositor_control::set_z_order) (struct xrt_system_compositor *xsc, struct xrt_compositor *xc, int64_t z_order)

Set the rendering Z order for rendering, visible has higher priority then z_order but is still saved until visible again.

This a signed 64 bit integer compared to a unsigned 32 bit integer in OpenXR, so that non-overlay clients can be handled like overlay ones.

Referenced by xrt_system_compositor::xrt_syscomp_set_z_order().


The documentation for this interface was generated from the following file: