Monado OpenXR Runtime
Loading...
Searching...
No Matches
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, int64_t timestamp_ns)
 Sets the state of the compositor, generating any events to the client if the state is actually changed.
 
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.
 
xrt_result_t(* set_base_chroma_key_params )(struct xrt_system_compositor *xsc, struct xrt_colour_hsv_f32 hsv_min, struct xrt_colour_hsv_f32 hsv_max, float curve, float despill)
 Set the chroma key parameters for the base app's projection layers.
 
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.
 
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.
 
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.
 
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.
 

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 multi_system_compositor::comp_multi_create_system_compositor(), and 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 multi_system_compositor::comp_multi_create_system_compositor(), and 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 multi_system_compositor::comp_multi_create_system_compositor(), and xrt_system_compositor::xrt_syscomp_notify_lost().

◆ set_base_chroma_key_params

xrt_result_t(* xrt_multi_compositor_control::set_base_chroma_key_params) (struct xrt_system_compositor *xsc, struct xrt_colour_hsv_f32 hsv_min, struct xrt_colour_hsv_f32 hsv_max, float curve, float despill)

Set the chroma key parameters for the base app's projection layers.

This is used to punch holes through opaque projection layers and adjust their blend mode. Uses HSV min/max range for flexible color targeting.

Parameters
hsv_minMinimum HSV bounds
hsv_maxMaximum HSV bounds
curvePower curve for alpha falloff
despillDespill strength

Referenced by multi_system_compositor::comp_multi_create_system_compositor().

◆ 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 multi_system_compositor::comp_multi_create_system_compositor(), and 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, int64_t timestamp_ns)

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 multi_system_compositor::comp_multi_create_system_compositor(), and 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 multi_system_compositor::comp_multi_create_system_compositor(), and xrt_system_compositor::xrt_syscomp_set_z_order().


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