Changes For Release 0.8.0
The Oculus SDK 0.8 release changes the SDK from an HMD-based model to a session-based model and adds several new features.
New Features
The following are new features for the Oculus SDK and runtime:
- Improved support for Windows 10.
- Added ovr_GetSessionStatus, which returns whether the headset is present and whether it has VR focus and can render to the headset.
- Added ovr_Detect to OVR_CAPI_Util.h, which enables you to detect the presence of a headset without initializing LibOVR. This can be useful when a game has VR and non-VR modes.
- Added HandStatusFlags to ovrTrackingState, which specifies whether the the Oculus Touch controllers are being tracked. Status includes orientation and position.
- Added SensorSampleTime to ovrLayerEyeFov, which specifies when the render pose was calculated. This is useful for measuring application tracking latency.
- Added ovr_GetTrackingCaps to get the tracking capabilities of the device.
- Usage of ovr_ConfigureTracking is no longer needed unless you want to disable tracking features. By default, ovr_Create enables the full tracking capabilities supported by any given device.
- Added ovrLayerHudMode, which enables the headset user to see information about a layer.
- Added ovrControllerType_None and ovrControllerType_XBox to ovrControllerType.
- The Oculus Debug Tool was added to simplify troubleshooting. For more information see Oculus Debug Tool.
Runtime Changes
Changes include:
API Changes
This release represents a major revision of the API. Changes to the API include:
- Applications no longer need to call ovr_ConfigureTracking. ovr_Create automatically enables the full tracking capabilities supported by any given device.
- Replaced ovr_GetFrameTiming with ovr_GetPredictedDisplayTime.
- Added latencyMarker to ovrTrackingState. When set to ovrTrue, this indicates that it will be used in the rendering loop and will be used to calculate latency.
- To emphasize the session model, renamed ovrHmd to ovrSession and hmd to session.
- ovrLayerType_QuadInWorld and ovrLayerType_QuadHeadLocked were renamed to ovrLayerType_Quad and are now differentiated by the ovrLayerFlag_HeadLocked flag.
- Added ovrMaxLayerCount, which sets the maximum number of layers to 32.
- Removed ovrInit_ServerOptional. If you use this to detect whether the OVRService is available, periodically call ovr_Initialize or poll ovr_Detect instead.
- Removed ovrTrackingCap_Idle from ovrTrackingCaps.
Known Issues
The following are known issues:
- The Oculus service might crash when gathering diagnostic logs from the Oculus Config Util. If this happens, the service will automatically restart and the logs will be retained.
- The Oculus service and Config Util might hang when running the demo scene and another VR app at the same time"
Migrating from SDK 0.7.x to SDK 0.8
To migrate:
- Update calls to ovr_GetFrameTiming with ovr_GetPredictedDisplayTime using the new syntax.
- Update instances of ovrHmd hmd to ovrSession session.
- Remove any code that uses ovrInit_ServerOptional. If you use this to detect whether the OVRService is available, periodically call ovr_Initialize or poll ovr_Detect instead.
- Remove calls to ovr_ConfigureTracking as the SDK enables all existing tracking features by default.
- For ovrLayerType_EyeFov layers, fill in the SensorSampleTime with timestamps captured when ovr_GetTrackingState is being called in the same frame just before generating the view matrix to render the two eye textures.