Implement basic keyboard & mouse support for openvr overlays

This commit is contained in:
James Urquhart 2016-05-18 23:55:17 +01:00
parent f91aa639d6
commit 734688ff7e
6 changed files with 167 additions and 21 deletions

View file

@ -1,4 +1,5 @@
#include "platform/input/openVR/openVRProvider.h"
#include "platform/input/openVR/openVROverlay.h"
#include "platform/platformInput.h"
#include "core/module.h"
#include "console/engineAPI.h"
@ -547,7 +548,7 @@ void OpenVRProvider::buildInputCodeTable()
bool OpenVRProvider::process()
{
if (!mHMD)
return true;
return true;
if (!vr::VRCompositor())
return true;
@ -559,6 +560,12 @@ bool OpenVRProvider::process()
processVREvent(event);
}
// process overlay events
for (U32 i = 0; i < mOverlays.size(); i++)
{
mOverlays[i]->handleOpenVREvents();
}
// Process SteamVR controller state
for (vr::TrackedDeviceIndex_t unDevice = 0; unDevice < vr::k_unMaxTrackedDeviceCount; unDevice++)
{
@ -1014,6 +1021,20 @@ void OpenVRProvider::resetSensors()
}
}
void OpenVRProvider::registerOverlay(OpenVROverlay* overlay)
{
mOverlays.push_back(overlay);
}
void OpenVRProvider::unregisterOverlay(OpenVROverlay* overlay)
{
S32 index = mOverlays.find_next(overlay);
if (index != -1)
{
mOverlays.erase(index);
}
}
OpenVROverlay *OpenVRProvider::getGamepadFocusOverlay()
{
return NULL;