Bug 1384865 - Using game pose of OpenVR VRDisplay instead of render pose; r?kip draft
authorDaosheng Mu <daoshengmu@gmail.com>
Thu, 27 Jul 2017 17:20:58 +0800
changeset 616655 dca02eda277544d4086475d83c29838930a332b5
parent 616205 f1693d664f8e8ee4c79801630c181c28095cad56
child 639542 6d80e384ef81581a18e4c99476d98c842be971a8
push id70758
push userbmo:dmu@mozilla.com
push dateThu, 27 Jul 2017 09:24:58 +0000
reviewerskip
bugs1384865
milestone56.0a1
Bug 1384865 - Using game pose of OpenVR VRDisplay instead of render pose; r?kip MozReview-Commit-ID: FXnPBdyVLdE
gfx/vr/gfxVROpenVR.cpp
--- a/gfx/vr/gfxVROpenVR.cpp
+++ b/gfx/vr/gfxVROpenVR.cpp
@@ -198,19 +198,20 @@ VRDisplayOpenVR::PollEvents()
   }
 }
 
 VRHMDSensorState
 VRDisplayOpenVR::GetSensorState()
 {
   PollEvents();
 
-  ::vr::TrackedDevicePose_t poses[::vr::k_unMaxTrackedDeviceCount];
-  // Note: We *must* call WaitGetPoses in order for any rendering to happen at all
-  mVRCompositor->WaitGetPoses(poses, ::vr::k_unMaxTrackedDeviceCount, nullptr, 0);
+  const uint32_t posesSize = ::vr::k_unTrackedDeviceIndex_Hmd + 1;
+  ::vr::TrackedDevicePose_t poses[posesSize];
+  // Note: We *must* call WaitGetPoses in order for any rendering to happen at all.
+  mVRCompositor->WaitGetPoses(nullptr, 0, poses, posesSize);
 
   VRHMDSensorState result;
 
   ::vr::Compositor_FrameTiming timing;
   timing.m_nSize = sizeof(::vr::Compositor_FrameTiming);
   if (mVRCompositor->GetFrameTiming(&timing)) {
     result.timestamp = timing.m_flSystemTimeInSeconds;
   } else {