Monado OpenXR Runtime
Data Fields
comp_compositor Struct Reference

Main compositor struct tying everything in the compositor together. More...

#include <main/comp_compositor.h>

Collaboration diagram for comp_compositor:
Collaboration graph
[legend]

Data Fields

struct xrt_compositor_fd base
 
struct xrt_compositorclient
 A link back to the compositor we are presenting to the client. More...
 
struct comp_rendererr
 Renderer helper. More...
 
struct comp_windowwindow
 The window or display we are using. More...
 
struct xrt_devicexdev
 The device we are displaying to. More...
 
struct comp_settings settings
 The settings. More...
 
struct vk_bundle vk
 Vulkan bundle of things. More...
 
int64_t last_frame_time_ns
 Timestamp of last-rendered (immersive) frame. More...
 
struct {
   int64_t   last_begin
 
   int64_t   last_end
 
app_profiling
 Data exclusive to the begin_frame/end_frame for computing an estimate of the app's needs. More...
 
int64_t frame_overhead_ns
 The time our compositor needs to do rendering. More...
 
struct {
   int   index
 Current Index for times_ns. More...
 
   int64_t   times_ns [NUM_FRAME_TIMES]
 Timestamps of last-rendered (immersive) frames. More...
 
   float   timings_ms [NUM_FRAME_TIMES]
 Frametimes between last-rendered (immersive) frames. More...
 
   float   fps
 Average FPS of last NUM_FRAME_TIMES rendered frames. More...
 
   struct u_var_timing *   debug_var
 
compositor_frame_times
 
int64_t expected_app_duration_ns
 Estimated rendering time per frame of the application. More...
 
int64_t last_next_display_time
 The last time we provided in the results of wait_frame. More...
 
struct {
   uint32_t   width
 
   uint32_t   height
 
current
 The current state we are tracking. More...
 
struct {
   struct u_threading_stack   destroy_swapchains
 Thread object for safely destroying swapchain. More...
 
threading
 

Detailed Description

Main compositor struct tying everything in the compositor together.

Field Documentation

◆ app_profiling

struct { ... } comp_compositor::app_profiling

Data exclusive to the begin_frame/end_frame for computing an estimate of the app's needs.

◆ base

struct xrt_compositor_fd comp_compositor::base

◆ client

struct xrt_compositor* comp_compositor::client

A link back to the compositor we are presenting to the client.

◆ compositor_frame_times

struct { ... } comp_compositor::compositor_frame_times

◆ current

struct { ... } comp_compositor::current

The current state we are tracking.

Settings is supposed to be read only.

◆ debug_var

struct u_var_timing* comp_compositor::debug_var

◆ destroy_swapchains

struct u_threading_stack comp_compositor::destroy_swapchains

Thread object for safely destroying swapchain.

◆ expected_app_duration_ns

int64_t comp_compositor::expected_app_duration_ns

Estimated rendering time per frame of the application.

Set by the begin_frame/end_frame code.

Todo:
make this atomic.

◆ fps

float comp_compositor::fps

Average FPS of last NUM_FRAME_TIMES rendered frames.

◆ frame_overhead_ns

int64_t comp_compositor::frame_overhead_ns

The time our compositor needs to do rendering.

◆ height

uint32_t comp_compositor::height

◆ index

int comp_compositor::index

Current Index for times_ns.

◆ last_begin

int64_t comp_compositor::last_begin

◆ last_end

int64_t comp_compositor::last_end

◆ last_frame_time_ns

int64_t comp_compositor::last_frame_time_ns

Timestamp of last-rendered (immersive) frame.

◆ last_next_display_time

int64_t comp_compositor::last_next_display_time

The last time we provided in the results of wait_frame.

◆ r

struct comp_renderer* comp_compositor::r

Renderer helper.

◆ settings

struct comp_settings comp_compositor::settings

◆ threading

struct { ... } comp_compositor::threading

◆ times_ns

int64_t comp_compositor::times_ns[NUM_FRAME_TIMES]

Timestamps of last-rendered (immersive) frames.

◆ timings_ms

float comp_compositor::timings_ms[NUM_FRAME_TIMES]

Frametimes between last-rendered (immersive) frames.

◆ vk

struct vk_bundle comp_compositor::vk

Vulkan bundle of things.

Referenced by comp_distortion_init(), and comp_swapchain_really_destroy().

◆ width

uint32_t comp_compositor::width

◆ window

struct comp_window* comp_compositor::window

The window or display we are using.

◆ xdev

struct xrt_device* comp_compositor::xdev

The device we are displaying to.


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