Monado OpenXR Runtime
Loading...
Searching...
No Matches
Distortion utilities
Collaboration diagram for Distortion utilities:

Files

file  u_distortion.c
 Code to handle distortion parameters and fov.
 
file  u_distortion.h
 Code to handle distortion parameters and fov.
 
file  u_distortion_mesh.c
 Code to generate disortion meshes.
 
file  u_distortion_mesh.h
 Code to generate disortion meshes.
 

Data Structures

struct  u_cardboard_distortion_arguments
 These are the values that you need to supply to the distortion code to setup a u_cardboard_distortion properly. More...
 
struct  u_cardboard_distortion_values
 Values to create a distortion mesh from cardboard values. More...
 
struct  u_cardboard_distortion
 Both given and derived values needed for cardboard distortion. More...
 
struct  u_panotools_values
 Values to create a distortion mesh from panotools values. More...
 
struct  u_vive_values
 Values to create a distortion mesh from Vive configuration values. More...
 

Functions

void u_distortion_cardboard_calculate (const struct u_cardboard_distortion_arguments *args, struct xrt_hmd_parts *parts, struct u_cardboard_distortion *out_dist)
 Take cardboard arguments to turn them into a u_cardboard_distortion and fill out a xrt_hmd_parts struct.
 
void u_compute_distortion_panotools (struct u_panotools_values *values, float u, float v, struct xrt_uv_triplet *result)
 Distortion correction implementation for Panotools distortion values.
 
void u_compute_distortion_vive (struct u_vive_values *values, float u, float v, struct xrt_uv_triplet *result)
 Distortion correction implementation for the Vive, Vive Pro, Valve Index distortion values found in the HMD configuration.
 
void u_compute_distortion_cardboard (struct u_cardboard_distortion_values *values, float u, float v, struct xrt_uv_triplet *result)
 Distortion correction implementation for the Cardboard devices.
 
void u_compute_distortion_ns_p2d (struct u_ns_p2d_values *values, int view, float u, float v, struct xrt_uv_triplet *result)
 Distortion correction implementation for North Star 2D/Polynomial.
 
void u_compute_distortion_ns_meshgrid (struct u_ns_meshgrid_values *values, int view, float u, float v, struct xrt_uv_triplet *result)
 Moshi Turner's North Star distortion correction implementation.
 
xrt_result_t u_distortion_mesh_none (struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *result)
 Helper function for none distortion devices.
 
void u_distortion_mesh_fill_in_compute (struct xrt_device *xdev)
 Given a xrt_device generates meshes by calling xdev->compute_distortion(), populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.
 
void u_distortion_mesh_fill_in_none (struct xrt_device *xdev)
 Given a xrt_device generates a no distortion mesh, populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.
 
void u_distortion_mesh_set_none (struct xrt_device *xdev)
 Given a xrt_device generates a no distortion mesh, also sets xdev->compute_distortion() and populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.
 
void u_distortion_mesh_fill_in_compute (struct xrt_device *xdev)
 Given a xrt_device generates meshes by calling xdev->compute_distortion(), populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.
 
void u_distortion_mesh_fill_in_none (struct xrt_device *xdev)
 Given a xrt_device generates a no distortion mesh, populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.
 
void u_distortion_mesh_set_none (struct xrt_device *xdev)
 Given a xrt_device generates a no distortion mesh, also sets xdev->compute_distortion() and populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.
 

Detailed Description

Function Documentation

◆ u_compute_distortion_cardboard()

void u_compute_distortion_cardboard ( struct u_cardboard_distortion_values values,
float  u,
float  v,
struct xrt_uv_triplet result 
)

◆ u_compute_distortion_ns_meshgrid()

void u_compute_distortion_ns_meshgrid ( struct u_ns_meshgrid_values values,
int  view,
float  u,
float  v,
struct xrt_uv_triplet result 
)

#include <auxiliary/util/u_distortion_mesh.h>

Moshi Turner's North Star distortion correction implementation.

References math_map_ranges().

◆ u_compute_distortion_ns_p2d()

void u_compute_distortion_ns_p2d ( struct u_ns_p2d_values values,
int  view,
float  u,
float  v,
struct xrt_uv_triplet result 
)

#include <auxiliary/util/u_distortion_mesh.h>

Distortion correction implementation for North Star 2D/Polynomial.

References math_map_ranges().

◆ u_compute_distortion_panotools()

void u_compute_distortion_panotools ( struct u_panotools_values values,
float  u,
float  v,
struct xrt_uv_triplet result 
)

◆ u_compute_distortion_vive()

void u_compute_distortion_vive ( struct u_vive_values values,
float  u,
float  v,
struct xrt_uv_triplet result 
)

#include <auxiliary/util/u_distortion_mesh.h>

Distortion correction implementation for the Vive, Vive Pro, Valve Index distortion values found in the HMD configuration.

References u_vive_values::center, and u_vive_values::coefficients.

◆ u_distortion_cardboard_calculate()

◆ u_distortion_mesh_fill_in_compute() [1/2]

void u_distortion_mesh_fill_in_compute ( struct xrt_device xdev)

#include <auxiliary/util/u_distortion_mesh.h>

Given a xrt_device generates meshes by calling xdev->compute_distortion(), populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.

Referenced by blubur_s1_hmd_create(), ns_hmd_create(), psvr2_hmd_create(), svr_hmd_create(), and wmr_hmd_create().

◆ u_distortion_mesh_fill_in_compute() [2/2]

void u_distortion_mesh_fill_in_compute ( struct xrt_device xdev)
related

Given a xrt_device generates meshes by calling xdev->compute_distortion(), populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.

References xrt_device::compute_distortion, xrt_device::hmd, and u_distortion_mesh_fill_in_none().

◆ u_distortion_mesh_fill_in_none() [1/2]

void u_distortion_mesh_fill_in_none ( struct xrt_device xdev)

#include <auxiliary/util/u_distortion_mesh.h>

Given a xrt_device generates a no distortion mesh, populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.

Referenced by xrt_device::u_distortion_mesh_fill_in_compute(), and xrt_device::u_distortion_mesh_set_none().

◆ u_distortion_mesh_fill_in_none() [2/2]

void u_distortion_mesh_fill_in_none ( struct xrt_device xdev)
related

Given a xrt_device generates a no distortion mesh, populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.

References xrt_hmd_parts::distortion, xrt_device::hmd, xrt_hmd_parts::models, xrt_hmd_parts::preferred, and u_distortion_mesh_none().

◆ u_distortion_mesh_none()

xrt_result_t u_distortion_mesh_none ( struct xrt_device xdev,
uint32_t  view,
float  u,
float  v,
struct xrt_uv_triplet result 
)

◆ u_distortion_mesh_set_none() [1/2]

void u_distortion_mesh_set_none ( struct xrt_device xdev)

#include <auxiliary/util/u_distortion_mesh.h>

Given a xrt_device generates a no distortion mesh, also sets xdev->compute_distortion() and populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.

Referenced by create_hmd(), illixr_hmd_create(), qwerty_hmd::qwerty_hmd_create(), sample_hmd_create(), sdl_device_init(), simulated_hmd_create(), svr_hmd_create(), and xreal_air_hmd_create_device().

◆ u_distortion_mesh_set_none() [2/2]

void u_distortion_mesh_set_none ( struct xrt_device xdev)
related

Given a xrt_device generates a no distortion mesh, also sets xdev->compute_distortion() and populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models.

References xrt_device::compute_distortion, xrt_hmd_parts::distortion, xrt_device::hmd, xrt_hmd_parts::models, u_distortion_mesh_fill_in_none(), and u_distortion_mesh_none().