Monado OpenXR Runtime
rift_distortion.h
Go to the documentation of this file.
1// Copyright 2025, Beyley Cardellio
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Public functions for the Oculus Rift distortion correction.
6 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
7 * @ingroup drv_rift
8 */
9
10#include "rift_internal.h"
11
12
14{
15 const struct rift_lens_distortion *distortion;
16 struct xrt_vec2 lens_center;
17 struct xrt_vec2 tan_eye_angle_scale;
18 struct xrt_vec2 pixels_per_tan_angle_at_center;
19};
20
22rift_get_distortion_render_info(struct rift_hmd *hmd, uint32_t view);
23
24struct xrt_vec3
25rift_distortion_distance_scale_squared_split_chroma(const struct rift_lens_distortion *lens_distortion,
26 float distance_squared);
27
29rift_calculate_fov_from_hmd(struct rift_hmd *hmd, const struct rift_distortion_render_info *distortion, uint32_t view);
30
32rift_calculate_ndc_scale_and_offset_from_fov(const struct rift_viewport_fov_tan *fov);
33
35rift_calculate_uv_scale_and_offset_from_ndc_scale_and_offset(const struct rift_scale_and_offset eye_to_source_ndc);
36
37void
38rift_fill_in_default_distortions(struct rift_hmd *hmd);
39
41rift_hmd_compute_distortion(struct xrt_device *dev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result);
enum xrt_result xrt_result_t
Result type used across Monado.
Interface to Oculus Rift driver code.
Definition: rift_distortion.h:14
A rift HMD device.
Definition: rift_internal.h:431
Definition: rift_internal.h:375
Definition: rift_internal.h:387
Definition: rift_internal.h:393
A single HMD or input device.
Definition: xrt_device.h:310
Represents a uv triplet for distortion, basically just three xrt_vec2.
Definition: xrt_defines.h:279
A 2 element vector with single floats.
Definition: xrt_defines.h:268
A 3 element vector with single floats.
Definition: xrt_defines.h:289