Blender V4.3
wm_xr_intern.hh File Reference
#include "CLG_log.h"
#include "GHOST_Types.h"
#include "DNA_listBase.h"
#include "DNA_xr_types.h"
#include "wm_xr.hh"

Go to the source code of this file.

Classes

struct  wmXrSessionState
 
struct  wmXrRuntimeData
 
struct  wmXrViewportPair
 
struct  wmXrSurfaceData
 
struct  wmXrDrawData
 
struct  wmXrController
 
struct  wmXrAction
 
struct  wmXrHapticAction
 
struct  wmXrActionSet
 

Functions

wmXrRuntimeDatawm_xr_runtime_data_create ()
 
void wm_xr_runtime_data_free (wmXrRuntimeData **runtime)
 
void wm_xr_session_data_free (wmXrSessionState *state)
 
wmWindowwm_xr_session_root_window_or_fallback_get (const wmWindowManager *wm, const wmXrRuntimeData *runtime_data)
 
void wm_xr_session_draw_data_update (wmXrSessionState *state, const XrSessionSettings *settings, const GHOST_XrDrawViewInfo *draw_view, wmXrDrawData *draw_data)
 
void wm_xr_session_state_update (const XrSessionSettings *settings, const wmXrDrawData *draw_data, const GHOST_XrDrawViewInfo *draw_view, wmXrSessionState *state)
 
bool wm_xr_session_surface_offscreen_ensure (wmXrSurfaceData *surface_data, const GHOST_XrDrawViewInfo *draw_view)
 
void * wm_xr_session_gpu_binding_context_create ()
 
void wm_xr_session_gpu_binding_context_destroy (GHOST_ContextHandle context)
 
void wm_xr_session_actions_init (wmXrData *xr)
 
void wm_xr_session_actions_update (wmWindowManager *wm)
 
void wm_xr_session_controller_data_populate (const wmXrAction *grip_action, const wmXrAction *aim_action, wmXrData *xr)
 
void wm_xr_session_controller_data_clear (wmXrSessionState *state)
 
void wm_xr_pose_to_mat (const GHOST_XrPose *pose, float r_mat[4][4])
 
void wm_xr_pose_scale_to_mat (const GHOST_XrPose *pose, float scale, float r_mat[4][4])
 
void wm_xr_pose_to_imat (const GHOST_XrPose *pose, float r_imat[4][4])
 
void wm_xr_pose_scale_to_imat (const GHOST_XrPose *pose, float scale, float r_imat[4][4])
 
void wm_xr_draw_view (const GHOST_XrDrawViewInfo *draw_view, void *customdata)
 Draw a viewport for a single eye.
 
void wm_xr_draw_controllers (const bContext *C, ARegion *region, void *customdata)
 
bool wm_xr_passthrough_enabled (void *customdata)
 Check if XR passthrough is enabled.
 
void wm_xr_disable_passthrough (void *customdata)
 Disable XR passthrough if not supported.
 

Function Documentation

◆ wm_xr_disable_passthrough()

void wm_xr_disable_passthrough ( void * customdata)

Disable XR passthrough if not supported.

In case passthrough is not supported by the XR runtime, force un-check the toggle in the GUI. It's assigned to Ghost-XR as a callback (see GHOST_XrDisablePassthroughFunc()).

Definition at line 209 of file wm_xr_draw.cc.

References XrSessionSettings::draw_flags, RPT_INFO, wmXrData::session_settings, WM_report(), and wmXrDrawData::xr_data.

Referenced by wm_xr_init().

◆ wm_xr_draw_controllers()

◆ wm_xr_draw_view()

◆ wm_xr_passthrough_enabled()

bool wm_xr_passthrough_enabled ( void * customdata)

Check if XR passthrough is enabled.

Needed to add or not the passthrough composition layer. It's assigned to Ghost-XR as a callback (see GHOST_XrPassthroughEnabledFunc()).

Definition at line 200 of file wm_xr_draw.cc.

References wmXrData::session_settings, V3D_OFSDRAW_XR_SHOW_PASSTHROUGH, and wmXrDrawData::xr_data.

Referenced by wm_xr_init().

◆ wm_xr_pose_scale_to_imat()

void wm_xr_pose_scale_to_imat ( const GHOST_XrPose * pose,
float scale,
float r_imat[4][4] )

◆ wm_xr_pose_scale_to_mat()

void wm_xr_pose_scale_to_mat ( const GHOST_XrPose * pose,
float scale,
float r_mat[4][4] )

◆ wm_xr_pose_to_imat()

void wm_xr_pose_to_imat ( const GHOST_XrPose * pose,
float r_imat[4][4] )

◆ wm_xr_pose_to_mat()

void wm_xr_pose_to_mat ( const GHOST_XrPose * pose,
float r_mat[4][4] )

◆ wm_xr_runtime_data_create()

wmXrRuntimeData * wm_xr_runtime_data_create ( )

Definition at line 149 of file wm_xr.cc.

References MEM_callocN.

Referenced by wm_xr_init().

◆ wm_xr_runtime_data_free()

◆ wm_xr_session_actions_init()

void wm_xr_session_actions_init ( wmXrData * xr)

Definition at line 584 of file wm_xr_session.cc.

References wmXrRuntimeData::context, and wmXrData::runtime.

Referenced by wm_xr_session_create_cb().

◆ wm_xr_session_actions_update()

◆ wm_xr_session_controller_data_clear()

◆ wm_xr_session_controller_data_populate()

◆ wm_xr_session_data_free()

void wm_xr_session_data_free ( wmXrSessionState * state)

Definition at line 87 of file wm_xr_session.cc.

References state, and wm_xr_session_controller_data_free().

Referenced by wm_xr_runtime_data_free().

◆ wm_xr_session_draw_data_update()

◆ wm_xr_session_gpu_binding_context_create()

void * wm_xr_session_gpu_binding_context_create ( )

◆ wm_xr_session_gpu_binding_context_destroy()

void wm_xr_session_gpu_binding_context_destroy ( GHOST_ContextHandle context)

◆ wm_xr_session_root_window_or_fallback_get()

wmWindow * wm_xr_session_root_window_or_fallback_get ( const wmWindowManager * wm,
const wmXrRuntimeData * runtime_data )

◆ wm_xr_session_state_update()

void wm_xr_session_state_update ( const XrSessionSettings * settings,
const wmXrDrawData * draw_data,
const GHOST_XrDrawViewInfo * draw_view,
wmXrSessionState * state )

Update information that is only stored for external state queries. E.g. for Python API to request the current (as in, last known) viewer pose. Controller data and action sets will be updated separately via wm_xr_session_actions_update().

Definition at line 338 of file wm_xr_session.cc.

References wmXrDrawData::base_pose, wmXrDrawData::base_scale, copy_qt_qt(), copy_v3_v3(), DEFAULT_SENSOR_WIDTH, draw_view, wmXrDrawData::eye_position_ofs, fov_to_focallength(), mat4_to_loc_quat(), mul_m4_m4m4(), state, sub_v3_v3(), wm_xr_pose_scale_to_imat(), wm_xr_pose_scale_to_mat(), wm_xr_pose_to_mat(), XR_SESSION_USE_ABSOLUTE_TRACKING, XR_SESSION_USE_POSITION_TRACKING, and zero_v3().

Referenced by wm_xr_draw_view().

◆ wm_xr_session_surface_offscreen_ensure()