Improvements to openvr code

- Overlays are implemented (sans input for the moment)
- Fixed a problem where the movemanager was using the wrong values for hmd rotation & position
This commit is contained in:
James Urquhart 2016-05-14 23:51:04 +01:00
parent 185fde8ea4
commit da6bcbeb2b
13 changed files with 380 additions and 32 deletions

View file

@ -33,6 +33,7 @@ public:
};
vr::VROverlayHandle_t mOverlayHandle;
vr::VROverlayHandle_t mThumbOverlayHandle;
// Desired OpenVR state
U32 mOverlayFlags;
@ -41,15 +42,19 @@ public:
vr::VROverlayTransformType mOverlayTransformType;
MatrixF mTransform;
vr::TrackedDeviceIndex_t mTransformDeviceIndex;
const char* mTransformDeviceComponent;
String mTransformDeviceComponent;
vr::VROverlayInputMethod mInputMethod;
Point2F mMouseScale;
MatrixF mTrackingOrigin;
vr::ETrackingUniverseOrigin mTrackingOrigin;
vr::TrackedDeviceIndex_t mControllerDeviceIndex;
GFXTexHandle mStagingTexture; ///< Texture used by openvr
ColorF mOverlayColor;
bool mOverlayTypeDirty; ///< Overlay type is dirty
bool mOverlayDirty; ///< Overlay properties are dirty
OverlayType mOverlayType;
@ -61,6 +66,8 @@ public:
static void initPersistFields();
DECLARE_CONOBJECT(OpenVROverlay);
bool onAdd();
void onRemove();
@ -76,10 +83,13 @@ public:
bool isGamepadFocussed();
bool isActiveDashboardOverlay();
MatrixF getTransformForOverlayCoordinates(const vr::ETrackingUniverseOrigin trackingOrigin, const Point2F &pos);
bool castRay(const vr::ETrackingUniverseOrigin trackingOrigin, const Point3F &origin, const Point3F &direction, RayInfo *info);
MatrixF getTransformForOverlayCoordinates(const Point2F &pos);
bool castRay(const Point3F &origin, const Point3F &direction, RayInfo *info);
void moveGamepadFocusToNeighbour();
void handleOpenVREvents();
void onFrameRendered();
};
typedef OpenVROverlay::OverlayType OpenVROverlayType;