X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Foculusriftdevice.cpp;fp=source%2Foculusriftdevice.cpp;h=0000000000000000000000000000000000000000;hb=12044b218363bdd93f9fc1b3c71167d700144e45;hp=f73371f6c77d921f4ccc7ad3a04b6d2fb86060de;hpb=8d1197440f07062a1020d902619ae8e9a494baa0;p=libs%2Fvr.git diff --git a/source/oculusriftdevice.cpp b/source/oculusriftdevice.cpp deleted file mode 100644 index f73371f..0000000 --- a/source/oculusriftdevice.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "oculusriftdevice.h" -#include "oculusriftdevice_private.h" -#include "stereoview.h" - -using namespace std; - -namespace Msp { -namespace VR { - -unsigned OculusRiftDevice::n_instances = 0; - -OculusRiftDevice::OculusRiftDevice(): - priv(new Private), - frame_index(0) -{ - if(!n_instances) - ovr_Initialize(); - ++n_instances; - - priv->ovr_hmd = ovrHmd_Create(0); - if(!priv->ovr_hmd) - { - delete priv; - throw runtime_error("rift hmd not found"); - } -} - -OculusRiftDevice::~OculusRiftDevice() -{ - ovrHmd_Destroy(priv->ovr_hmd); - delete priv; - - --n_instances; - if(!n_instances) - ovr_Shutdown(); -} - -void OculusRiftDevice::configure_view(StereoView &view) const -{ - ovrEyeRenderDesc left_desc = ovrHmd_GetRenderDesc(priv->ovr_hmd, ovrEye_Left, priv->ovr_hmd->DefaultEyeFov[ovrEye_Left]); - ovrEyeRenderDesc right_desc = ovrHmd_GetRenderDesc(priv->ovr_hmd, ovrEye_Right, priv->ovr_hmd->DefaultEyeFov[ovrEye_Left]); - view.set_eye_spacing(left_desc.HmdToEyeViewOffset.x-right_desc.HmdToEyeViewOffset.x); -} - -OculusRiftCamera *OculusRiftDevice::create_camera(const GL::Camera &bc) const -{ - return new OculusRiftCamera(*this, bc); -} - -OculusRiftCombiner *OculusRiftDevice::create_combiner() const -{ - return new OculusRiftCombiner(*this); -} - -void OculusRiftDevice::begin_frame() -{ - priv->frame_timing = ovrHmd_BeginFrameTiming(priv->ovr_hmd, ++frame_index); - timing_active = true; -} - -void OculusRiftDevice::end_frame() -{ - glFinish(); - ovrHmd_EndFrameTiming(priv->ovr_hmd); - timing_active = false; -} - -double OculusRiftDevice::get_tracking_time() const -{ - if(!timing_active) - throw logic_error("timing not active"); - return priv->frame_timing.ScanoutMidpointSeconds; -} - -double OculusRiftDevice::get_timewarp_time() const -{ - if(!timing_active) - throw logic_error("timing not active"); - return priv->frame_timing.TimewarpPointSeconds; -} - -double OculusRiftDevice::get_current_time() const -{ - return ovr_GetTimeInSeconds(); -} - -} // namespace VR -} // namespace Msp