]> git.tdb.fi Git - libs/vr.git/blobdiff - source/oculusriftcamera.cpp
Chromatic aberration correction is always included in distortion
[libs/vr.git] / source / oculusriftcamera.cpp
index 33ed07f261dc35180b5a0dc88727f6ea0be6782e..0eede270de864b92f17bf18031c0d012cf2b1a65 100644 (file)
@@ -9,9 +9,8 @@ OculusRiftCamera::OculusRiftCamera(const OculusRiftDevice &d, const GL::Camera &
        device(d),
        base_camera(c)
 {
-       const OculusRiftDevice::Private &dev_priv = device.get_private();
        unsigned supported = ovrTrackingCap_Orientation|ovrTrackingCap_MagYawCorrection|ovrTrackingCap_Position;
-       ovrHmd_ConfigureTracking(dev_priv.ovr_hmd, supported, 0);
+       ovrHmd_ConfigureTracking(device.get_private().ovr_hmd, supported, 0);
 }
 
 void OculusRiftCamera::reset_tracking()
@@ -21,7 +20,13 @@ void OculusRiftCamera::reset_tracking()
 
 void OculusRiftCamera::update()
 {
-       ovrTrackingState state = ovrHmd_GetTrackingState(device.get_private().ovr_hmd, ovr_GetTimeInSeconds());
+       double time;
+       if(device.is_timing_active())
+               time = device.get_tracking_time();
+       else
+               time = device.get_current_time();
+
+       ovrTrackingState state = ovrHmd_GetTrackingState(device.get_private().ovr_hmd, time);
        OVR::Posef head_pose = state.HeadPose.ThePose;
        OVR::Matrix4f tracking_matrix(head_pose.Rotation);
        OVR::Vector3f trans = head_pose.Translation;