The open source OpenXR runtime
0
fork

Configure Feed

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

cmake: change project c++-lang to c++20

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2258>

+37 -21
+1 -1
CMakeLists.txt
··· 46 46 set(CMAKE_C_STANDARD_REQUIRED ON) 47 47 48 48 # We use C++17 49 - set(CMAKE_CXX_STANDARD 17) 49 + set(CMAKE_CXX_STANDARD 20) 50 50 set(CMAKE_CXX_STANDARD_REQUIRED ON) 51 51 52 52 # So that clangd/Intellisense/Sourcetrail know how to parse our code.
+9 -1
src/xrt/drivers/steamvr_lh/device.hpp
··· 25 25 26 26 struct DeviceBuilder 27 27 { 28 - std::shared_ptr<Context> ctx; 28 + using ContextPtr = std::shared_ptr<Context>; 29 + ContextPtr ctx; 29 30 vr::ITrackedDeviceServerDriver *driver; 30 31 const char *serial; 31 32 const std::string &steam_install; 33 + 34 + DeviceBuilder(const ContextPtr &p_ctx, 35 + vr::ITrackedDeviceServerDriver *p_driver, 36 + const char *p_serial, 37 + const std::string &p_stream_install) 38 + : ctx{p_ctx}, driver{p_driver}, serial{p_serial}, steam_install{p_stream_install} 39 + {} 32 40 33 41 // no copies! 34 42 DeviceBuilder(const DeviceBuilder &) = delete;
+27 -19
src/xrt/state_trackers/steamvr_drv/ovrd_driver.cpp
··· 1249 1249 //! @todo 1250 1250 } 1251 1251 1252 - static inline vr::HmdQuaternion_t 1252 + static constexpr inline vr::HmdQuaternion_t 1253 1253 HmdQuaternion_Init(double w, double x, double y, double z) 1254 1254 { 1255 - vr::HmdQuaternion_t quat; 1256 - quat.w = w; 1257 - quat.x = x; 1258 - quat.y = y; 1259 - quat.z = z; 1260 - return quat; 1255 + return vr::HmdQuaternion_t{ 1256 + .w = w, 1257 + .x = x, 1258 + .y = y, 1259 + .z = z, 1260 + }; 1261 1261 } 1262 1262 1263 1263 vr::DriverPose_t ··· 1275 1275 m_relation_chain_push_pose_if_not_identity(&chain, offset); 1276 1276 m_relation_chain_resolve(&chain, &rel); 1277 1277 1278 - vr::DriverPose_t t = {}; 1278 + vr::DriverPose_t t = { 1279 + // monado predicts pose "now", see xrt_device_get_tracked_pose 1280 + .poseTimeOffset = 0, 1281 + .qWorldFromDriverRotation = HmdQuaternion_Init(1, 0, 0, 0), 1282 + .vecWorldFromDriverTranslation = {0, 0, 0}, 1279 1283 1280 - 1281 - // monado predicts pose "now", see xrt_device_get_tracked_pose 1282 - t.poseTimeOffset = 0; 1284 + .qDriverFromHeadRotation = HmdQuaternion_Init(1, 0, 0, 0), 1285 + .vecDriverFromHeadTranslation = {0, 0, 0}, 1283 1286 1284 - //! @todo: Monado head model? 1285 - t.shouldApplyHeadModel = !m_xdev->position_tracking_supported; 1286 - t.willDriftInYaw = !m_xdev->position_tracking_supported; 1287 + .vecPosition = {0, 0, 0}, 1288 + .vecVelocity = {0, 0, 0}, 1289 + .vecAcceleration = {0, 0, 0}, 1287 1290 1288 - t.qWorldFromDriverRotation = HmdQuaternion_Init(1, 0, 0, 0); 1289 - t.qDriverFromHeadRotation = HmdQuaternion_Init(1, 0, 0, 0); 1291 + .qRotation = HmdQuaternion_Init(1, 0, 0, 0), 1290 1292 1291 - t.poseIsValid = rel.relation_flags & XRT_SPACE_RELATION_ORIENTATION_VALID_BIT; 1292 - t.result = vr::TrackingResult_Running_OK; 1293 - t.deviceIsConnected = true; 1293 + .vecAngularVelocity = {0, 0, 0}, 1294 + .vecAngularAcceleration = {0, 0, 0}, 1294 1295 1296 + .result = vr::TrackingResult_Running_OK, 1297 + .poseIsValid = (rel.relation_flags & XRT_SPACE_RELATION_ORIENTATION_VALID_BIT) != 0, 1298 + .willDriftInYaw = !m_xdev->position_tracking_supported, 1299 + //! @todo: Monado head model? 1300 + .shouldApplyHeadModel = !m_xdev->position_tracking_supported, 1301 + .deviceIsConnected = true, 1302 + }; 1295 1303 apply_pose(&rel, &t); 1296 1304 1297 1305 #ifdef DUMP_POSE