2020-01-09 23:10:09 +00:00
|
|
|
#include "engine.hpp"
|
2020-02-15 19:01:11 +00:00
|
|
|
#include "mwbase/environment.hpp"
|
2020-01-09 23:10:09 +00:00
|
|
|
#include "mwvr/openxrmanager.hpp"
|
2020-02-15 19:01:11 +00:00
|
|
|
#include "mwvr/openxrsession.hpp"
|
2020-01-09 23:10:09 +00:00
|
|
|
|
|
|
|
#ifndef USE_OPENXR
|
|
|
|
#error "USE_OPENXR not defined"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
void OMW::Engine::initVr()
|
|
|
|
{
|
|
|
|
if (!mViewer)
|
|
|
|
throw std::logic_error("mViewer must be initialized before calling initVr()");
|
|
|
|
|
|
|
|
mXR = new MWVR::OpenXRManager();
|
2020-02-15 19:01:11 +00:00
|
|
|
mEnvironment.setXRSession(new MWVR::OpenXRSession(mXR));
|
2020-02-14 21:11:19 +00:00
|
|
|
|
|
|
|
// Ref: https://wiki.openmw.org/index.php?title=Measurement_Units
|
|
|
|
float unitsPerYard = 64.f;
|
|
|
|
float yardsPerMeter = 0.9144f;
|
|
|
|
float unitsPerMeter = unitsPerYard / yardsPerMeter;
|
|
|
|
mXRViewer = new MWVR::OpenXRViewer(mXR, mViewer, unitsPerMeter);
|
2020-01-09 23:10:09 +00:00
|
|
|
|
|
|
|
}
|