]> git.tdb.fi Git - libs/vr.git/blobdiff - source/ovr/oculusriftdevice.cpp
Rename DisplayDevice to System
[libs/vr.git] / source / ovr / oculusriftdevice.cpp
diff --git a/source/ovr/oculusriftdevice.cpp b/source/ovr/oculusriftdevice.cpp
deleted file mode 100644 (file)
index 38fd20e..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#include <msp/graphics/display.h>
-#include <msp/vr/stereoview.h>
-#include "oculusriftdevice.h"
-#include "oculusriftdevice_private.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_window(Graphics::Window &window) const
-{
-       Graphics::WindowOptions win_opts = window.get_options();
-       win_opts.width = priv->ovr_hmd->Resolution.w;
-       win_opts.height = priv->ovr_hmd->Resolution.h;
-
-       const list<Graphics::Monitor> &monitors = window.get_display().get_monitors();
-       string hmd_name = priv->ovr_hmd->ProductName;
-       for(list<Graphics::Monitor>::const_iterator i=monitors.begin(); i!=monitors.end(); ++i)
-               if(hmd_name.find(i->name)!=string::npos)
-               {
-                       win_opts.fullscreen = true;
-                       win_opts.fullscreen_monitor = &*i;
-                       win_opts.fullscreen_exclusive = false;
-               }
-
-       window.reconfigure(win_opts);
-}
-
-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]);
-       const ovrVector3f &l = left_desc.HmdToEyeViewOffset;
-       const ovrVector3f &r = right_desc.HmdToEyeViewOffset;
-       view.set_eye_matrices(GL::Matrix::translation(GL::Vector3(l.x, l.y, l.z)), GL::Matrix::translation(GL::Vector3(r.x, r.y, r.z)));
-}
-
-OculusRiftCamera *OculusRiftDevice::create_camera(const GL::Camera &bc)
-{
-       return new OculusRiftCamera(*this, bc);
-}
-
-OculusRiftCombiner *OculusRiftDevice::create_combiner(GL::View &view)
-{
-       return new OculusRiftCombiner(*this, view);
-}
-
-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