Updated oculus initialization

This commit is contained in:
barnold1953 2014-06-23 15:55:54 -07:00
parent 19195f9119
commit e0a33f129c
2 changed files with 15 additions and 25 deletions

View file

@ -31,31 +31,25 @@ bool OculusManager::_isConnected = false;
using namespace OVR;
using namespace OVR::Util::Render;
Ptr<DeviceManager> OculusManager::_deviceManager;
Ptr<HMDDevice> OculusManager::_hmdDevice;
Ptr<SensorDevice> OculusManager::_sensorDevice;
SensorFusion* OculusManager::_sensorFusion;
StereoConfig OculusManager::_stereoConfig;
ovrHmd OculusManager::_ovrHmd;
ovrHmdDesc OculusManager::_ovrHmdDesc;
#endif
void OculusManager::connect() {
#ifdef HAVE_LIBOVR
System::Init();
_deviceManager = *DeviceManager::Create();
_hmdDevice = *_deviceManager->EnumerateDevices<HMDDevice>().CreateDevice();
ovr_Initialize();
if (_hmdDevice) {
_ovrHmd = ovrHmd_Create(0);
if (_ovrHmd) {
_isConnected = true;
_sensorDevice = *_hmdDevice->GetSensor();
_sensorFusion = new SensorFusion;
_sensorFusion->AttachToSensor(_sensorDevice);
_sensorFusion->SetPredictionEnabled(true);
ovrHmd_GetDesc(_ovrHmd, &_ovrHmdDesc);
ovrHmd_StartSensor(_ovrHmd, ovrSensorCap_Orientation | ovrSensorCap_YawCorrection |
ovrSensorCap_Position | ovrHmdCap_LowPersistence,
ovrSensorCap_Orientation);
HMDInfo info;
_hmdDevice->GetDeviceInfo(&info);
_stereoConfig.SetHMDInfo(info);
_program.addShaderFromSourceFile(QGLShader::Fragment, Application::resourcesPath() + "shaders/oculus.frag");
_program.link();
@ -66,8 +60,7 @@ void OculusManager::connect() {
_scaleInLocation = _program.uniformLocation("scaleIn");
_hmdWarpParamLocation = _program.uniformLocation("hmdWarpParam");
} else {
_deviceManager.Clear();
System::Destroy();
ovr_Shutdown();
}
#endif
}

View file

@ -55,11 +55,8 @@ private:
static bool _isConnected;
#ifdef HAVE_LIBOVR
static OVR::Ptr<OVR::DeviceManager> _deviceManager;
static OVR::Ptr<OVR::HMDDevice> _hmdDevice;
static OVR::Ptr<OVR::SensorDevice> _sensorDevice;
static OVR::SensorFusion* _sensorFusion;
static OVR::Util::Render::StereoConfig _stereoConfig;
static ovrHmd _ovrHmd;
static ovrHmdDesc _ovrHmdDesc;
#endif
};