]> git.tdb.fi Git - libs/vr.git/blobdiff - source/ovr/oculusriftdevice.cpp
Automatically configure the window to cover the Rift's monitor
[libs/vr.git] / source / ovr / oculusriftdevice.cpp
index 146f04a7c0ad32a12c94dead97ea46265bec34fa..efc0cfaaf4d0baba5a43d64834c4b885ef70afc7 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/graphics/display.h>
 #include <msp/vr/stereoview.h>
 #include "oculusriftdevice.h"
 #include "oculusriftdevice_private.h"
@@ -35,6 +36,25 @@ OculusRiftDevice::~OculusRiftDevice()
                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]);