|
|
@ -271,6 +271,12 @@ typedef char ovrBool; ///< Boolean type |
|
|
|
//----------------------------------------------------------------------------------- |
|
|
|
// ***** Simple Math Structures |
|
|
|
|
|
|
|
/// A RGBA color with normalized float components. |
|
|
|
typedef struct OVR_ALIGNAS(4) ovrColorf_ |
|
|
|
{ |
|
|
|
float r, g, b, a; |
|
|
|
} ovrColorf; |
|
|
|
|
|
|
|
/// A 2D vector with integer components. |
|
|
|
typedef struct OVR_ALIGNAS(4) ovrVector2i_ |
|
|
|
{ |
|
|
@ -326,7 +332,7 @@ typedef struct OVR_ALIGNAS(4) ovrPosef_ |
|
|
|
/// A full pose (rigid body) configuration with first and second derivatives. |
|
|
|
/// |
|
|
|
/// Body refers to any object for which ovrPoseStatef is providing data. |
|
|
|
/// It can be the HMD, Touch controller, sensor or something else. The context |
|
|
|
/// It can be the HMD, Touch controller, sensor or something else. The context |
|
|
|
/// depends on the usage of the struct. |
|
|
|
typedef struct OVR_ALIGNAS(8) ovrPoseStatef_ |
|
|
|
{ |
|
|
@ -687,7 +693,7 @@ typedef enum ovrTextureFormat_ |
|
|
|
/// |
|
|
|
typedef enum ovrTextureMiscFlags_ |
|
|
|
{ |
|
|
|
ovrTextureMisc_None, |
|
|
|
ovrTextureMisc_None, |
|
|
|
|
|
|
|
/// DX only: The underlying texture is created with a TYPELESS equivalent of the |
|
|
|
/// format specified in the texture desc. The SDK will still access the |
|
|
@ -745,12 +751,12 @@ typedef struct ovrMirrorTextureData* ovrMirrorTexture; |
|
|
|
//----------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
/// Describes button input types. |
|
|
|
/// Button inputs are combined; that is they will be reported as pressed if they are |
|
|
|
/// Button inputs are combined; that is they will be reported as pressed if they are |
|
|
|
/// pressed on either one of the two devices. |
|
|
|
/// The ovrButton_Up/Down/Left/Right map to both XBox D-Pad and directional buttons. |
|
|
|
/// The ovrButton_Enter and ovrButton_Return map to Start and Back controller buttons, respectively. |
|
|
|
typedef enum ovrButton_ |
|
|
|
{ |
|
|
|
{ |
|
|
|
ovrButton_A = 0x00000001, |
|
|
|
ovrButton_B = 0x00000002, |
|
|
|
ovrButton_RThumb = 0x00000004, |
|
|
@ -758,7 +764,7 @@ typedef enum ovrButton_ |
|
|
|
|
|
|
|
ovrButton_X = 0x00000100, |
|
|
|
ovrButton_Y = 0x00000200, |
|
|
|
ovrButton_LThumb = 0x00000400, |
|
|
|
ovrButton_LThumb = 0x00000400, |
|
|
|
ovrButton_LShoulder = 0x00000800, |
|
|
|
|
|
|
|
// Navigation through DPad. |
|
|
@ -770,7 +776,7 @@ typedef enum ovrButton_ |
|
|
|
ovrButton_Back = 0x00200000, // Back on Xbox controller. |
|
|
|
ovrButton_VolUp = 0x00400000, // only supported by Remote. |
|
|
|
ovrButton_VolDown = 0x00800000, // only supported by Remote. |
|
|
|
ovrButton_Home = 0x01000000, |
|
|
|
ovrButton_Home = 0x01000000, |
|
|
|
ovrButton_Private = ovrButton_VolUp | ovrButton_VolDown | ovrButton_Home, |
|
|
|
|
|
|
|
// Bit mask of all buttons on the right Touch controller |
|
|
@ -807,7 +813,7 @@ typedef enum ovrTouch_ |
|
|
|
// Bit mask of all the button touches on the left controller |
|
|
|
ovrTouch_LButtonMask = ovrTouch_X | ovrTouch_Y | ovrTouch_LThumb | ovrTouch_LThumbRest | ovrTouch_LIndexTrigger, |
|
|
|
|
|
|
|
// Finger pose state |
|
|
|
// Finger pose state |
|
|
|
// Derived internally based on distance, proximity to sensors and filtering. |
|
|
|
ovrTouch_RIndexPointing = 0x00000020, |
|
|
|
ovrTouch_RThumbUp = 0x00000040, |
|
|
@ -883,11 +889,20 @@ typedef struct ovrHapticsPlaybackState_ |
|
|
|
int SamplesQueued; |
|
|
|
} ovrHapticsPlaybackState; |
|
|
|
|
|
|
|
/// Position tracked devices |
|
|
|
typedef enum ovrTrackedDeviceType_ |
|
|
|
{ |
|
|
|
ovrTrackedDevice_HMD = 0x0001, |
|
|
|
ovrTrackedDevice_LTouch = 0x0002, |
|
|
|
ovrTrackedDevice_RTouch = 0x0004, |
|
|
|
ovrTrackedDevice_Touch = 0x0006, |
|
|
|
ovrTrackedDevice_All = 0xFFFF, |
|
|
|
} ovrTrackedDeviceType; |
|
|
|
|
|
|
|
/// Provides names for the left and right hand array indexes. |
|
|
|
/// |
|
|
|
/// \see ovrInputState, ovrTrackingState |
|
|
|
/// |
|
|
|
/// |
|
|
|
typedef enum ovrHandType_ |
|
|
|
{ |
|
|
|
ovrHand_Left = 0, |
|
|
@ -903,27 +918,43 @@ typedef enum ovrHandType_ |
|
|
|
/// their inputs are combined. |
|
|
|
typedef struct ovrInputState_ |
|
|
|
{ |
|
|
|
// System type when the controller state was last updated. |
|
|
|
/// System type when the controller state was last updated. |
|
|
|
double TimeInSeconds; |
|
|
|
|
|
|
|
// Values for buttons described by ovrButton. |
|
|
|
/// Values for buttons described by ovrButton. |
|
|
|
unsigned int Buttons; |
|
|
|
|
|
|
|
// Touch values for buttons and sensors as described by ovrTouch. |
|
|
|
/// Touch values for buttons and sensors as described by ovrTouch. |
|
|
|
unsigned int Touches; |
|
|
|
|
|
|
|
// Left and right finger trigger values (ovrHand_Left and ovrHand_Right), in the range 0.0 to 1.0f. |
|
|
|
|
|
|
|
/// Left and right finger trigger values (ovrHand_Left and ovrHand_Right), in the range 0.0 to 1.0f. |
|
|
|
/// Returns 0 if the value would otherwise be less than 0.1176, for ovrControllerType_XBox |
|
|
|
float IndexTrigger[ovrHand_Count]; |
|
|
|
|
|
|
|
// Left and right hand trigger values (ovrHand_Left and ovrHand_Right), in the range 0.0 to 1.0f. |
|
|
|
|
|
|
|
/// Left and right hand trigger values (ovrHand_Left and ovrHand_Right), in the range 0.0 to 1.0f. |
|
|
|
float HandTrigger[ovrHand_Count]; |
|
|
|
|
|
|
|
// Horizontal and vertical thumbstick axis values (ovrHand_Left and ovrHand_Right), in the range -1.0f to 1.0f. |
|
|
|
/// Horizontal and vertical thumbstick axis values (ovrHand_Left and ovrHand_Right), in the range -1.0f to 1.0f. |
|
|
|
/// Returns a deadzone (value 0) per each axis if the value on that axis would otherwise have been between -.2746 to +.2746, for ovrControllerType_XBox |
|
|
|
ovrVector2f Thumbstick[ovrHand_Count]; |
|
|
|
|
|
|
|
// The type of the controller this state is for. |
|
|
|
/// The type of the controller this state is for. |
|
|
|
ovrControllerType ControllerType; |
|
|
|
|
|
|
|
|
|
|
|
/// Left and right finger trigger values (ovrHand_Left and ovrHand_Right), in the range 0.0 to 1.0f. |
|
|
|
/// Does not apply a deadzone |
|
|
|
/// Added in 1.7 |
|
|
|
float IndexTriggerNoDeadzone[ovrHand_Count]; |
|
|
|
|
|
|
|
/// Left and right hand trigger values (ovrHand_Left and ovrHand_Right), in the range 0.0 to 1.0f. |
|
|
|
/// Does not apply a deadzone |
|
|
|
/// Added in 1.7 |
|
|
|
float HandTriggerNoDeadzone[ovrHand_Count]; |
|
|
|
|
|
|
|
/// Horizontal and vertical thumbstick axis values (ovrHand_Left and ovrHand_Right), in the range -1.0f to 1.0f |
|
|
|
/// Does not apply a deadzone |
|
|
|
/// Added in 1.7 |
|
|
|
ovrVector2f ThumbstickNoDeadzone[ovrHand_Count]; |
|
|
|
} ovrInputState; |
|
|
|
|
|
|
|
|
|
|
@ -996,8 +1027,8 @@ typedef struct OVR_ALIGNAS(8) ovrInitParams_ |
|
|
|
/// Use NULL to specify no log callback. |
|
|
|
ovrLogCallback LogCallback; |
|
|
|
|
|
|
|
/// User-supplied data which is passed as-is to LogCallback. Typically this |
|
|
|
/// is used to store an application-specific pointer which is read in the |
|
|
|
/// User-supplied data which is passed as-is to LogCallback. Typically this |
|
|
|
/// is used to store an application-specific pointer which is read in the |
|
|
|
/// callback function. |
|
|
|
uintptr_t UserData; |
|
|
|
|
|
|
@ -1014,6 +1045,7 @@ typedef struct OVR_ALIGNAS(8) ovrInitParams_ |
|
|
|
extern "C" { |
|
|
|
#endif |
|
|
|
|
|
|
|
#if !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------------- |
|
|
|
// ***** API Interfaces |
|
|
@ -1026,7 +1058,7 @@ extern "C" { |
|
|
|
/// followed by a call to ovr_Shutdown. ovr_Initialize calls are idempotent. |
|
|
|
/// Calling ovr_Initialize twice does not require two matching calls to ovr_Shutdown. |
|
|
|
/// If already initialized, the return value is ovr_Success. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// LibOVRRT shared library search order: |
|
|
|
/// -# Current working directory (often the same as the application directory). |
|
|
|
/// -# Module directory (usually the same as the application directory, |
|
|
@ -1166,21 +1198,21 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_IdentifyClient(const char* identity); |
|
|
|
/// |
|
|
|
/// ovr_Initialize must have first been called in order for this to succeed, otherwise ovrHmdDesc::Type |
|
|
|
/// will be reported as ovrHmd_None. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create, else NULL in which |
|
|
|
/// case this function detects whether an HMD is present and returns its info if so. |
|
|
|
/// |
|
|
|
/// \return Returns an ovrHmdDesc. If the hmd is NULL and ovrHmdDesc::Type is ovrHmd_None then |
|
|
|
/// \return Returns an ovrHmdDesc. If the hmd is NULL and ovrHmdDesc::Type is ovrHmd_None then |
|
|
|
/// no HMD is present. |
|
|
|
/// |
|
|
|
OVR_PUBLIC_FUNCTION(ovrHmdDesc) ovr_GetHmdDesc(ovrSession session); |
|
|
|
|
|
|
|
|
|
|
|
/// Returns the number of sensors. |
|
|
|
/// Returns the number of sensors. |
|
|
|
/// |
|
|
|
/// The number of sensors may change at any time, so this function should be called before use |
|
|
|
/// The number of sensors may change at any time, so this function should be called before use |
|
|
|
/// as opposed to once on startup. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create. |
|
|
|
/// |
|
|
|
/// \return Returns unsigned int count. |
|
|
@ -1190,15 +1222,15 @@ OVR_PUBLIC_FUNCTION(unsigned int) ovr_GetTrackerCount(ovrSession session); |
|
|
|
|
|
|
|
/// Returns a given sensor description. |
|
|
|
/// |
|
|
|
/// It's possible that sensor desc [0] may indicate a unconnnected or non-pose tracked sensor, but |
|
|
|
/// It's possible that sensor desc [0] may indicate a unconnnected or non-pose tracked sensor, but |
|
|
|
/// sensor desc [1] may be connected. |
|
|
|
/// |
|
|
|
/// ovr_Initialize must have first been called in order for this to succeed, otherwise the returned |
|
|
|
/// trackerDescArray will be zero-initialized. The data returned by this function can change at runtime. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create. |
|
|
|
/// |
|
|
|
/// \param[in] trackerDescIndex Specifies a sensor index. The valid indexes are in the range of 0 to |
|
|
|
/// |
|
|
|
/// \param[in] trackerDescIndex Specifies a sensor index. The valid indexes are in the range of 0 to |
|
|
|
/// the sensor count returned by ovr_GetTrackerCount. |
|
|
|
/// |
|
|
|
/// \return Returns ovrTrackerDesc. An empty ovrTrackerDesc will be returned if trackerDescIndex is out of range. |
|
|
@ -1242,6 +1274,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_Create(ovrSession* pSession, ovrGraphicsLuid* |
|
|
|
/// |
|
|
|
OVR_PUBLIC_FUNCTION(void) ovr_Destroy(ovrSession session); |
|
|
|
|
|
|
|
#endif // !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
/// Specifies status information for the current session. |
|
|
|
/// |
|
|
@ -1253,10 +1286,11 @@ typedef struct ovrSessionStatus_ |
|
|
|
ovrBool HmdPresent; ///< True if an HMD is present. |
|
|
|
ovrBool HmdMounted; ///< True if the HMD is on the user's head. |
|
|
|
ovrBool DisplayLost; ///< True if the session is in a display-lost state. See ovr_SubmitFrame. |
|
|
|
ovrBool ShouldQuit; ///< True if the application should initiate shutdown. |
|
|
|
ovrBool ShouldQuit; ///< True if the application should initiate shutdown. |
|
|
|
ovrBool ShouldRecenter; ///< True if UX has requested re-centering. Must call ovr_ClearShouldRecenterFlag or ovr_RecenterTrackingOrigin. |
|
|
|
}ovrSessionStatus; |
|
|
|
|
|
|
|
#if !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
/// Returns status information for the application. |
|
|
|
/// |
|
|
@ -1293,7 +1327,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetSessionStatus(ovrSession session, ovrSessi |
|
|
|
/// |
|
|
|
/// When the tracking origin is changed, all of the calls that either provide |
|
|
|
/// or accept ovrPosef will use the new tracking origin provided. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create. |
|
|
|
/// \param[in] origin Specifies an ovrTrackingOrigin to be used for all ovrPosef |
|
|
|
/// |
|
|
@ -1305,7 +1339,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_SetTrackingOriginType(ovrSession session, ovr |
|
|
|
|
|
|
|
|
|
|
|
/// Gets the tracking origin state |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create. |
|
|
|
/// |
|
|
|
/// \return Returns the ovrTrackingOrigin that was either set by default, or previous set by the application. |
|
|
@ -1319,9 +1353,9 @@ OVR_PUBLIC_FUNCTION(ovrTrackingOrigin) ovr_GetTrackingOriginType(ovrSession sess |
|
|
|
/// This resets the (x,y,z) positional components and the yaw orientation component. |
|
|
|
/// The Roll and pitch orientation components are always determined by gravity and cannot |
|
|
|
/// be redefined. All future tracking will report values relative to this new reference position. |
|
|
|
/// If you are using ovrTrackerPoses then you will need to call ovr_GetTrackerPose after |
|
|
|
/// If you are using ovrTrackerPoses then you will need to call ovr_GetTrackerPose after |
|
|
|
/// this, because the sensor position(s) will change as a result of this. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// The headset cannot be facing vertically upward or downward but rather must be roughly |
|
|
|
/// level otherwise this function will fail with ovrError_InvalidHeadsetOrientation. |
|
|
|
/// |
|
|
@ -1343,7 +1377,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_RecenterTrackingOrigin(ovrSession session); |
|
|
|
|
|
|
|
/// Clears the ShouldRecenter status bit in ovrSessionStatus. |
|
|
|
/// |
|
|
|
/// Clears the ShouldRecenter status bit in ovrSessionStatus, allowing further recenter |
|
|
|
/// Clears the ShouldRecenter status bit in ovrSessionStatus, allowing further recenter |
|
|
|
/// requests to be detected. Since this is automatically done by ovr_RecenterTrackingOrigin, |
|
|
|
/// this is only needs to be called when application is doing its own re-centering. |
|
|
|
OVR_PUBLIC_FUNCTION(void) ovr_ClearShouldRecenterFlag(ovrSession session); |
|
|
@ -1444,11 +1478,11 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_SubmitControllerVibration(ovrSession session, |
|
|
|
/// \param[in] outState State of the haptics engine. |
|
|
|
/// \return Returns ovrSuccess upon success. |
|
|
|
/// \see ovrHapticsPlaybackState |
|
|
|
/// |
|
|
|
/// |
|
|
|
OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetControllerVibrationState(ovrSession session, ovrControllerType controllerType, ovrHapticsPlaybackState* outState); |
|
|
|
|
|
|
|
|
|
|
|
o">///@} |
|
|
|
cp">#endif // !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------- |
|
|
|
// @name Layers |
|
|
@ -1672,7 +1706,7 @@ typedef union ovrLayer_Union_ |
|
|
|
|
|
|
|
//@} |
|
|
|
|
|
|
|
|
|
|
|
#if !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
/// @name SDK Distortion Rendering |
|
|
|
/// |
|
|
@ -1695,7 +1729,7 @@ typedef union ovrLayer_Union_ |
|
|
|
/// \param[in] chain Specifies the ovrTextureSwapChain for which the length should be retrieved. |
|
|
|
/// \param[out] out_Length Returns the number of buffers in the specified chain. |
|
|
|
/// |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// |
|
|
|
/// \see ovr_CreateTextureSwapChainDX, ovr_CreateTextureSwapChainGL |
|
|
|
/// |
|
|
@ -1707,7 +1741,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetTextureSwapChainLength(ovrSession session, |
|
|
|
/// \param[in] chain Specifies the ovrTextureSwapChain for which the index should be retrieved. |
|
|
|
/// \param[out] out_Index Returns the current (free) index in specified chain. |
|
|
|
/// |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// |
|
|
|
/// \see ovr_CreateTextureSwapChainDX, ovr_CreateTextureSwapChainGL |
|
|
|
/// |
|
|
@ -1719,7 +1753,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetTextureSwapChainCurrentIndex(ovrSession se |
|
|
|
/// \param[in] chain Specifies the ovrTextureSwapChain for which the description should be retrieved. |
|
|
|
/// \param[out] out_Desc Returns the description of the specified chain. |
|
|
|
/// |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// |
|
|
|
/// \see ovr_CreateTextureSwapChainDX, ovr_CreateTextureSwapChainGL |
|
|
|
/// |
|
|
@ -1736,7 +1770,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetTextureSwapChainDesc(ovrSession session, o |
|
|
|
/// it will synchronize with the app's graphics context and pick up the submitted index, opening up |
|
|
|
/// room in the swap chain for further commits. |
|
|
|
/// |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// \return Returns an ovrResult for which OVR_SUCCESS(result) is false upon error. |
|
|
|
/// Failures include but aren't limited to: |
|
|
|
/// - ovrError_TextureSwapChainFull: ovr_CommitTextureSwapChain was called too many times on a texture swapchain without calling submit to use the chain. |
|
|
|
/// |
|
|
@ -1864,7 +1898,7 @@ OVR_PUBLIC_FUNCTION(ovrEyeRenderDesc) ovr_GetRenderDesc(ovrSession session, |
|
|
|
/// destroyed (ovr_Destroy) and recreated (ovr_Create), and new resources need to be created |
|
|
|
/// (ovr_CreateTextureSwapChainXXX). The application's existing private graphics resources do not |
|
|
|
/// need to be recreated unless the new ovr_Create call returns a different GraphicsLuid. |
|
|
|
/// - ovrError_TextureSwapChainInvalid: The ovrTextureSwapChain is in an incomplete or inconsistent state. |
|
|
|
/// - ovrError_TextureSwapChainInvalid: The ovrTextureSwapChain is in an incomplete or inconsistent state. |
|
|
|
/// Ensure ovr_CommitTextureSwapChain was called at least once first. |
|
|
|
/// |
|
|
|
/// \see ovr_GetPredictedDisplayTime, ovrViewScaleDesc, ovrLayerHeader |
|
|
@ -1874,7 +1908,7 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_SubmitFrame(ovrSession session, long long fra |
|
|
|
ovrLayerHeader const * const * layerPtrList, unsigned int layerCount); |
|
|
|
///@} |
|
|
|
|
|
|
|
|
|
|
|
#endif // !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
//------------------------------------------------------------------------------------- |
|
|
|
/// @name Frame Timing |
|
|
@ -1882,26 +1916,28 @@ OVR_PUBLIC_FUNCTION(ovrResult) ovr_SubmitFrame(ovrSession session, long long fra |
|
|
|
//@{ |
|
|
|
|
|
|
|
|
|
|
|
#if !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
/// Gets the time of the specified frame midpoint. |
|
|
|
/// |
|
|
|
/// Predicts the time at which the given frame will be displayed. The predicted time |
|
|
|
/// is the middle of the time period during which the corresponding eye images will |
|
|
|
/// be displayed. |
|
|
|
/// Predicts the time at which the given frame will be displayed. The predicted time |
|
|
|
/// is the middle of the time period during which the corresponding eye images will |
|
|
|
/// be displayed. |
|
|
|
/// |
|
|
|
/// The application should increment frameIndex for each successively targeted frame, |
|
|
|
/// and pass that index to any relevent OVR functions that need to apply to the frame |
|
|
|
/// and pass that index to any relevant OVR functions that need to apply to the frame |
|
|
|
/// identified by that index. |
|
|
|
/// |
|
|
|
/// This function is thread-safe and allows for multiple application threads to target |
|
|
|
/// their processing to the same displayed frame. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// In the even that prediction fails due to various reasons (e.g. the display being off |
|
|
|
/// or app has yet to present any frames), the return value will be current CPU time. |
|
|
|
/// |
|
|
|
/// |
|
|
|
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create. |
|
|
|
/// \param[in] frameIndex Identifies the frame the caller wishes to target. |
|
|
|
/// A value of zero returns the next frame index. |
|
|
|
/// \return Returns the absolute frame midpoint time for the given frameIndex. |
|
|
|
/// \return Returns the absolute frame midpoint time for the given frameIndex. |
|
|
|
/// \see ovr_GetTimeInSeconds |
|
|
|
/// |
|
|
|
OVR_PUBLIC_FUNCTION(double) ovr_GetPredictedDisplayTime(ovrSession session, long long frameIndex); |
|
|
@ -1917,6 +1953,7 @@ OVR_PUBLIC_FUNCTION(double) ovr_GetPredictedDisplayTime(ovrSession session, long |
|
|
|
/// |
|
|
|
OVR_PUBLIC_FUNCTION(double) ovr_GetTimeInSeconds(); |
|
|
|
|
|
|
|
#endif // !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
/// Performance HUD enables the HMD user to see information critical to |
|
|
|
/// the real-time operation of the VR application such as latency timing, |
|
|
@ -1958,7 +1995,7 @@ typedef enum ovrLayerHudMode_ |
|
|
|
///@} |
|
|
|
|
|
|
|
/// Debug HUD is provided to help developers gauge and debug the fidelity of their app's |
|
|
|
/// stereo rendering characteristics. Using the provided quad and crosshair guides, |
|
|
|
/// stereo rendering characteristics. Using the provided quad and crosshair guides, |
|
|
|
/// the developer can verify various aspects such as VR tracking units (e.g. meters), |
|
|
|
/// stereo camera-parallax properties (e.g. making sure objects at infinity are rendered |
|
|
|
/// with the proper separation), measuring VR geometry sizes and distances and more. |
|
|
@ -1984,7 +2021,7 @@ typedef enum ovrDebugHudStereoMode_ |
|
|
|
} ovrDebugHudStereoMode; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------------- |
|
|
|
/// @name Property Access |
|
|
@ -2102,7 +2139,7 @@ OVR_PUBLIC_FUNCTION(ovrBool) ovr_SetString(ovrSession session, const char* prope |
|
|
|
|
|
|
|
///@} |
|
|
|
|
|
|
|
|
|
|
|
#endif // !defined(OVR_EXPORTING_CAPI) |
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
} // extern "C" |
|
|
@ -2163,10 +2200,10 @@ OVR_STATIC_ASSERT(sizeof(ovrLogLevel) == 4, "ovrLogLevel size mismatch"); |
|
|
|
OVR_STATIC_ASSERT(sizeof(ovrInitParams) == 4 + 4 + sizeof(ovrLogCallback) + sizeof(uintptr_t) + 4 + 4, |
|
|
|
"ovrInitParams size mismatch"); |
|
|
|
|
|
|
|
OVR_STATIC_ASSERT(sizeof(ovrHmdDesc) == |
|
|
|
OVR_STATIC_ASSERT(sizeof(ovrHmdDesc) == |
|
|
|
+ sizeof(ovrHmdType) // Type |
|
|
|
OVR_ON64(+ 4) // pad0 |
|
|
|
+ 64 // ProductName |
|
|
|
+ 64 // ProductName |
|
|
|
+ 64 // Manufacturer |
|
|
|
+ 2 // VendorId |
|
|
|
+ 2 // ProductId |
|
|
|