X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fovr%2Foculusriftdevice.cpp;h=efc0cfaaf4d0baba5a43d64834c4b885ef70afc7;hb=ca9e343224762bd43c91af1b15ecba12ebf3e991;hp=32558e049aab576cc82403789c65058b78f9d7f9;hpb=12044b218363bdd93f9fc1b3c71167d700144e45;p=libs%2Fvr.git diff --git a/source/ovr/oculusriftdevice.cpp b/source/ovr/oculusriftdevice.cpp index 32558e0..efc0cfa 100644 --- a/source/ovr/oculusriftdevice.cpp +++ b/source/ovr/oculusriftdevice.cpp @@ -1,3 +1,4 @@ +#include #include #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 &monitors = window.get_display().get_monitors(); + string hmd_name = priv->ovr_hmd->ProductName; + for(list::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]); @@ -42,14 +62,14 @@ void OculusRiftDevice::configure_view(StereoView &view) const view.set_eye_spacing(left_desc.HmdToEyeViewOffset.x-right_desc.HmdToEyeViewOffset.x); } -OculusRiftCamera *OculusRiftDevice::create_camera(const GL::Camera &bc) const +OculusRiftCamera *OculusRiftDevice::create_camera(const GL::Camera &bc) { return new OculusRiftCamera(*this, bc); } -OculusRiftCombiner *OculusRiftDevice::create_combiner() const +OculusRiftCombiner *OculusRiftDevice::create_combiner(GL::View &view) { - return new OculusRiftCombiner(*this); + return new OculusRiftCombiner(*this, view); } void OculusRiftDevice::begin_frame()