The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

xrt: Move tracking origin setup code to u_device

+42 -30
+27
src/xrt/auxiliary/util/u_device.c
··· 359 359 } 360 360 } 361 361 } 362 + 363 + void 364 + u_device_setup_tracking_origins(struct xrt_device *head, 365 + struct xrt_device *left, 366 + struct xrt_device *right) 367 + { 368 + if (head->tracking_origin->type == XRT_TRACKING_TYPE_NONE) { 369 + // "nominal height" 1.6m 370 + head->tracking_origin->offset.position.x = 0.0f; 371 + head->tracking_origin->offset.position.y = 1.6f; 372 + head->tracking_origin->offset.position.z = 0.0f; 373 + } 374 + 375 + if (left != NULL && 376 + left->tracking_origin->type == XRT_TRACKING_TYPE_NONE) { 377 + left->tracking_origin->offset.position.x = -0.2f; 378 + left->tracking_origin->offset.position.y = 1.3f; 379 + left->tracking_origin->offset.position.z = -0.5f; 380 + } 381 + 382 + if (right != NULL && 383 + right->tracking_origin->type == XRT_TRACKING_TYPE_NONE) { 384 + right->tracking_origin->offset.position.x = 0.2f; 385 + right->tracking_origin->offset.position.y = 1.3f; 386 + right->tracking_origin->offset.position.z = -0.5f; 387 + } 388 + }
+10
src/xrt/auxiliary/util/u_device.h
··· 112 112 int *left, 113 113 int *right); 114 114 115 + /*! 116 + * Helper function to assign head, left hand and right hand roles. 117 + * 118 + * @ingroup aux_util 119 + */ 120 + void 121 + u_device_setup_tracking_origins(struct xrt_device *head, 122 + struct xrt_device *left, 123 + struct xrt_device *right); 124 + 115 125 #ifdef __cplusplus 116 126 } 117 127 #endif
+3
src/xrt/state_trackers/oxr/oxr_instance.c
··· 255 255 return ret; 256 256 } 257 257 258 + u_device_setup_tracking_origins(dev, GET_XDEV_BY_ROLE(sys, left), 259 + GET_XDEV_BY_ROLE(sys, right)); 260 + 258 261 const float left_override = debug_get_float_option_lfov_left(); 259 262 if (left_override != 0.0f) { 260 263 printf(
+2 -30
src/xrt/state_trackers/oxr/oxr_system.c
··· 102 102 XrSystemId systemId, 103 103 struct oxr_system *sys) 104 104 { 105 - struct xrt_device *head = GET_XDEV_BY_ROLE(sys, head); 106 - struct xrt_device *left = GET_XDEV_BY_ROLE(sys, left); 107 - struct xrt_device *right = GET_XDEV_BY_ROLE(sys, right); 108 - 109 - if (head == NULL) { 110 - return oxr_error(log, XR_ERROR_INITIALIZATION_FAILED, 111 - "Failed to probe device"); 112 - } 113 - 114 - if (head->tracking_origin->type == XRT_TRACKING_TYPE_NONE) { 115 - // "nominal height" 1.6m 116 - head->tracking_origin->offset.position.x = 0.0f; 117 - head->tracking_origin->offset.position.y = 1.6f; 118 - head->tracking_origin->offset.position.z = 0.0f; 119 - } 120 - 121 - if (left != NULL && 122 - left->tracking_origin->type == XRT_TRACKING_TYPE_NONE) { 123 - left->tracking_origin->offset.position.x = -0.2f; 124 - left->tracking_origin->offset.position.y = 1.3f; 125 - left->tracking_origin->offset.position.z = -0.5f; 126 - } 127 - 128 - if (right != NULL && 129 - right->tracking_origin->type == XRT_TRACKING_TYPE_NONE) { 130 - right->tracking_origin->offset.position.x = 0.2f; 131 - right->tracking_origin->offset.position.y = 1.3f; 132 - right->tracking_origin->offset.position.z = -0.5f; 133 - } 134 - 135 105 //! @todo handle other subaction paths? 136 106 137 107 sys->inst = inst; ··· 188 158 sys->views[1].recommendedSwapchainSampleCount = info->views[1].recommended.sample_count; 189 159 sys->views[1].maxSwapchainSampleCount = info->views[1].max.sample_count; 190 160 // clang-format on 161 + 162 + struct xrt_device *head = GET_XDEV_BY_ROLE(sys, head); 191 163 192 164 uint32_t i = 0; 193 165 if (head->hmd->blend_mode & XRT_BLEND_MODE_OPAQUE) {