Blender V4.3
wm_xr_draw.cc File Reference
#include <cstring>
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "ED_view3d_offscreen.hh"
#include "GHOST_C-api.h"
#include "GPU_batch_presets.hh"
#include "GPU_immediate.hh"
#include "GPU_matrix.hh"
#include "GPU_viewport.hh"
#include "WM_api.hh"
#include "wm_xr_intern.hh"

Go to the source code of this file.

Functions

Window-Manager XR Drawing

Implements Blender specific drawing functionality for use with the Ghost-XR API.

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])
 
static void wm_xr_draw_matrices_create (const wmXrDrawData *draw_data, const GHOST_XrDrawViewInfo *draw_view, const XrSessionSettings *session_settings, const wmXrSessionState *session_state, float r_viewmat[4][4], float r_projmat[4][4])
 
static void wm_xr_draw_viewport_buffers_to_active_framebuffer (const wmXrRuntimeData *runtime_data, const wmXrSurfaceData *surface_data, const GHOST_XrDrawViewInfo *draw_view)
 
void wm_xr_draw_view (const GHOST_XrDrawViewInfo *draw_view, void *customdata)
 Draw a viewport for a single eye.
 
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.
 
static blender::gpu::Batch * wm_xr_controller_model_batch_create (GHOST_XrContextHandle xr_context, const char *subaction_path)
 
static void wm_xr_controller_model_draw (const XrSessionSettings *settings, GHOST_XrContextHandle xr_context, wmXrSessionState *state)
 
static void wm_xr_controller_aim_draw (const XrSessionSettings *settings, wmXrSessionState *state)
 
void wm_xr_draw_controllers (const bContext *, ARegion *, void *customdata)
 

Function Documentation

◆ wm_xr_controller_aim_draw()

◆ wm_xr_controller_model_batch_create()

static blender::gpu::Batch * wm_xr_controller_model_batch_create ( GHOST_XrContextHandle xr_context,
const char * subaction_path )
static

◆ wm_xr_controller_model_draw()

◆ 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_matrices_create()

◆ wm_xr_draw_view()

◆ wm_xr_draw_viewport_buffers_to_active_framebuffer()

static void wm_xr_draw_viewport_buffers_to_active_framebuffer ( const wmXrRuntimeData * runtime_data,
const wmXrSurfaceData * surface_data,
const GHOST_XrDrawViewInfo * draw_view )
static

◆ 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] )