The open source OpenXR runtime
0
fork

Configure Feed

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

driver/simulated: Handling when the view count is 1 or 2.

+15 -3
+15 -3
src/xrt/drivers/simulated/simulated_hmd.c
··· 67 67 } 68 68 69 69 DEBUG_GET_ONCE_LOG_OPTION(simulated_log, "SIMULATED_LOG", U_LOGGING_WARN) 70 + DEBUG_GET_ONCE_NUM_OPTION(view_count, "SIMULATED_VIEW_COUNT", 2) 70 71 71 72 #define HMD_TRACE(hmd, ...) U_LOG_XDEV_IFL_T(&hmd->base, hmd->log_level, __VA_ARGS__) 72 73 #define HMD_DEBUG(hmd, ...) U_LOG_XDEV_IFL_D(&hmd->base, hmd->log_level, __VA_ARGS__) ··· 205 206 hmd->log_level = simulated_log_level(); 206 207 hmd->movement = movement; 207 208 209 + hmd->base.hmd->view_count = debug_get_num_option_view_count(); 208 210 // Print name. 209 211 snprintf(hmd->base.str, XRT_DEVICE_NAME_LEN, "Simulated HMD"); 210 212 snprintf(hmd->base.serial, XRT_DEVICE_NAME_LEN, "Simulated HMD"); ··· 213 215 hmd->base.inputs[0].name = XRT_INPUT_GENERIC_HEAD_POSE; 214 216 215 217 // Setup info. 218 + bool ret = true; 216 219 struct u_device_simple_info info; 217 220 info.display.w_pixels = 1280; 218 221 info.display.h_pixels = 720; ··· 220 223 info.display.h_meters = 0.07f; 221 224 info.lens_horizontal_separation_meters = 0.13f / 2.0f; 222 225 info.lens_vertical_position_meters = 0.07f / 2.0f; 223 - info.fov[0] = 85.0f * ((float)(M_PI) / 180.0f); 224 - info.fov[1] = 85.0f * ((float)(M_PI) / 180.0f); 225 226 226 - if (!u_device_setup_split_side_by_side(&hmd->base, &info)) { 227 + if (hmd->base.hmd->view_count == 1) { 228 + info.fov[0] = 120.0f * (M_PI / 180.0f); 229 + ret = u_device_setup_one_eye(&hmd->base, &info); 230 + } else if (hmd->base.hmd->view_count == 2) { 231 + info.fov[0] = 85.0f * (M_PI / 180.0f); 232 + info.fov[1] = 85.0f * (M_PI / 180.0f); 233 + ret = u_device_setup_split_side_by_side(&hmd->base, &info); 234 + } else { 235 + U_LOG_E("Invalid view count"); 236 + ret = false; 237 + } 238 + if (!ret) { 227 239 HMD_ERROR(hmd, "Failed to setup basic device info"); 228 240 simulated_hmd_destroy(&hmd->base); 229 241 return NULL;