update to latest OpenVR 1.04 (and make minor API changes)
add premake5.exe (will remove premake4.exe soon)
This commit is contained in:
@@ -146,7 +146,6 @@ enum ETrackingResult
|
||||
TrackingResult_Running_OutOfRange = 201,
|
||||
};
|
||||
|
||||
static const uint32_t k_unTrackingStringSize = 32;
|
||||
static const uint32_t k_unMaxDriverDebugResponseSize = 32768;
|
||||
|
||||
/** Used to pass device IDs to API calls */
|
||||
@@ -241,6 +240,7 @@ enum ETrackedDeviceProperty
|
||||
Prop_HasCamera_Bool = 1030,
|
||||
Prop_DriverVersion_String = 1031,
|
||||
Prop_Firmware_ForceUpdateRequired_Bool = 1032,
|
||||
Prop_ViveSystemButtonFixRequired_Bool = 1033,
|
||||
|
||||
// Properties that are unique to TrackedDeviceClass_HMD
|
||||
Prop_ReportsTimeSinceVSync_Bool = 2000,
|
||||
@@ -280,6 +280,7 @@ enum ETrackedDeviceProperty
|
||||
Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034,
|
||||
Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035,
|
||||
Prop_DisplaySuppressed_Bool = 2036,
|
||||
Prop_DisplayAllowNightMode_Bool = 2037,
|
||||
|
||||
// Properties that are unique to TrackedDeviceClass_Controller
|
||||
Prop_AttachedDeviceId_String = 3000,
|
||||
@@ -702,7 +703,7 @@ struct VREvent_EditingCameraSurface_t
|
||||
uint32_t nVisualMode;
|
||||
};
|
||||
|
||||
/** If you change this you must manually update openvr_interop.cs.py */
|
||||
/** NOTE!!! If you change this you MUST manually update openvr_interop.cs.py */
|
||||
typedef union
|
||||
{
|
||||
VREvent_Reserved_t reserved;
|
||||
@@ -749,6 +750,14 @@ struct HiddenAreaMesh_t
|
||||
};
|
||||
|
||||
|
||||
enum EHiddenAreaMeshType
|
||||
{
|
||||
k_eHiddenAreaMesh_Standard = 0,
|
||||
k_eHiddenAreaMesh_Inverse = 1,
|
||||
k_eHiddenAreaMesh_LineLoop = 2,
|
||||
};
|
||||
|
||||
|
||||
/** Identifies what kind of axis is on the controller at index n. Read this type
|
||||
* with pVRSystem->Get( nControllerDeviceIndex, Prop_Axis0Type_Int32 + n );
|
||||
*/
|
||||
@@ -832,26 +841,28 @@ static const VROverlayHandle_t k_ulOverlayHandleInvalid = 0;
|
||||
/** Errors that can occur around VR overlays */
|
||||
enum EVROverlayError
|
||||
{
|
||||
VROverlayError_None = 0,
|
||||
VROverlayError_None = 0,
|
||||
|
||||
VROverlayError_UnknownOverlay = 10,
|
||||
VROverlayError_InvalidHandle = 11,
|
||||
VROverlayError_PermissionDenied = 12,
|
||||
VROverlayError_OverlayLimitExceeded = 13, // No more overlays could be created because the maximum number already exist
|
||||
VROverlayError_WrongVisibilityType = 14,
|
||||
VROverlayError_KeyTooLong = 15,
|
||||
VROverlayError_NameTooLong = 16,
|
||||
VROverlayError_KeyInUse = 17,
|
||||
VROverlayError_WrongTransformType = 18,
|
||||
VROverlayError_InvalidTrackedDevice = 19,
|
||||
VROverlayError_InvalidParameter = 20,
|
||||
VROverlayError_ThumbnailCantBeDestroyed = 21,
|
||||
VROverlayError_ArrayTooSmall = 22,
|
||||
VROverlayError_RequestFailed = 23,
|
||||
VROverlayError_InvalidTexture = 24,
|
||||
VROverlayError_UnableToLoadFile = 25,
|
||||
VROverlayError_KeyboardAlreadyInUse = 26,
|
||||
VROverlayError_NoNeighbor = 27,
|
||||
VROverlayError_UnknownOverlay = 10,
|
||||
VROverlayError_InvalidHandle = 11,
|
||||
VROverlayError_PermissionDenied = 12,
|
||||
VROverlayError_OverlayLimitExceeded = 13, // No more overlays could be created because the maximum number already exist
|
||||
VROverlayError_WrongVisibilityType = 14,
|
||||
VROverlayError_KeyTooLong = 15,
|
||||
VROverlayError_NameTooLong = 16,
|
||||
VROverlayError_KeyInUse = 17,
|
||||
VROverlayError_WrongTransformType = 18,
|
||||
VROverlayError_InvalidTrackedDevice = 19,
|
||||
VROverlayError_InvalidParameter = 20,
|
||||
VROverlayError_ThumbnailCantBeDestroyed = 21,
|
||||
VROverlayError_ArrayTooSmall = 22,
|
||||
VROverlayError_RequestFailed = 23,
|
||||
VROverlayError_InvalidTexture = 24,
|
||||
VROverlayError_UnableToLoadFile = 25,
|
||||
VROverlayError_KeyboardAlreadyInUse = 26,
|
||||
VROverlayError_NoNeighbor = 27,
|
||||
VROverlayError_TooManyMaskPrimitives = 29,
|
||||
VROverlayError_BadMaskPrimitive = 30,
|
||||
};
|
||||
|
||||
/** enum values to pass in to VR_Init to identify whether the application will
|
||||
@@ -1126,10 +1137,10 @@ public:
|
||||
* application is doing something fancy like infinite Z */
|
||||
virtual void GetProjectionRaw( EVREye eEye, float *pfLeft, float *pfRight, float *pfTop, float *pfBottom ) = 0;
|
||||
|
||||
/** Returns the result of the distortion function for the specified eye and input UVs. UVs go from 0,0 in
|
||||
/** Gets the result of the distortion function for the specified eye and input UVs. UVs go from 0,0 in
|
||||
* the upper left of that eye's viewport and 1,1 in the lower right of that eye's viewport.
|
||||
* Values may be NAN to indicate an error has occurred. */
|
||||
virtual DistortionCoordinates_t ComputeDistortion( EVREye eEye, float fU, float fV ) = 0;
|
||||
* Returns true for success. Otherwise, returns false, and distortion coordinates are not suitable. */
|
||||
virtual bool ComputeDistortion( EVREye eEye, float fU, float fV, DistortionCoordinates_t *pDistortionCoordinates ) = 0;
|
||||
|
||||
/** Returns the transform from eye space to the head space. Eye space is the per-eye flavor of head
|
||||
* space that provides stereo disparity. Instead of Model * View * Projection the sequence is Model * View * Eye^-1 * Projection.
|
||||
@@ -1265,7 +1276,7 @@ public:
|
||||
|
||||
/** Returns a string property. If the device index is not valid or the property is not a string type this function will
|
||||
* return 0. Otherwise it returns the length of the number of bytes necessary to hold this string including the trailing
|
||||
* null. Strings will generally fit in buffers of k_unTrackingStringSize characters. */
|
||||
* null. Strings will always fit in buffers of k_unMaxPropertyStringSize characters. */
|
||||
virtual uint32_t GetStringTrackedDeviceProperty( vr::TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, VR_OUT_STRING() char *pchValue, uint32_t unBufferSize, ETrackedPropertyError *pError = 0L ) = 0;
|
||||
|
||||
/** returns a string that corresponds with the specified property error. The string will be the name
|
||||
@@ -1293,14 +1304,15 @@ public:
|
||||
// Rendering helper methods
|
||||
// ------------------------------------
|
||||
|
||||
/** Returns the stencil mesh information for the current HMD. If this HMD does not have a stencil mesh the vertex data and count will be
|
||||
* NULL and 0 respectively. This mesh is meant to be rendered into the stencil buffer (or into the depth buffer setting nearz) before rendering
|
||||
* each eye's view. The pixels covered by this mesh will never be seen by the user after the lens distortion is applied and based on visibility to the panels.
|
||||
* This will improve perf by letting the GPU early-reject pixels the user will never see before running the pixel shader.
|
||||
/** Returns the hidden area mesh for the current HMD. The pixels covered by this mesh will never be seen by the user after the lens distortion is
|
||||
* applied based on visibility to the panels. If this HMD does not have a hidden area mesh, the vertex data and count will be NULL and 0 respectively.
|
||||
* This mesh is meant to be rendered into the stencil buffer (or into the depth buffer setting nearz) before rendering each eye's view.
|
||||
* This will improve performance by letting the GPU early-reject pixels the user will never see before running the pixel shader.
|
||||
* NOTE: Render this mesh with backface culling disabled since the winding order of the vertices can be different per-HMD or per-eye.
|
||||
* Setting the bInverse argument to true will produce the visible area mesh that is commonly used in place of full-screen quads. The visible area mesh covers all of the pixels the hidden area mesh does not cover.
|
||||
* Setting the bLineLoop argument will return a line loop of vertices in HiddenAreaMesh_t->pVertexData with HiddenAreaMesh_t->unTriangleCount set to the number of vertices.
|
||||
*/
|
||||
virtual HiddenAreaMesh_t GetHiddenAreaMesh( EVREye eEye ) = 0;
|
||||
|
||||
virtual HiddenAreaMesh_t GetHiddenAreaMesh( EVREye eEye, EHiddenAreaMeshType type = k_eHiddenAreaMesh_Standard ) = 0;
|
||||
|
||||
// ------------------------------------
|
||||
// Controller methods
|
||||
@@ -1308,12 +1320,12 @@ public:
|
||||
|
||||
/** Fills the supplied struct with the current state of the controller. Returns false if the controller index
|
||||
* is invalid. */
|
||||
virtual bool GetControllerState( vr::TrackedDeviceIndex_t unControllerDeviceIndex, vr::VRControllerState_t *pControllerState ) = 0;
|
||||
virtual bool GetControllerState( vr::TrackedDeviceIndex_t unControllerDeviceIndex, vr::VRControllerState_t *pControllerState, uint32_t unControllerStateSize ) = 0;
|
||||
|
||||
/** fills the supplied struct with the current state of the controller and the provided pose with the pose of
|
||||
* the controller when the controller state was updated most recently. Use this form if you need a precise controller
|
||||
* pose as input to your application when the user presses or releases a button. */
|
||||
virtual bool GetControllerStateWithPose( ETrackingUniverseOrigin eOrigin, vr::TrackedDeviceIndex_t unControllerDeviceIndex, vr::VRControllerState_t *pControllerState, TrackedDevicePose_t *pTrackedDevicePose ) = 0;
|
||||
virtual bool GetControllerStateWithPose( ETrackingUniverseOrigin eOrigin, vr::TrackedDeviceIndex_t unControllerDeviceIndex, vr::VRControllerState_t *pControllerState, uint32_t unControllerStateSize, TrackedDevicePose_t *pTrackedDevicePose ) = 0;
|
||||
|
||||
/** Trigger a single haptic pulse on a controller. After this call the application may not trigger another haptic pulse on this controller
|
||||
* and axis combination for 5ms. */
|
||||
@@ -1346,7 +1358,6 @@ public:
|
||||
* The size of the response including its terminating null is returned. */
|
||||
virtual uint32_t DriverDebugRequest( vr::TrackedDeviceIndex_t unDeviceIndex, const char *pchRequest, char *pchResponseBuffer, uint32_t unResponseBufferSize ) = 0;
|
||||
|
||||
|
||||
// ------------------------------------
|
||||
// Firmware methods
|
||||
// ------------------------------------
|
||||
@@ -1358,7 +1369,6 @@ public:
|
||||
* Prop_Firmware_ManualUpdateURL_String should point to an URL describing the manual update process */
|
||||
virtual vr::EVRFirmwareError PerformFirmwareUpdate( vr::TrackedDeviceIndex_t unDeviceIndex ) = 0;
|
||||
|
||||
|
||||
// ------------------------------------
|
||||
// Application life cycle methods
|
||||
// ------------------------------------
|
||||
@@ -1374,7 +1384,7 @@ public:
|
||||
|
||||
};
|
||||
|
||||
static const char * const IVRSystem_Version = "IVRSystem_012";
|
||||
static const char * const IVRSystem_Version = "IVRSystem_014";
|
||||
|
||||
}
|
||||
|
||||
@@ -1644,9 +1654,9 @@ namespace vr
|
||||
static const char * const k_pch_SteamVR_LogLevel_Int32 = "loglevel";
|
||||
static const char * const k_pch_SteamVR_IPD_Float = "ipd";
|
||||
static const char * const k_pch_SteamVR_Background_String = "background";
|
||||
static const char * const k_pch_SteamVR_BackgroundUseDomeProjection_Bool = "backgroundUseDomeProjection";
|
||||
static const char * const k_pch_SteamVR_BackgroundCameraHeight_Float = "backgroundCameraHeight";
|
||||
static const char * const k_pch_SteamVR_BackgroundDomeRadius_Float = "backgroundDomeRadius";
|
||||
static const char * const k_pch_SteamVR_Environment_String = "environment";
|
||||
static const char * const k_pch_SteamVR_GridColor_String = "gridColor";
|
||||
static const char * const k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
|
||||
static const char * const k_pch_SteamVR_ShowStage_Bool = "showStage";
|
||||
@@ -1659,7 +1669,8 @@ namespace vr
|
||||
static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
|
||||
static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
|
||||
static const char * const k_pch_SteamVR_RenderTargetMultiplier_Float = "renderTargetMultiplier";
|
||||
static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowReprojection";
|
||||
static const char * const k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection";
|
||||
static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection";
|
||||
static const char * const k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
|
||||
static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
|
||||
static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView";
|
||||
@@ -1670,6 +1681,7 @@ namespace vr
|
||||
static const char * const k_pch_SteamVR_SetInitialDefaultHomeApp = "setInitialDefaultHomeApp";
|
||||
static const char * const k_pch_SteamVR_CycleBackgroundImageTimeSec_Int32 = "CycleBackgroundImageTimeSec";
|
||||
static const char * const k_pch_SteamVR_RetailDemo_Bool = "retailDemo";
|
||||
static const char * const k_pch_SteamVR_IpdOffset_Float = "ipdOffset";
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -1703,6 +1715,7 @@ namespace vr
|
||||
// user interface keys
|
||||
static const char * const k_pch_UserInterface_Section = "userinterface";
|
||||
static const char * const k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop";
|
||||
static const char * const k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray";
|
||||
static const char * const k_pch_UserInterface_Screenshots_Bool = "screenshots";
|
||||
static const char * const k_pch_UserInterface_ScreenshotType_Int = "screenshotType";
|
||||
|
||||
@@ -1987,10 +2000,17 @@ enum EVRCompositorError
|
||||
VRCompositorError_TextureUsesUnsupportedFormat = 105,
|
||||
VRCompositorError_SharedTexturesNotSupported = 106,
|
||||
VRCompositorError_IndexOutOfRange = 107,
|
||||
VRCompositorError_AlreadySubmitted = 108,
|
||||
};
|
||||
|
||||
const uint32_t VRCompositor_ReprojectionReason_Cpu = 0x01;
|
||||
const uint32_t VRCompositor_ReprojectionReason_Gpu = 0x02;
|
||||
const uint32_t VRCompositor_ReprojectionAsync = 0x04; // This flag indicates the async reprojection mode is active,
|
||||
// but does not indicate if reprojection actually happened or not.
|
||||
// Use the ReprojectionReason flags above to check if reprojection
|
||||
// was actually applied (i.e. scene texture was reused).
|
||||
// NumFramePresents > 1 also indicates the scene texture was reused,
|
||||
// and also the number of times that it was presented in total.
|
||||
|
||||
/** Provides a single frame's timing information to the app */
|
||||
struct Compositor_FrameTiming
|
||||
@@ -1998,6 +2018,7 @@ struct Compositor_FrameTiming
|
||||
uint32_t m_nSize; // Set to sizeof( Compositor_FrameTiming )
|
||||
uint32_t m_nFrameIndex;
|
||||
uint32_t m_nNumFramePresents; // number of times this frame was presented
|
||||
uint32_t m_nNumMisPresented; // number of times this frame was presented on a vsync other than it was originally predicted to
|
||||
uint32_t m_nNumDroppedFrames; // number of additional times previous frame was scanned out
|
||||
uint32_t m_nReprojectionFlags;
|
||||
|
||||
@@ -2074,7 +2095,14 @@ public:
|
||||
/** Gets current tracking space returned by WaitGetPoses */
|
||||
virtual ETrackingUniverseOrigin GetTrackingSpace() = 0;
|
||||
|
||||
/** Returns pose(s) to use to render scene (and optionally poses predicted two frames out for gameplay). */
|
||||
/** Scene applications should call this function to get poses to render with (and optionally poses predicted an additional frame out to use for gameplay).
|
||||
* This function will block until "running start" milliseconds before the start of the frame, and should be called at the last moment before needing to
|
||||
* start rendering.
|
||||
*
|
||||
* Return codes:
|
||||
* - IsNotSceneApplication (make sure to call VR_Init with VRApplicaiton_Scene)
|
||||
* - DoNotHaveFocus (some other app has taken focus - this will throttle the call to 10hz to reduce the impact on that app)
|
||||
*/
|
||||
virtual EVRCompositorError WaitGetPoses( VR_ARRAY_COUNT(unRenderPoseArrayCount) TrackedDevicePose_t* pRenderPoseArray, uint32_t unRenderPoseArrayCount,
|
||||
VR_ARRAY_COUNT(unGamePoseArrayCount) TrackedDevicePose_t* pGamePoseArray, uint32_t unGamePoseArrayCount ) = 0;
|
||||
|
||||
@@ -2092,6 +2120,15 @@ public:
|
||||
*
|
||||
* OpenGL dirty state:
|
||||
* glBindTexture
|
||||
*
|
||||
* Return codes:
|
||||
* - IsNotSceneApplication (make sure to call VR_Init with VRApplicaiton_Scene)
|
||||
* - DoNotHaveFocus (some other app has taken focus)
|
||||
* - TextureIsOnWrongDevice (application did not use proper AdapterIndex - see IVRSystem.GetDXGIOutputInfo)
|
||||
* - SharedTexturesNotSupported (application needs to call CreateDXGIFactory1 or later before creating DX device)
|
||||
* - TextureUsesUnsupportedFormat (scene textures must be compatible with DXGI sharing rules - e.g. uncompressed, no mips, etc.)
|
||||
* - InvalidTexture (usually means bad arguments passed in)
|
||||
* - AlreadySubmitted (app has submitted two left textures or two right textures in a single frame - i.e. before calling WaitGetPoses again)
|
||||
*/
|
||||
virtual EVRCompositorError Submit( EVREye eEye, const Texture_t *pTexture, const VRTextureBounds_t* pBounds = 0, EVRSubmitFlags nSubmitFlags = Submit_Default ) = 0;
|
||||
|
||||
@@ -2110,6 +2147,10 @@ public:
|
||||
* Be sure to set timing.size = sizeof(Compositor_FrameTiming) on struct passed in before calling this function. */
|
||||
virtual bool GetFrameTiming( Compositor_FrameTiming *pTiming, uint32_t unFramesAgo = 0 ) = 0;
|
||||
|
||||
/** Interface for copying a range of timing data. Frames are returned in ascending order (oldest to newest) with the last being the most recent frame.
|
||||
* Only the first entry's m_nSize needs to be set, as the rest will be inferred from that. Returns total number of entries filled out. */
|
||||
virtual uint32_t GetFrameTimings( Compositor_FrameTiming *pTiming, uint32_t nFrames ) = 0;
|
||||
|
||||
/** Returns the time in seconds left in the current (as identified by FrameTiming's frameIndex) frame.
|
||||
* Due to "running start", this value may roll over to the next frame before ever reaching 0.0. */
|
||||
virtual float GetFrameTimeRemaining() = 0;
|
||||
@@ -2122,9 +2163,15 @@ public:
|
||||
* would be FadeToColor( 0.0, 0.0, 0.0, 0.0, 0.0 ). Values are in un-premultiplied alpha space. */
|
||||
virtual void FadeToColor( float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground = false ) = 0;
|
||||
|
||||
/** Get current fade color value. */
|
||||
virtual HmdColor_t GetCurrentFadeColor( bool bBackground = false ) = 0;
|
||||
|
||||
/** Fading the Grid in or out in fSeconds */
|
||||
virtual void FadeGrid( float fSeconds, bool bFadeIn ) = 0;
|
||||
|
||||
/** Get current alpha value of grid. */
|
||||
virtual float GetCurrentGridAlpha() = 0;
|
||||
|
||||
/** Override the skybox used in the compositor (e.g. for during level loads when the app can't feed scene images fast enough)
|
||||
* Order is Front, Back, Left, Right, Top, Bottom. If only a single texture is passed, it is assumed in lat-long format.
|
||||
* If two are passed, it is assumed a lat-long stereo pair. */
|
||||
@@ -2191,7 +2238,7 @@ public:
|
||||
virtual void UnlockGLSharedTextureForAccess( vr::glSharedTextureHandle_t glSharedTextureHandle ) = 0;
|
||||
};
|
||||
|
||||
static const char * const IVRCompositor_Version = "IVRCompositor_016";
|
||||
static const char * const IVRCompositor_Version = "IVRCompositor_018";
|
||||
|
||||
} // namespace vr
|
||||
|
||||
@@ -2308,6 +2355,9 @@ namespace vr
|
||||
/** The maximum number of overlays that can exist in the system at one time. */
|
||||
static const uint32_t k_unMaxOverlayCount = 64;
|
||||
|
||||
/** The maximum number of overlay intersection mask primitives per overlay */
|
||||
static const uint32_t k_unMaxOverlayIntersectionMaskPrimitivesCount = 32;
|
||||
|
||||
/** Types of input supported by VR Overlays */
|
||||
enum VROverlayInputMethod
|
||||
{
|
||||
@@ -2407,6 +2457,40 @@ namespace vr
|
||||
OverlayDirection_Count = 4,
|
||||
};
|
||||
|
||||
enum EVROverlayIntersectionMaskPrimitiveType
|
||||
{
|
||||
OverlayIntersectionPrimitiveType_Rectangle,
|
||||
OverlayIntersectionPrimitiveType_Circle,
|
||||
};
|
||||
|
||||
struct IntersectionMaskRectangle_t
|
||||
{
|
||||
float m_flTopLeftX;
|
||||
float m_flTopLeftY;
|
||||
float m_flWidth;
|
||||
float m_flHeight;
|
||||
};
|
||||
|
||||
struct IntersectionMaskCircle_t
|
||||
{
|
||||
float m_flCenterX;
|
||||
float m_flCenterY;
|
||||
float m_flRadius;
|
||||
};
|
||||
|
||||
/** NOTE!!! If you change this you MUST manually update openvr_interop.cs.py and openvr_api_flat.h.py */
|
||||
typedef union
|
||||
{
|
||||
IntersectionMaskRectangle_t m_Rectangle;
|
||||
IntersectionMaskCircle_t m_Circle;
|
||||
} VROverlayIntersectionMaskPrimitive_Data_t;
|
||||
|
||||
struct VROverlayIntersectionMaskPrimitive_t
|
||||
{
|
||||
EVROverlayIntersectionMaskPrimitiveType m_nPrimitiveType;
|
||||
VROverlayIntersectionMaskPrimitive_Data_t m_Primitive;
|
||||
};
|
||||
|
||||
class IVROverlay
|
||||
{
|
||||
public:
|
||||
@@ -2703,6 +2787,13 @@ namespace vr
|
||||
/** Set the position of the keyboard in overlay space by telling it to avoid a rectangle in the overlay. Rectangle coords have (0,0) in the bottom left **/
|
||||
virtual void SetKeyboardPositionForOverlay( VROverlayHandle_t ulOverlayHandle, HmdRect2_t avoidRect ) = 0;
|
||||
|
||||
// ---------------------------------------------
|
||||
// Overlay input methods
|
||||
// ---------------------------------------------
|
||||
|
||||
/** Sets a list of primitives to be used for controller ray intersection
|
||||
* typically the size of the underlying UI in pixels (not in world space). */
|
||||
virtual EVROverlayError SetOverlayIntersectionMask( VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize = sizeof( VROverlayIntersectionMaskPrimitive_t ) ) = 0;
|
||||
};
|
||||
|
||||
static const char * const IVROverlay_Version = "IVROverlay_013";
|
||||
|
||||
Reference in New Issue
Block a user