Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/openvr.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Ludwig <joe@valvesoftware.com>2016-03-10 04:41:07 +0300
committerJoe Ludwig <joe@valvesoftware.com>2016-03-10 04:41:07 +0300
commitf1ffbf4e92f383bdb453d58f9583c51a5ec350d9 (patch)
tree4d3919d16805af97b3a9e7ee73b8e18a78c5bd6e
parent217ae22879404b61fd8fcbca0109286c6b273537 (diff)
OpenVR SDK 0.9.19:v0.9.19
IVRRenderModels: * Added LoadIntoTextureD3D11_Async. Loads render model texture asynchronously and copies into provided texture (as opposed to creating one and returning it). IVROverlay: * Added SetOverlayRenderingPid/GetOverlayRenderingPid to let you delegate rendering of an overlay's texture to another process * Added new event VREvent_OverlaySharedTextureChanged, this is fired when the backing shared texture for an overlay target changes, which is useful when using GetOverlayTexture * Added GetOverlayTexture/ReleaseNativeOverlayHandle to let you retrieve a native texture pointer backing an overlay targe IVRApplications: * Added new application type, templates. Use the "is_template" key in your manifest to define an application of this type, and the LaunchTemplateApplication call to launch this application. Template applications let you override the keys in the manifest a runtime, useful for launching viewer style apps that want optional command line arguments and for you to transition from the application back to itself again. [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 3339101]
-rwxr-xr-xbin/linux64/libopenvr_api.sobin366116 -> 370212 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.so.dbgbin3006767 -> 3011559 bytes
-rwxr-xr-xbin/osx32/libopenvr_api.dylibbin286332 -> 286460 bytes
-rw-r--r--bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylibbin2142765 -> 2145050 bytes
-rw-r--r--bin/win32/openvr_api.dllbin262464 -> 262464 bytes
-rw-r--r--bin/win32/openvr_api.pdbbin4919296 -> 4919296 bytes
-rw-r--r--bin/win64/openvr_api.dllbin307008 -> 307520 bytes
-rw-r--r--bin/win64/openvr_api.pdbbin4648960 -> 4648960 bytes
-rw-r--r--headers/openvr.h70
-rw-r--r--headers/openvr_api.cs495
-rw-r--r--headers/openvr_api.json340
-rw-r--r--headers/openvr_capi.h90
-rw-r--r--headers/openvr_driver.h61
-rwxr-xr-xlib/linux64/libopenvr_api.sobin3001455 -> 3006239 bytes
-rw-r--r--lib/osx32/libopenvr_api.dylibbin286332 -> 286460 bytes
-rw-r--r--lib/win32/openvr_api.libbin4824 -> 4824 bytes
-rw-r--r--lib/win64/openvr_api.libbin4766 -> 4766 bytes
-rw-r--r--samples/bin/win32/openvr_api.dllbin262464 -> 262464 bytes
-rw-r--r--samples/bin/win64/Qt5Core.dllbin0 -> 5500416 bytes
-rw-r--r--samples/bin/win64/Qt5Cored.dllbin0 -> 11995136 bytes
-rw-r--r--samples/bin/win64/Qt5Gui.dllbin0 -> 5804544 bytes
-rw-r--r--samples/bin/win64/Qt5Guid.dllbin0 -> 13100032 bytes
-rw-r--r--samples/bin/win64/Qt5OpenGL.dllbin0 -> 322048 bytes
-rw-r--r--samples/bin/win64/Qt5OpenGLd.dllbin0 -> 737792 bytes
-rw-r--r--samples/bin/win64/Qt5Qml.dllbin0 -> 3189248 bytes
-rw-r--r--samples/bin/win64/Qt5Qmld.dllbin0 -> 8702976 bytes
-rw-r--r--samples/bin/win64/Qt5Widgets.dllbin0 -> 5446144 bytes
-rw-r--r--samples/bin/win64/Qt5Widgetsd.dllbin0 -> 10895872 bytes
-rw-r--r--samples/bin/win64/icudt54.dllbin0 -> 25338368 bytes
-rw-r--r--samples/bin/win64/icuin54.dllbin0 -> 2567168 bytes
-rw-r--r--samples/bin/win64/icuuc54.dllbin0 -> 1792000 bytes
-rw-r--r--samples/bin/win64/openvr_api.dllbin307008 -> 307520 bytes
-rw-r--r--samples/helloworldoverlay/openvroverlaycontroller.cpp5
33 files changed, 344 insertions, 717 deletions
diff --git a/bin/linux64/libopenvr_api.so b/bin/linux64/libopenvr_api.so
index 2997dde..913fa49 100755
--- a/bin/linux64/libopenvr_api.so
+++ b/bin/linux64/libopenvr_api.so
Binary files differ
diff --git a/bin/linux64/libopenvr_api.so.dbg b/bin/linux64/libopenvr_api.so.dbg
index 4756847..c9d40ba 100755
--- a/bin/linux64/libopenvr_api.so.dbg
+++ b/bin/linux64/libopenvr_api.so.dbg
Binary files differ
diff --git a/bin/osx32/libopenvr_api.dylib b/bin/osx32/libopenvr_api.dylib
index cbc9582..8dc663b 100755
--- a/bin/osx32/libopenvr_api.dylib
+++ b/bin/osx32/libopenvr_api.dylib
Binary files differ
diff --git a/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib b/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib
index 9d091be..0bd4a3a 100644
--- a/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib
+++ b/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib
Binary files differ
diff --git a/bin/win32/openvr_api.dll b/bin/win32/openvr_api.dll
index 1e13dc9..0496bef 100644
--- a/bin/win32/openvr_api.dll
+++ b/bin/win32/openvr_api.dll
Binary files differ
diff --git a/bin/win32/openvr_api.pdb b/bin/win32/openvr_api.pdb
index 429b671..7adab0d 100644
--- a/bin/win32/openvr_api.pdb
+++ b/bin/win32/openvr_api.pdb
Binary files differ
diff --git a/bin/win64/openvr_api.dll b/bin/win64/openvr_api.dll
index fe3be9b..940f39d 100644
--- a/bin/win64/openvr_api.dll
+++ b/bin/win64/openvr_api.dll
Binary files differ
diff --git a/bin/win64/openvr_api.pdb b/bin/win64/openvr_api.pdb
index 925dc29..9128e09 100644
--- a/bin/win64/openvr_api.pdb
+++ b/bin/win64/openvr_api.pdb
Binary files differ
diff --git a/headers/openvr.h b/headers/openvr.h
index fce271d..f79a25e 100644
--- a/headers/openvr.h
+++ b/headers/openvr.h
@@ -261,6 +261,7 @@ enum ETrackedDeviceProperty
Prop_DisplayBootloaderVersion_Uint64 = 2030,
Prop_DisplayHardwareVersion_Uint64 = 2031,
Prop_AudioFirmwareVersion_Uint64 = 2032,
+ Prop_CameraCompatibilityMode_Int32 = 2033,
// Properties that are unique to TrackedDeviceClass_Controller
Prop_AttachedDeviceId_String = 3000,
@@ -391,6 +392,7 @@ enum EVREventType
VREvent_HideKeyboard = 510, // Sent to keyboard renderer in the dashboard to hide it
VREvent_OverlayGamepadFocusGained = 511, // Sent to an overlay when IVROverlay::SetFocusOverlay is called on it
VREvent_OverlayGamepadFocusLost = 512, // Send to an overlay when it previously had focus and IVROverlay::SetFocusOverlay is called on something else
+ VREvent_OverlaySharedTextureChanged = 513,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -1174,20 +1176,9 @@ public:
* prompt the user to save and then exit afterward, otherwise the user will be left in a confusing state. */
virtual void AcknowledgeQuit_UserPrompt() = 0;
- // ------------------------------------
- // Performance Test methods
- // ------------------------------------
-
- /** Performance Testing applications can call this to enable/disable when frame timing data should be
- * captured for the Perf Test Report. */
- virtual void PerformanceTestEnableCapture( bool bEnable ) = 0;
-
- /** Performance Testing applications can call this to note on the Perf Test Report when they've shifted
- * their fidelity to a new mode. */
- virtual void PerformanceTestReportFidelityLevelChange( int nFidelityLevel ) = 0;
};
-static const char * const IVRSystem_Version = "IVRSystem_011";
+static const char * const IVRSystem_Version = "IVRSystem_012";
}
@@ -1215,6 +1206,7 @@ namespace vr
VRApplicationError_LaunchInProgress = 111, // The system was already starting a different application
VRApplicationError_OldApplicationQuitting = 112,
VRApplicationError_TransitionAborted = 113,
+ VRApplicationError_IsTemplate = 114, // error when you try to call LaunchApplication() on a template type app (use LaunchTemplateApplication)
VRApplicationError_BufferTooSmall = 200, // The provided buffer was too small to fit the requested data
VRApplicationError_PropertyNotSet = 201, // The requested property was not set
@@ -1241,6 +1233,8 @@ namespace vr
VRApplicationProperty_Source_String = 53,
VRApplicationProperty_IsDashboardOverlay_Bool = 60,
+ VRApplicationProperty_IsTemplate_Bool = 61,
+ VRApplicationProperty_IsInstanced_Bool = 62,
VRApplicationProperty_LastLaunchTime_Uint64 = 70,
};
@@ -1256,6 +1250,11 @@ namespace vr
VRApplicationTransition_NewAppLaunched = 20,
};
+ struct AppOverrideKeys_t
+ {
+ const char *pchKey;
+ const char *pchValue;
+ };
class IVRApplications
{
@@ -1289,6 +1288,11 @@ namespace vr
* This call is not valid for dashboard overlay applications. */
virtual EVRApplicationError LaunchApplication( const char *pchAppKey ) = 0;
+ /** Launches an instance of an application of type template, with its app key being pchNewAppKey (which must be unique) and optionally override sections
+ * from the manifest file via AppOverrideKeys_t
+ */
+ virtual EVRApplicationError LaunchTemplateApplication( const char *pchTemplateAppKey, const char *pchNewAppKey, VR_ARRAY_COUNT( unKeys ) const AppOverrideKeys_t *pKeys, uint32_t unKeys ) = 0;
+
/** Launches the dashboard overlay application if it is not already running. This call is only valid for
* dashboard overlay applications. */
virtual EVRApplicationError LaunchDashboardOverlay( const char *pchAppKey ) = 0;
@@ -1358,7 +1362,7 @@ namespace vr
virtual EVRApplicationError LaunchInternalProcess( const char *pchBinaryPath, const char *pchArguments, const char *pchWorkingDirectory ) = 0;
};
- static const char * const IVRApplications_Version = "IVRApplications_004";
+ static const char * const IVRApplications_Version = "IVRApplications_005";
} // namespace vr
@@ -1424,6 +1428,8 @@ namespace vr
static const char * const k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
static const char * const k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
static const char * const k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
+ static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
+ static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
//-----------------------------------------------------------------------------
// lighthouse keys
@@ -2089,6 +2095,13 @@ namespace vr
// Overlay rendering methods
// ---------------------------------------------
+ /** Sets the pid that is allowed to render to this overlay (the creator pid is always allow to render),
+ * by default this is the pid of the process that made the overlay */
+ virtual EVROverlayError SetOverlayRenderingPid( VROverlayHandle_t ulOverlayHandle, uint32_t unPID ) = 0;
+
+ /** Gets the pid that is allowed to render to this overlay */
+ virtual uint32_t GetOverlayRenderingPid( VROverlayHandle_t ulOverlayHandle ) = 0;
+
/** Specify flag setting for a given overlay */
virtual EVROverlayError SetOverlayFlag( VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled ) = 0;
@@ -2224,10 +2237,7 @@ namespace vr
// Overlay texture methods
// ---------------------------------------------
- /** Texture to draw for the overlay. IVRCompositor::SetGraphicsDevice must be called before
- * this function. This function can only be called by the overlay's renderer process.
- *
- * If pBounds is NULL the entire texture will be used.
+ /** Texture to draw for the overlay. This function can only be called by the overlay's creator or renderer process (see SetOverlayRenderingPid) .
*
* OpenGL dirty state:
* glBindTexture
@@ -2245,6 +2255,24 @@ namespace vr
* This function can only be called by the overlay's renderer process */
virtual EVROverlayError SetOverlayFromFile( VROverlayHandle_t ulOverlayHandle, const char *pchFilePath ) = 0;
+ /** Get the native texture handle/device for an overlay you have created.
+ * On windows this handle will be a ID3D11ShaderResourceView with a ID3D11Texture2D bound.
+ *
+ * The texture will always be sized to match the backing texture you supplied in SetOverlayTexture above.
+ *
+ * You MUST call ReleaseNativeOverlayHandle() with pNativeTextureHandle once you are done with this texture.
+ *
+ * pNativeTextureHandle is an OUTPUT, it will be a pointer to a ID3D11ShaderResourceView *.
+ * pNativeTextureRef is an INPUT and should be a ID3D11Resource *. The device used by pNativeTextureRef will be used to bind pNativeTextureHandle.
+ */
+ virtual EVROverlayError GetOverlayTexture( VROverlayHandle_t ulOverlayHandle, void **pNativeTextureHandle, void *pNativeTextureRef, uint32_t *pWidth, uint32_t *pHeight, uint32_t *pNativeFormat, EGraphicsAPIConvention *pAPI, EColorSpace *pColorSpace ) = 0;
+
+ /** Release the pNativeTextureHandle provided from the GetOverlayTexture call, this allows the system to free the underlying GPU resources for this object,
+ * so only do it once you stop rendering this texture.
+ */
+ virtual EVROverlayError ReleaseNativeOverlayHandle( VROverlayHandle_t ulOverlayHandle, void *pNativeTextureHandle ) = 0;
+
+
// ----------------------------------------------
// Dashboard Overlay Methods
// ----------------------------------------------
@@ -2290,9 +2318,10 @@ 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;
+
};
- static const char * const IVROverlay_Version = "IVROverlay_010";
+ static const char * const IVROverlay_Version = "IVROverlay_011";
} // namespace vr
@@ -2416,6 +2445,9 @@ public:
/** Creates a D3D11 texture and loads data into it. */
virtual EVRRenderModelError LoadTextureD3D11_Async( TextureID_t textureId, void *pD3D11Device, void **ppD3D11Texture2D ) = 0;
+ /** Helper function to copy the bits into an existing texture. */
+ virtual EVRRenderModelError LoadIntoTextureD3D11_Async( TextureID_t textureId, void *pDstTexture ) = 0;
+
/** Use this to free textures created with LoadTextureD3D11_Async instead of calling Release on them. */
virtual void FreeTextureD3D11( void *pD3D11Texture2D ) = 0;
@@ -2467,7 +2499,7 @@ public:
virtual bool RenderModelHasComponent( const char *pchRenderModelName, const char *pchComponentName ) = 0;
};
-static const char * const IVRRenderModels_Version = "IVRRenderModels_004";
+static const char * const IVRRenderModels_Version = "IVRRenderModels_005";
}
diff --git a/headers/openvr_api.cs b/headers/openvr_api.cs
index 64fda9a..ba25a8a 100644
--- a/headers/openvr_api.cs
+++ b/headers/openvr_api.cs
@@ -235,16 +235,6 @@ public struct IVRSystem
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _AcknowledgeQuit_UserPrompt AcknowledgeQuit_UserPrompt;
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _PerformanceTestEnableCapture(bool bEnable);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _PerformanceTestEnableCapture PerformanceTestEnableCapture;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _PerformanceTestReportFidelityLevelChange(int nFidelityLevel);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _PerformanceTestReportFidelityLevelChange PerformanceTestReportFidelityLevelChange;
-
}
[StructLayout(LayoutKind.Sequential)]
@@ -306,6 +296,11 @@ public struct IVRApplications
internal _LaunchApplication LaunchApplication;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRApplicationError _LaunchTemplateApplication(string pchTemplateAppKey, string pchNewAppKey, [In, Out] AppOverrideKeys_t[] pKeys, uint unKeys);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _LaunchTemplateApplication LaunchTemplateApplication;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate EVRApplicationError _LaunchDashboardOverlay(string pchAppKey);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _LaunchDashboardOverlay LaunchDashboardOverlay;
@@ -726,6 +721,16 @@ public struct IVROverlay
internal _GetOverlayErrorNameFromEnum GetOverlayErrorNameFromEnum;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVROverlayError _SetOverlayRenderingPid(ulong ulOverlayHandle, uint unPID);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _SetOverlayRenderingPid SetOverlayRenderingPid;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate uint _GetOverlayRenderingPid(ulong ulOverlayHandle);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetOverlayRenderingPid GetOverlayRenderingPid;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate EVROverlayError _SetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _SetOverlayFlag SetOverlayFlag;
@@ -931,6 +936,16 @@ public struct IVROverlay
internal _SetOverlayFromFile SetOverlayFromFile;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVROverlayError _GetOverlayTexture(ulong ulOverlayHandle, ref IntPtr pNativeTextureHandle, IntPtr pNativeTextureRef, ref uint pWidth, ref uint pHeight, ref uint pNativeFormat, ref EGraphicsAPIConvention pAPI, ref EColorSpace pColorSpace);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetOverlayTexture GetOverlayTexture;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVROverlayError _ReleaseNativeOverlayHandle(ulong ulOverlayHandle, IntPtr pNativeTextureHandle);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _ReleaseNativeOverlayHandle ReleaseNativeOverlayHandle;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate EVROverlayError _CreateDashboardOverlay(string pchOverlayKey, string pchOverlayFriendlyName, ref ulong pMainHandle, ref ulong pThumbnailHandle);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _CreateDashboardOverlay CreateDashboardOverlay;
@@ -1026,6 +1041,11 @@ public struct IVRRenderModels
internal _LoadTextureD3D11_Async LoadTextureD3D11_Async;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRRenderModelError _LoadIntoTextureD3D11_Async(int textureId, IntPtr pDstTexture);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _LoadIntoTextureD3D11_Async LoadIntoTextureD3D11_Async;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate void _FreeTextureD3D11(IntPtr pD3D11Texture2D);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _FreeTextureD3D11 FreeTextureD3D11;
@@ -1152,136 +1172,11 @@ public struct IVRSettings
}
-[StructLayout(LayoutKind.Sequential)]
-public struct IVRTrackedCamera
-{
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _HasCamera(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _HasCamera HasCamera;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetCameraFirmwareDescription(uint nDeviceIndex, string pBuffer, uint nBufferLen);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetCameraFirmwareDescription GetCameraFirmwareDescription;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetCameraFrameDimensions(uint nDeviceIndex, ECameraVideoStreamFormat nVideoStreamFormat, ref uint pWidth, ref uint pHeight);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetCameraFrameDimensions GetCameraFrameDimensions;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _SetCameraVideoStreamFormat(uint nDeviceIndex, ECameraVideoStreamFormat nVideoStreamFormat);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _SetCameraVideoStreamFormat SetCameraVideoStreamFormat;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate ECameraVideoStreamFormat _GetCameraVideoStreamFormat(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetCameraVideoStreamFormat GetCameraVideoStreamFormat;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _EnableCameraForStreaming(uint nDeviceIndex, bool bEnable);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _EnableCameraForStreaming EnableCameraForStreaming;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _StartVideoStream(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _StartVideoStream StartVideoStream;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _StopVideoStream(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _StopVideoStream StopVideoStream;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _IsVideoStreamActive(uint nDeviceIndex, ref bool pbPaused, ref float pflElapsedTime);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _IsVideoStreamActive IsVideoStreamActive;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate IntPtr _GetVideoStreamFrame(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetVideoStreamFrame GetVideoStreamFrame;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _ReleaseVideoStreamFrame(uint nDeviceIndex, ref CameraVideoStreamFrame_t pFrameImage);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _ReleaseVideoStreamFrame ReleaseVideoStreamFrame;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _SetAutoExposure(uint nDeviceIndex, bool bEnable);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _SetAutoExposure SetAutoExposure;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _PauseVideoStream(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _PauseVideoStream PauseVideoStream;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _ResumeVideoStream(uint nDeviceIndex);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _ResumeVideoStream ResumeVideoStream;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetCameraDistortion(uint nDeviceIndex, float flInputU, float flInputV, ref float pflOutputU, ref float pflOutputV);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetCameraDistortion GetCameraDistortion;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetCameraProjection(uint nDeviceIndex, float flWidthPixels, float flHeightPixels, float flZNear, float flZFar, ref HmdMatrix44_t pProjection);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetCameraProjection GetCameraProjection;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetRecommendedCameraUndistortion(uint nDeviceIndex, ref uint pUndistortionWidthPixels, ref uint pUndistortionHeightPixels);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetRecommendedCameraUndistortion GetRecommendedCameraUndistortion;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _SetCameraUndistortion(uint nDeviceIndex, uint nUndistortionWidthPixels, uint nUndistortionHeightPixels);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _SetCameraUndistortion SetCameraUndistortion;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _RequestVideoServicesForTool();
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _RequestVideoServicesForTool RequestVideoServicesForTool;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _ReleaseVideoServicesForTool();
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _ReleaseVideoServicesForTool ReleaseVideoServicesForTool;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetVideoStreamFrameSharedTextureGL(bool bUndistorted, ref uint pglTextureId, IntPtr pglSharedTextureHandle);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetVideoStreamFrameSharedTextureGL GetVideoStreamFrameSharedTextureGL;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _ReleaseVideoStreamFrameSharedTextureGL(uint glTextureId, IntPtr glSharedTextureHandle);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _ReleaseVideoStreamFrameSharedTextureGL ReleaseVideoStreamFrameSharedTextureGL;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _LockSharedTextureGL(IntPtr glSharedTextureHandle, ref CameraVideoStreamFrame_t pFrameImage);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _LockSharedTextureGL LockSharedTextureGL;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _UnlockSharedTextureGL(IntPtr glSharedTextureHandle);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _UnlockSharedTextureGL UnlockSharedTextureGL;
-
-}
-
public class CVRSystem
{
IVRSystem FnTable;
- public CVRSystem(IntPtr pInterface)
+ internal CVRSystem(IntPtr pInterface)
{
FnTable = (IVRSystem)Marshal.PtrToStructure(pInterface, typeof(IVRSystem));
}
@@ -1504,21 +1399,13 @@ public class CVRSystem
{
FnTable.AcknowledgeQuit_UserPrompt();
}
- public void PerformanceTestEnableCapture(bool bEnable)
- {
- FnTable.PerformanceTestEnableCapture(bEnable);
- }
- public void PerformanceTestReportFidelityLevelChange(int nFidelityLevel)
- {
- FnTable.PerformanceTestReportFidelityLevelChange(nFidelityLevel);
- }
}
public class CVRExtendedDisplay
{
IVRExtendedDisplay FnTable;
- public CVRExtendedDisplay(IntPtr pInterface)
+ internal CVRExtendedDisplay(IntPtr pInterface)
{
FnTable = (IVRExtendedDisplay)Marshal.PtrToStructure(pInterface, typeof(IVRExtendedDisplay));
}
@@ -1550,7 +1437,7 @@ public class CVRExtendedDisplay
public class CVRApplications
{
IVRApplications FnTable;
- public CVRApplications(IntPtr pInterface)
+ internal CVRApplications(IntPtr pInterface)
{
FnTable = (IVRApplications)Marshal.PtrToStructure(pInterface, typeof(IVRApplications));
}
@@ -1589,6 +1476,11 @@ public class CVRApplications
EVRApplicationError result = FnTable.LaunchApplication(pchAppKey);
return result;
}
+ public EVRApplicationError LaunchTemplateApplication(string pchTemplateAppKey,string pchNewAppKey,AppOverrideKeys_t [] pKeys)
+ {
+ EVRApplicationError result = FnTable.LaunchTemplateApplication(pchTemplateAppKey,pchNewAppKey,pKeys,(uint) pKeys.Length);
+ return result;
+ }
public EVRApplicationError LaunchDashboardOverlay(string pchAppKey)
{
EVRApplicationError result = FnTable.LaunchDashboardOverlay(pchAppKey);
@@ -1675,7 +1567,7 @@ public class CVRApplications
public class CVRChaperone
{
IVRChaperone FnTable;
- public CVRChaperone(IntPtr pInterface)
+ internal CVRChaperone(IntPtr pInterface)
{
FnTable = (IVRChaperone)Marshal.PtrToStructure(pInterface, typeof(IVRChaperone));
}
@@ -1723,7 +1615,7 @@ public class CVRChaperone
public class CVRChaperoneSetup
{
IVRChaperoneSetup FnTable;
- public CVRChaperoneSetup(IntPtr pInterface)
+ internal CVRChaperoneSetup(IntPtr pInterface)
{
FnTable = (IVRChaperoneSetup)Marshal.PtrToStructure(pInterface, typeof(IVRChaperoneSetup));
}
@@ -1841,7 +1733,7 @@ public class CVRChaperoneSetup
public class CVRCompositor
{
IVRCompositor FnTable;
- public CVRCompositor(IntPtr pInterface)
+ internal CVRCompositor(IntPtr pInterface)
{
FnTable = (IVRCompositor)Marshal.PtrToStructure(pInterface, typeof(IVRCompositor));
}
@@ -1973,7 +1865,7 @@ public class CVRCompositor
public class CVROverlay
{
IVROverlay FnTable;
- public CVROverlay(IntPtr pInterface)
+ internal CVROverlay(IntPtr pInterface)
{
FnTable = (IVROverlay)Marshal.PtrToStructure(pInterface, typeof(IVROverlay));
}
@@ -2026,6 +1918,16 @@ public class CVROverlay
IntPtr result = FnTable.GetOverlayErrorNameFromEnum(error);
return (string) Marshal.PtrToStructure(result, typeof(string));
}
+ public EVROverlayError SetOverlayRenderingPid(ulong ulOverlayHandle,uint unPID)
+ {
+ EVROverlayError result = FnTable.SetOverlayRenderingPid(ulOverlayHandle,unPID);
+ return result;
+ }
+ public uint GetOverlayRenderingPid(ulong ulOverlayHandle)
+ {
+ uint result = FnTable.GetOverlayRenderingPid(ulOverlayHandle);
+ return result;
+ }
public EVROverlayError SetOverlayFlag(ulong ulOverlayHandle,VROverlayFlags eOverlayFlag,bool bEnabled)
{
EVROverlayError result = FnTable.SetOverlayFlag(ulOverlayHandle,eOverlayFlag,bEnabled);
@@ -2241,6 +2143,19 @@ public class CVROverlay
EVROverlayError result = FnTable.SetOverlayFromFile(ulOverlayHandle,pchFilePath);
return result;
}
+ public EVROverlayError GetOverlayTexture(ulong ulOverlayHandle,ref IntPtr pNativeTextureHandle,IntPtr pNativeTextureRef,ref uint pWidth,ref uint pHeight,ref uint pNativeFormat,ref EGraphicsAPIConvention pAPI,ref EColorSpace pColorSpace)
+ {
+ pWidth = 0;
+ pHeight = 0;
+ pNativeFormat = 0;
+ EVROverlayError result = FnTable.GetOverlayTexture(ulOverlayHandle,ref pNativeTextureHandle,pNativeTextureRef,ref pWidth,ref pHeight,ref pNativeFormat,ref pAPI,ref pColorSpace);
+ return result;
+ }
+ public EVROverlayError ReleaseNativeOverlayHandle(ulong ulOverlayHandle,IntPtr pNativeTextureHandle)
+ {
+ EVROverlayError result = FnTable.ReleaseNativeOverlayHandle(ulOverlayHandle,pNativeTextureHandle);
+ return result;
+ }
public EVROverlayError CreateDashboardOverlay(string pchOverlayKey,string pchOverlayFriendlyName,ref ulong pMainHandle,ref ulong pThumbnailHandle)
{
pMainHandle = 0;
@@ -2311,7 +2226,7 @@ public class CVROverlay
public class CVRRenderModels
{
IVRRenderModels FnTable;
- public CVRRenderModels(IntPtr pInterface)
+ internal CVRRenderModels(IntPtr pInterface)
{
FnTable = (IVRRenderModels)Marshal.PtrToStructure(pInterface, typeof(IVRRenderModels));
}
@@ -2338,6 +2253,11 @@ public class CVRRenderModels
EVRRenderModelError result = FnTable.LoadTextureD3D11_Async(textureId,pD3D11Device,ref ppD3D11Texture2D);
return result;
}
+ public EVRRenderModelError LoadIntoTextureD3D11_Async(int textureId,IntPtr pDstTexture)
+ {
+ EVRRenderModelError result = FnTable.LoadIntoTextureD3D11_Async(textureId,pDstTexture);
+ return result;
+ }
public void FreeTextureD3D11(IntPtr pD3D11Texture2D)
{
FnTable.FreeTextureD3D11(pD3D11Texture2D);
@@ -2388,7 +2308,7 @@ public class CVRRenderModels
public class CVRNotifications
{
IVRNotifications FnTable;
- public CVRNotifications(IntPtr pInterface)
+ internal CVRNotifications(IntPtr pInterface)
{
FnTable = (IVRNotifications)Marshal.PtrToStructure(pInterface, typeof(IVRNotifications));
}
@@ -2409,7 +2329,7 @@ public class CVRNotifications
public class CVRSettings
{
IVRSettings FnTable;
- public CVRSettings(IntPtr pInterface)
+ internal CVRSettings(IntPtr pInterface)
{
FnTable = (IVRSettings)Marshal.PtrToStructure(pInterface, typeof(IVRSettings));
}
@@ -2469,141 +2389,6 @@ public class CVRSettings
}
-public class CVRTrackedCamera
-{
- IVRTrackedCamera FnTable;
- public CVRTrackedCamera(IntPtr pInterface)
- {
- FnTable = (IVRTrackedCamera)Marshal.PtrToStructure(pInterface, typeof(IVRTrackedCamera));
- }
- public bool HasCamera(uint nDeviceIndex)
- {
- bool result = FnTable.HasCamera(nDeviceIndex);
- return result;
- }
- public bool GetCameraFirmwareDescription(uint nDeviceIndex,string pBuffer,uint nBufferLen)
- {
- bool result = FnTable.GetCameraFirmwareDescription(nDeviceIndex,pBuffer,nBufferLen);
- return result;
- }
- public bool GetCameraFrameDimensions(uint nDeviceIndex,ECameraVideoStreamFormat nVideoStreamFormat,ref uint pWidth,ref uint pHeight)
- {
- pWidth = 0;
- pHeight = 0;
- bool result = FnTable.GetCameraFrameDimensions(nDeviceIndex,nVideoStreamFormat,ref pWidth,ref pHeight);
- return result;
- }
- public bool SetCameraVideoStreamFormat(uint nDeviceIndex,ECameraVideoStreamFormat nVideoStreamFormat)
- {
- bool result = FnTable.SetCameraVideoStreamFormat(nDeviceIndex,nVideoStreamFormat);
- return result;
- }
- public ECameraVideoStreamFormat GetCameraVideoStreamFormat(uint nDeviceIndex)
- {
- ECameraVideoStreamFormat result = FnTable.GetCameraVideoStreamFormat(nDeviceIndex);
- return result;
- }
- public bool EnableCameraForStreaming(uint nDeviceIndex,bool bEnable)
- {
- bool result = FnTable.EnableCameraForStreaming(nDeviceIndex,bEnable);
- return result;
- }
- public bool StartVideoStream(uint nDeviceIndex)
- {
- bool result = FnTable.StartVideoStream(nDeviceIndex);
- return result;
- }
- public bool StopVideoStream(uint nDeviceIndex)
- {
- bool result = FnTable.StopVideoStream(nDeviceIndex);
- return result;
- }
- public bool IsVideoStreamActive(uint nDeviceIndex,ref bool pbPaused,ref float pflElapsedTime)
- {
- pbPaused = false;
- pflElapsedTime = 0;
- bool result = FnTable.IsVideoStreamActive(nDeviceIndex,ref pbPaused,ref pflElapsedTime);
- return result;
- }
- public CameraVideoStreamFrame_t GetVideoStreamFrame(uint nDeviceIndex)
- {
- IntPtr result = FnTable.GetVideoStreamFrame(nDeviceIndex);
- return (CameraVideoStreamFrame_t) Marshal.PtrToStructure(result, typeof(CameraVideoStreamFrame_t));
- }
- public bool ReleaseVideoStreamFrame(uint nDeviceIndex,ref CameraVideoStreamFrame_t pFrameImage)
- {
- bool result = FnTable.ReleaseVideoStreamFrame(nDeviceIndex,ref pFrameImage);
- return result;
- }
- public bool SetAutoExposure(uint nDeviceIndex,bool bEnable)
- {
- bool result = FnTable.SetAutoExposure(nDeviceIndex,bEnable);
- return result;
- }
- public bool PauseVideoStream(uint nDeviceIndex)
- {
- bool result = FnTable.PauseVideoStream(nDeviceIndex);
- return result;
- }
- public bool ResumeVideoStream(uint nDeviceIndex)
- {
- bool result = FnTable.ResumeVideoStream(nDeviceIndex);
- return result;
- }
- public bool GetCameraDistortion(uint nDeviceIndex,float flInputU,float flInputV,ref float pflOutputU,ref float pflOutputV)
- {
- pflOutputU = 0;
- pflOutputV = 0;
- bool result = FnTable.GetCameraDistortion(nDeviceIndex,flInputU,flInputV,ref pflOutputU,ref pflOutputV);
- return result;
- }
- public bool GetCameraProjection(uint nDeviceIndex,float flWidthPixels,float flHeightPixels,float flZNear,float flZFar,ref HmdMatrix44_t pProjection)
- {
- bool result = FnTable.GetCameraProjection(nDeviceIndex,flWidthPixels,flHeightPixels,flZNear,flZFar,ref pProjection);
- return result;
- }
- public bool GetRecommendedCameraUndistortion(uint nDeviceIndex,ref uint pUndistortionWidthPixels,ref uint pUndistortionHeightPixels)
- {
- pUndistortionWidthPixels = 0;
- pUndistortionHeightPixels = 0;
- bool result = FnTable.GetRecommendedCameraUndistortion(nDeviceIndex,ref pUndistortionWidthPixels,ref pUndistortionHeightPixels);
- return result;
- }
- public bool SetCameraUndistortion(uint nDeviceIndex,uint nUndistortionWidthPixels,uint nUndistortionHeightPixels)
- {
- bool result = FnTable.SetCameraUndistortion(nDeviceIndex,nUndistortionWidthPixels,nUndistortionHeightPixels);
- return result;
- }
- public void RequestVideoServicesForTool()
- {
- FnTable.RequestVideoServicesForTool();
- }
- public void ReleaseVideoServicesForTool()
- {
- FnTable.ReleaseVideoServicesForTool();
- }
- public bool GetVideoStreamFrameSharedTextureGL(bool bUndistorted,ref uint pglTextureId,IntPtr pglSharedTextureHandle)
- {
- pglTextureId = 0;
- bool result = FnTable.GetVideoStreamFrameSharedTextureGL(bUndistorted,ref pglTextureId,pglSharedTextureHandle);
- return result;
- }
- public bool ReleaseVideoStreamFrameSharedTextureGL(uint glTextureId,IntPtr glSharedTextureHandle)
- {
- bool result = FnTable.ReleaseVideoStreamFrameSharedTextureGL(glTextureId,glSharedTextureHandle);
- return result;
- }
- public void LockSharedTextureGL(IntPtr glSharedTextureHandle,ref CameraVideoStreamFrame_t pFrameImage)
- {
- FnTable.LockSharedTextureGL(glSharedTextureHandle,ref pFrameImage);
- }
- public void UnlockSharedTextureGL(IntPtr glSharedTextureHandle)
- {
- FnTable.UnlockSharedTextureGL(glSharedTextureHandle);
- }
-}
-
-
public class OpenVRInterop
{
[DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal")]
@@ -2735,6 +2520,7 @@ public enum ETrackedDeviceProperty
Prop_DisplayBootloaderVersion_Uint64 = 2030,
Prop_DisplayHardwareVersion_Uint64 = 2031,
Prop_AudioFirmwareVersion_Uint64 = 2032,
+ Prop_CameraCompatibilityMode_Int32 = 2033,
Prop_AttachedDeviceId_String = 3000,
Prop_SupportedButtons_Uint64 = 3001,
Prop_Axis0Type_Int32 = 3002,
@@ -2825,6 +2611,7 @@ public enum EVREventType
VREvent_HideKeyboard = 510,
VREvent_OverlayGamepadFocusGained = 511,
VREvent_OverlayGamepadFocusLost = 512,
+ VREvent_OverlaySharedTextureChanged = 513,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
VREvent_Notification_BeginInteraction = 602,
@@ -3040,6 +2827,7 @@ public enum EVRApplicationError
LaunchInProgress = 111,
OldApplicationQuitting = 112,
TransitionAborted = 113,
+ IsTemplate = 114,
BufferTooSmall = 200,
PropertyNotSet = 201,
UnknownProperty = 202,
@@ -3057,6 +2845,8 @@ public enum EVRApplicationProperty
ImagePath_String = 52,
Source_String = 53,
IsDashboardOverlay_Bool = 60,
+ IsTemplate_Bool = 61,
+ IsInstanced_Bool = 62,
LastLaunchTime_Uint64 = 70,
}
public enum EVRApplicationTransitionState
@@ -3184,14 +2974,6 @@ public enum EVRSettingsError
WriteFailed = 2,
ReadFailed = 3,
}
-public enum ECameraVideoStreamFormat
-{
- CVS_FORMAT_UNKNOWN = 0,
- CVS_FORMAT_RAW10 = 1,
- CVS_FORMAT_NV12 = 2,
- CVS_FORMAT_RGB24 = 3,
- CVS_MAX_FORMATS = 4,
-}
[StructLayout(LayoutKind.Explicit)] public struct VREvent_Data_t
{
@@ -3213,33 +2995,61 @@ public enum ECameraVideoStreamFormat
[StructLayout(LayoutKind.Sequential)] public struct HmdMatrix34_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12, ArraySubType = UnmanagedType.R4)]
- public float[] m; //float[3][4]
+ public float m0; //float[3][4]
+ public float m1;
+ public float m2;
+ public float m3;
+ public float m4;
+ public float m5;
+ public float m6;
+ public float m7;
+ public float m8;
+ public float m9;
+ public float m10;
+ public float m11;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdMatrix44_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.R4)]
- public float[] m; //float[4][4]
+ public float m0; //float[4][4]
+ public float m1;
+ public float m2;
+ public float m3;
+ public float m4;
+ public float m5;
+ public float m6;
+ public float m7;
+ public float m8;
+ public float m9;
+ public float m10;
+ public float m11;
+ public float m12;
+ public float m13;
+ public float m14;
+ public float m15;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdVector3_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.R4)]
- public float[] v; //float[3]
+ public float v0; //float[3]
+ public float v1;
+ public float v2;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdVector4_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.R4)]
- public float[] v; //float[4]
+ public float v0; //float[4]
+ public float v1;
+ public float v2;
+ public float v3;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdVector3d_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.R8)]
- public double[] v; //double[3]
+ public double v0; //double[3]
+ public double v1;
+ public double v2;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdVector2_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.R4)]
- public float[] v; //float[2]
+ public float v0; //float[2]
+ public float v1;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdQuaternion_t
{
@@ -3257,8 +3067,10 @@ public enum ECameraVideoStreamFormat
}
[StructLayout(LayoutKind.Sequential)] public struct HmdQuad_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.Struct)]
- public HmdVector3_t[] vCorners; //HmdVector3_t[4]
+ public HmdVector3_t vCorners0; //HmdVector3_t[4]
+ public HmdVector3_t vCorners1;
+ public HmdVector3_t vCorners2;
+ public HmdVector3_t vCorners3;
}
[StructLayout(LayoutKind.Sequential)] public struct HmdRect2_t
{
@@ -3267,12 +3079,12 @@ public enum ECameraVideoStreamFormat
}
[StructLayout(LayoutKind.Sequential)] public struct DistortionCoordinates_t
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.R4)]
- public float[] rfRed; //float[2]
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.R4)]
- public float[] rfGreen; //float[2]
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.R4)]
- public float[] rfBlue; //float[2]
+ public float rfRed0; //float[2]
+ public float rfRed1;
+ public float rfGreen0; //float[2]
+ public float rfGreen1;
+ public float rfBlue0; //float[2]
+ public float rfBlue1;
}
[StructLayout(LayoutKind.Sequential)] public struct Texture_t
{
@@ -3395,8 +3207,11 @@ public enum ECameraVideoStreamFormat
public uint unPacketNum;
public ulong ulButtonPressed;
public ulong ulButtonTouched;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5, ArraySubType = UnmanagedType.Struct)]
- public VRControllerAxis_t[] rAxis; //VRControllerAxis_t[5]
+ public VRControllerAxis_t rAxis0; //VRControllerAxis_t[5]
+ public VRControllerAxis_t rAxis1;
+ public VRControllerAxis_t rAxis2;
+ public VRControllerAxis_t rAxis3;
+ public VRControllerAxis_t rAxis4;
}
[StructLayout(LayoutKind.Sequential)] public struct Compositor_OverlaySettings
{
@@ -3417,6 +3232,11 @@ public enum ECameraVideoStreamFormat
public float gridScale;
public HmdMatrix44_t transform;
}
+[StructLayout(LayoutKind.Sequential)] public struct AppOverrideKeys_t
+{
+ public IntPtr pchKey; // const char *
+ public IntPtr pchValue; // const char *
+}
[StructLayout(LayoutKind.Sequential)] public struct Compositor_FrameTiming
{
public uint m_nSize;
@@ -3465,8 +3285,8 @@ public enum ECameraVideoStreamFormat
{
public HmdVector3_t vPosition;
public HmdVector3_t vNormal;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2, ArraySubType = UnmanagedType.R4)]
- public float[] rfTextureCoord; //float[2]
+ public float rfTextureCoord0; //float[2]
+ public float rfTextureCoord1;
}
[StructLayout(LayoutKind.Sequential)] public struct RenderModel_TextureMap_t
{
@@ -3494,30 +3314,6 @@ public enum ECameraVideoStreamFormat
public int height;
public int depth;
}
-[StructLayout(LayoutKind.Sequential)] public struct CameraVideoStreamFrame_t
-{
- public ECameraVideoStreamFormat m_nStreamFormat;
- public uint m_nWidth;
- public uint m_nHeight;
- public uint m_nImageDataSize;
- public uint m_nFrameSequence;
- public uint m_nISPFrameTimeStamp;
- public uint m_nISPReferenceTimeStamp;
- public uint m_nSyncCounter;
- public uint m_nCamSyncEvents;
- public uint m_nExposureTime;
- public uint m_nBufferIndex;
- public uint m_nBufferCount;
- public double m_flFrameElapsedTime;
- public double m_flFrameCaptureTime;
- public ulong m_nFrameCaptureTicks;
- [MarshalAs(UnmanagedType.I1)]
- public bool m_bPoseIsValid;
- public HmdMatrix34_t m_matDeviceToAbsoluteTracking;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.R4)]
- public float[] m_Pad; //float[4]
- public IntPtr m_pImageData; // void *
-}
[StructLayout(LayoutKind.Sequential)] public struct COpenVRContext
{
public IntPtr m_pVRSystem; // class vr::IVRSystem *
@@ -3582,23 +3378,23 @@ public class OpenVR
public const uint k_unMaxPropertyStringSize = 32768;
public const uint k_unControllerStateAxisCount = 5;
public const ulong k_ulOverlayHandleInvalid = 0;
- public const string IVRSystem_Version = "IVRSystem_011";
+ public const string IVRSystem_Version = "IVRSystem_012";
public const string IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
public const uint k_unMaxApplicationKeyLength = 128;
- public const string IVRApplications_Version = "IVRApplications_004";
+ public const string IVRApplications_Version = "IVRApplications_005";
public const string IVRChaperone_Version = "IVRChaperone_003";
public const string IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
public const string IVRCompositor_Version = "IVRCompositor_013";
public const uint k_unVROverlayMaxKeyLength = 128;
public const uint k_unVROverlayMaxNameLength = 128;
public const uint k_unMaxOverlayCount = 32;
- public const string IVROverlay_Version = "IVROverlay_010";
+ public const string IVROverlay_Version = "IVROverlay_011";
public const string k_pch_Controller_Component_GDC2015 = "gdc2015";
public const string k_pch_Controller_Component_Base = "base";
public const string k_pch_Controller_Component_Tip = "tip";
public const string k_pch_Controller_Component_HandGrip = "handgrip";
public const string k_pch_Controller_Component_Status = "status";
- public const string IVRRenderModels_Version = "IVRRenderModels_004";
+ public const string IVRRenderModels_Version = "IVRRenderModels_005";
public const uint k_unNotificationTextMaxSize = 256;
public const string IVRNotifications_Version = "IVRNotifications_002";
public const uint k_unMaxSettingsKeyLength = 128;
@@ -3626,6 +3422,8 @@ public class OpenVR
public const string k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
public const string k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
public const string k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
+ public const string k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
+ public const string k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
public const string k_pch_Lighthouse_Section = "driver_lighthouse";
public const string k_pch_Lighthouse_DisableIMU_Bool = "disableimu";
public const string k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation";
@@ -3672,7 +3470,6 @@ public class OpenVR
public const string k_pch_audio_OffPlaybackDevice_String = "offPlaybackDevice";
public const string k_pch_audio_OffRecordDevice_String = "offRecordDevice";
public const string k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
- public const string IVRTrackedCamera_Version = "IVRTrackedCamera_001";
static uint VRToken { get; set; }
diff --git a/headers/openvr_api.json b/headers/openvr_api.json
index 99899cd..f697095 100644
--- a/headers/openvr_api.json
+++ b/headers/openvr_api.json
@@ -127,6 +127,7 @@
,{"name": "Prop_DisplayBootloaderVersion_Uint64","value": "2030"}
,{"name": "Prop_DisplayHardwareVersion_Uint64","value": "2031"}
,{"name": "Prop_AudioFirmwareVersion_Uint64","value": "2032"}
+ ,{"name": "Prop_CameraCompatibilityMode_Int32","value": "2033"}
,{"name": "Prop_AttachedDeviceId_String","value": "3000"}
,{"name": "Prop_SupportedButtons_Uint64","value": "3001"}
,{"name": "Prop_Axis0Type_Int32","value": "3002"}
@@ -213,6 +214,7 @@
,{"name": "VREvent_HideKeyboard","value": "510"}
,{"name": "VREvent_OverlayGamepadFocusGained","value": "511"}
,{"name": "VREvent_OverlayGamepadFocusLost","value": "512"}
+ ,{"name": "VREvent_OverlaySharedTextureChanged","value": "513"}
,{"name": "VREvent_Notification_Shown","value": "600"}
,{"name": "VREvent_Notification_Hidden","value": "601"}
,{"name": "VREvent_Notification_BeginInteraction","value": "602"}
@@ -416,6 +418,7 @@
,{"name": "VRApplicationError_LaunchInProgress","value": "111"}
,{"name": "VRApplicationError_OldApplicationQuitting","value": "112"}
,{"name": "VRApplicationError_TransitionAborted","value": "113"}
+ ,{"name": "VRApplicationError_IsTemplate","value": "114"}
,{"name": "VRApplicationError_BufferTooSmall","value": "200"}
,{"name": "VRApplicationError_PropertyNotSet","value": "201"}
,{"name": "VRApplicationError_UnknownProperty","value": "202"}
@@ -432,6 +435,8 @@
,{"name": "VRApplicationProperty_ImagePath_String","value": "52"}
,{"name": "VRApplicationProperty_Source_String","value": "53"}
,{"name": "VRApplicationProperty_IsDashboardOverlay_Bool","value": "60"}
+ ,{"name": "VRApplicationProperty_IsTemplate_Bool","value": "61"}
+ ,{"name": "VRApplicationProperty_IsInstanced_Bool","value": "62"}
,{"name": "VRApplicationProperty_LastLaunchTime_Uint64","value": "70"}
]}
, {"enumname": "vr::EVRApplicationTransitionState","values": [
@@ -543,13 +548,6 @@
,{"name": "VRSettingsError_WriteFailed","value": "2"}
,{"name": "VRSettingsError_ReadFailed","value": "3"}
]}
-, {"enumname": "vr::ECameraVideoStreamFormat","values": [
- {"name": "CVS_FORMAT_UNKNOWN","value": "0"}
- ,{"name": "CVS_FORMAT_RAW10","value": "1"}
- ,{"name": "CVS_FORMAT_NV12","value": "2"}
- ,{"name": "CVS_FORMAT_RGB24","value": "3"}
- ,{"name": "CVS_MAX_FORMATS","value": "4"}
-]}
],
"consts":[{
"constname": "k_unTrackingStringSize","consttype": "const uint32_t", "constval": "32"}
@@ -568,13 +566,13 @@
,{
"constname": "k_ulOverlayHandleInvalid","consttype": "const VROverlayHandle_t", "constval": "0"}
,{
- "constname": "IVRSystem_Version","consttype": "const char *const", "constval": "IVRSystem_011"}
+ "constname": "IVRSystem_Version","consttype": "const char *const", "constval": "IVRSystem_012"}
,{
"constname": "IVRExtendedDisplay_Version","consttype": "const char *const", "constval": "IVRExtendedDisplay_001"}
,{
"constname": "k_unMaxApplicationKeyLength","consttype": "const uint32_t", "constval": "128"}
,{
- "constname": "IVRApplications_Version","consttype": "const char *const", "constval": "IVRApplications_004"}
+ "constname": "IVRApplications_Version","consttype": "const char *const", "constval": "IVRApplications_005"}
,{
"constname": "IVRChaperone_Version","consttype": "const char *const", "constval": "IVRChaperone_003"}
,{
@@ -588,7 +586,7 @@
,{
"constname": "k_unMaxOverlayCount","consttype": "const uint32_t", "constval": "32"}
,{
- "constname": "IVROverlay_Version","consttype": "const char *const", "constval": "IVROverlay_010"}
+ "constname": "IVROverlay_Version","consttype": "const char *const", "constval": "IVROverlay_011"}
,{
"constname": "k_pch_Controller_Component_GDC2015","consttype": "const char *const", "constval": "gdc2015"}
,{
@@ -600,7 +598,7 @@
,{
"constname": "k_pch_Controller_Component_Status","consttype": "const char *const", "constval": "status"}
,{
- "constname": "IVRRenderModels_Version","consttype": "const char *const", "constval": "IVRRenderModels_004"}
+ "constname": "IVRRenderModels_Version","consttype": "const char *const", "constval": "IVRRenderModels_005"}
,{
"constname": "k_unNotificationTextMaxSize","consttype": "const uint32_t", "constval": "256"}
,{
@@ -656,6 +654,10 @@
,{
"constname": "k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float","consttype": "const char *const", "constval": "speakersForwardYawOffsetDegrees"}
,{
+ "constname": "k_pch_SteamVR_BaseStationPowerManagement_Bool","consttype": "const char *const", "constval": "basestationPowerManagement"}
+,{
+ "constname": "k_pch_SteamVR_NeverKillProcesses_Bool","consttype": "const char *const", "constval": "neverKillProcesses"}
+,{
"constname": "k_pch_Lighthouse_Section","consttype": "const char *const", "constval": "driver_lighthouse"}
,{
"constname": "k_pch_Lighthouse_DisableIMU_Bool","consttype": "const char *const", "constval": "disableimu"}
@@ -747,8 +749,6 @@
"constname": "k_pch_audio_OffRecordDevice_String","consttype": "const char *const", "constval": "offRecordDevice"}
,{
"constname": "k_pch_audio_VIVEHDMIGain","consttype": "const char *const", "constval": "viveHDMIGain"}
-,{
- "constname": "IVRTrackedCamera_Version","consttype": "const char *const", "constval": "IVRTrackedCamera_001"}
],
"structs":[{"struct": "vr::HmdMatrix34_t","fields": [
{ "fieldname": "m", "fieldtype": "float [3][4]"}]}
@@ -886,6 +886,9 @@
{ "fieldname": "gridWidth", "fieldtype": "float"},
{ "fieldname": "gridScale", "fieldtype": "float"},
{ "fieldname": "transform", "fieldtype": "struct vr::HmdMatrix44_t"}]}
+,{"struct": "vr::AppOverrideKeys_t","fields": [
+{ "fieldname": "pchKey", "fieldtype": "const char *"},
+{ "fieldname": "pchValue", "fieldtype": "const char *"}]}
,{"struct": "vr::Compositor_FrameTiming","fields": [
{ "fieldname": "m_nSize", "fieldtype": "uint32_t"},
{ "fieldname": "m_nFrameIndex", "fieldtype": "uint32_t"},
@@ -943,26 +946,6 @@
{ "fieldname": "width", "fieldtype": "int32_t"},
{ "fieldname": "height", "fieldtype": "int32_t"},
{ "fieldname": "depth", "fieldtype": "int32_t"}]}
-,{"struct": "vr::CameraVideoStreamFrame_t","fields": [
-{ "fieldname": "m_nStreamFormat", "fieldtype": "enum vr::ECameraVideoStreamFormat"},
-{ "fieldname": "m_nWidth", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nHeight", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nImageDataSize", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nFrameSequence", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nISPFrameTimeStamp", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nISPReferenceTimeStamp", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nSyncCounter", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nCamSyncEvents", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nExposureTime", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nBufferIndex", "fieldtype": "uint32_t"},
-{ "fieldname": "m_nBufferCount", "fieldtype": "uint32_t"},
-{ "fieldname": "m_flFrameElapsedTime", "fieldtype": "double"},
-{ "fieldname": "m_flFrameCaptureTime", "fieldtype": "double"},
-{ "fieldname": "m_nFrameCaptureTicks", "fieldtype": "uint64_t"},
-{ "fieldname": "m_bPoseIsValid", "fieldtype": "_Bool"},
-{ "fieldname": "m_matDeviceToAbsoluteTracking", "fieldtype": "vr::HmdMatrix34_t"},
-{ "fieldname": "m_Pad", "fieldtype": "float [4]"},
-{ "fieldname": "m_pImageData", "fieldtype": "void *"}]}
,{"struct": "vr::COpenVRContext","fields": [
{ "fieldname": "m_pVRSystem", "fieldtype": "class vr::IVRSystem *"},
{ "fieldname": "m_pVRChaperone", "fieldtype": "class vr::IVRChaperone *"},
@@ -1343,22 +1326,6 @@
"returntype": "void"
}
,{
- "classname": "vr::IVRSystem",
- "methodname": "PerformanceTestEnableCapture",
- "returntype": "void",
- "params": [
-{ "paramname": "bEnable" ,"paramtype": "bool"}
- ]
-}
-,{
- "classname": "vr::IVRSystem",
- "methodname": "PerformanceTestReportFidelityLevelChange",
- "returntype": "void",
- "params": [
-{ "paramname": "nFidelityLevel" ,"paramtype": "int"}
- ]
-}
-,{
"classname": "vr::IVRExtendedDisplay",
"methodname": "GetWindowBounds",
"returntype": "void",
@@ -1450,6 +1417,17 @@
}
,{
"classname": "vr::IVRApplications",
+ "methodname": "LaunchTemplateApplication",
+ "returntype": "vr::EVRApplicationError",
+ "params": [
+{ "paramname": "pchTemplateAppKey" ,"paramtype": "const char *"},
+{ "paramname": "pchNewAppKey" ,"paramtype": "const char *"},
+{ "paramname": "pKeys" ,"array_count": "unKeys" ,"paramtype": "const struct vr::AppOverrideKeys_t *"},
+{ "paramname": "unKeys" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRApplications",
"methodname": "LaunchDashboardOverlay",
"returntype": "vr::EVRApplicationError",
"params": [
@@ -2078,6 +2056,23 @@
}
,{
"classname": "vr::IVROverlay",
+ "methodname": "SetOverlayRenderingPid",
+ "returntype": "vr::EVROverlayError",
+ "params": [
+{ "paramname": "ulOverlayHandle" ,"paramtype": "vr::VROverlayHandle_t"},
+{ "paramname": "unPID" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVROverlay",
+ "methodname": "GetOverlayRenderingPid",
+ "returntype": "uint32_t",
+ "params": [
+{ "paramname": "ulOverlayHandle" ,"paramtype": "vr::VROverlayHandle_t"}
+ ]
+}
+,{
+ "classname": "vr::IVROverlay",
"methodname": "SetOverlayFlag",
"returntype": "vr::EVROverlayError",
"params": [
@@ -2460,6 +2455,30 @@
}
,{
"classname": "vr::IVROverlay",
+ "methodname": "GetOverlayTexture",
+ "returntype": "vr::EVROverlayError",
+ "params": [
+{ "paramname": "ulOverlayHandle" ,"paramtype": "vr::VROverlayHandle_t"},
+{ "paramname": "pNativeTextureHandle" ,"paramtype": "void **"},
+{ "paramname": "pNativeTextureRef" ,"paramtype": "void *"},
+{ "paramname": "pWidth" ,"paramtype": "uint32_t *"},
+{ "paramname": "pHeight" ,"paramtype": "uint32_t *"},
+{ "paramname": "pNativeFormat" ,"paramtype": "uint32_t *"},
+{ "paramname": "pAPI" ,"paramtype": "vr::EGraphicsAPIConvention *"},
+{ "paramname": "pColorSpace" ,"paramtype": "vr::EColorSpace *"}
+ ]
+}
+,{
+ "classname": "vr::IVROverlay",
+ "methodname": "ReleaseNativeOverlayHandle",
+ "returntype": "vr::EVROverlayError",
+ "params": [
+{ "paramname": "ulOverlayHandle" ,"paramtype": "vr::VROverlayHandle_t"},
+{ "paramname": "pNativeTextureHandle" ,"paramtype": "void *"}
+ ]
+}
+,{
+ "classname": "vr::IVROverlay",
"methodname": "CreateDashboardOverlay",
"returntype": "vr::EVROverlayError",
"params": [
@@ -2620,6 +2639,15 @@
}
,{
"classname": "vr::IVRRenderModels",
+ "methodname": "LoadIntoTextureD3D11_Async",
+ "returntype": "vr::EVRRenderModelError",
+ "params": [
+{ "paramname": "textureId" ,"paramtype": "vr::TextureID_t"},
+{ "paramname": "pDstTexture" ,"paramtype": "void *"}
+ ]
+}
+,{
+ "classname": "vr::IVRRenderModels",
"methodname": "FreeTextureD3D11",
"returntype": "void",
"params": [
@@ -2849,219 +2877,5 @@
{ "paramname": "peError" ,"paramtype": "vr::EVRSettingsError *"}
]
}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "HasCamera",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetCameraFirmwareDescription",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "pBuffer" ,"paramtype": "char *"},
-{ "paramname": "nBufferLen" ,"paramtype": "uint32_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetCameraFrameDimensions",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "nVideoStreamFormat" ,"paramtype": "vr::ECameraVideoStreamFormat"},
-{ "paramname": "pWidth" ,"paramtype": "uint32_t *"},
-{ "paramname": "pHeight" ,"paramtype": "uint32_t *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "SetCameraVideoStreamFormat",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "nVideoStreamFormat" ,"paramtype": "vr::ECameraVideoStreamFormat"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetCameraVideoStreamFormat",
- "returntype": "vr::ECameraVideoStreamFormat",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "EnableCameraForStreaming",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "bEnable" ,"paramtype": "bool"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "StartVideoStream",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "StopVideoStream",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "IsVideoStreamActive",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "pbPaused" ,"paramtype": "bool *"},
-{ "paramname": "pflElapsedTime" ,"paramtype": "float *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetVideoStreamFrame",
- "returntype": "const vr::CameraVideoStreamFrame_t *",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "ReleaseVideoStreamFrame",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "pFrameImage" ,"paramtype": "const vr::CameraVideoStreamFrame_t *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "SetAutoExposure",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "bEnable" ,"paramtype": "bool"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "PauseVideoStream",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "ResumeVideoStream",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetCameraDistortion",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "flInputU" ,"paramtype": "float"},
-{ "paramname": "flInputV" ,"paramtype": "float"},
-{ "paramname": "pflOutputU" ,"paramtype": "float *"},
-{ "paramname": "pflOutputV" ,"paramtype": "float *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetCameraProjection",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "flWidthPixels" ,"paramtype": "float"},
-{ "paramname": "flHeightPixels" ,"paramtype": "float"},
-{ "paramname": "flZNear" ,"paramtype": "float"},
-{ "paramname": "flZFar" ,"paramtype": "float"},
-{ "paramname": "pProjection" ,"paramtype": "vr::HmdMatrix44_t *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetRecommendedCameraUndistortion",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "pUndistortionWidthPixels" ,"paramtype": "uint32_t *"},
-{ "paramname": "pUndistortionHeightPixels" ,"paramtype": "uint32_t *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "SetCameraUndistortion",
- "returntype": "bool",
- "params": [
-{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "nUndistortionWidthPixels" ,"paramtype": "uint32_t"},
-{ "paramname": "nUndistortionHeightPixels" ,"paramtype": "uint32_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "RequestVideoServicesForTool",
- "returntype": "void"
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "ReleaseVideoServicesForTool",
- "returntype": "void"
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "GetVideoStreamFrameSharedTextureGL",
- "returntype": "bool",
- "params": [
-{ "paramname": "bUndistorted" ,"paramtype": "bool"},
-{ "paramname": "pglTextureId" ,"paramtype": "vr::glUInt_t *"},
-{ "paramname": "pglSharedTextureHandle" ,"paramtype": "vr::glSharedTextureHandle_t *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "ReleaseVideoStreamFrameSharedTextureGL",
- "returntype": "bool",
- "params": [
-{ "paramname": "glTextureId" ,"paramtype": "vr::glUInt_t"},
-{ "paramname": "glSharedTextureHandle" ,"paramtype": "vr::glSharedTextureHandle_t"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "LockSharedTextureGL",
- "returntype": "void",
- "params": [
-{ "paramname": "glSharedTextureHandle" ,"paramtype": "vr::glSharedTextureHandle_t"},
-{ "paramname": "pFrameImage" ,"paramtype": "vr::CameraVideoStreamFrame_t *"}
- ]
-}
-,{
- "classname": "vr::IVRTrackedCamera",
- "methodname": "UnlockSharedTextureGL",
- "returntype": "void",
- "params": [
-{ "paramname": "glSharedTextureHandle" ,"paramtype": "vr::glSharedTextureHandle_t"}
- ]
-}
]
} \ No newline at end of file
diff --git a/headers/openvr_capi.h b/headers/openvr_capi.h
index f557454..c01389c 100644
--- a/headers/openvr_capi.h
+++ b/headers/openvr_capi.h
@@ -59,23 +59,23 @@ static const unsigned int k_unTrackedDeviceIndexInvalid = 4294967295;
static const unsigned int k_unMaxPropertyStringSize = 32768;
static const unsigned int k_unControllerStateAxisCount = 5;
static const unsigned long k_ulOverlayHandleInvalid = 0;
-static const char * IVRSystem_Version = "IVRSystem_011";
+static const char * IVRSystem_Version = "IVRSystem_012";
static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
static const unsigned int k_unMaxApplicationKeyLength = 128;
-static const char * IVRApplications_Version = "IVRApplications_004";
+static const char * IVRApplications_Version = "IVRApplications_005";
static const char * IVRChaperone_Version = "IVRChaperone_003";
static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
static const char * IVRCompositor_Version = "IVRCompositor_013";
static const unsigned int k_unVROverlayMaxKeyLength = 128;
static const unsigned int k_unVROverlayMaxNameLength = 128;
static const unsigned int k_unMaxOverlayCount = 32;
-static const char * IVROverlay_Version = "IVROverlay_010";
+static const char * IVROverlay_Version = "IVROverlay_011";
static const char * k_pch_Controller_Component_GDC2015 = "gdc2015";
static const char * k_pch_Controller_Component_Base = "base";
static const char * k_pch_Controller_Component_Tip = "tip";
static const char * k_pch_Controller_Component_HandGrip = "handgrip";
static const char * k_pch_Controller_Component_Status = "status";
-static const char * IVRRenderModels_Version = "IVRRenderModels_004";
+static const char * IVRRenderModels_Version = "IVRRenderModels_005";
static const unsigned int k_unNotificationTextMaxSize = 256;
static const char * IVRNotifications_Version = "IVRNotifications_002";
static const unsigned int k_unMaxSettingsKeyLength = 128;
@@ -103,6 +103,8 @@ static const char * k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
static const char * k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
static const char * k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
static const char * k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
+static const char * k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
+static const char * k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
static const char * k_pch_Lighthouse_Section = "driver_lighthouse";
static const char * k_pch_Lighthouse_DisableIMU_Bool = "disableimu";
static const char * k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation";
@@ -149,7 +151,6 @@ static const char * k_pch_audio_OnRecordDevice_String = "onRecordDevice";
static const char * k_pch_audio_OffPlaybackDevice_String = "offPlaybackDevice";
static const char * k_pch_audio_OffRecordDevice_String = "offRecordDevice";
static const char * k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
-static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_001";
// OpenVR Enums
@@ -270,6 +271,7 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_DisplayBootloaderVersion_Uint64 = 2030,
ETrackedDeviceProperty_Prop_DisplayHardwareVersion_Uint64 = 2031,
ETrackedDeviceProperty_Prop_AudioFirmwareVersion_Uint64 = 2032,
+ ETrackedDeviceProperty_Prop_CameraCompatibilityMode_Int32 = 2033,
ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000,
ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001,
ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002,
@@ -364,6 +366,7 @@ typedef enum EVREventType
EVREventType_VREvent_HideKeyboard = 510,
EVREventType_VREvent_OverlayGamepadFocusGained = 511,
EVREventType_VREvent_OverlayGamepadFocusLost = 512,
+ EVREventType_VREvent_OverlaySharedTextureChanged = 513,
EVREventType_VREvent_Notification_Shown = 600,
EVREventType_VREvent_Notification_Hidden = 601,
EVREventType_VREvent_Notification_BeginInteraction = 602,
@@ -591,6 +594,7 @@ typedef enum EVRApplicationError
EVRApplicationError_VRApplicationError_LaunchInProgress = 111,
EVRApplicationError_VRApplicationError_OldApplicationQuitting = 112,
EVRApplicationError_VRApplicationError_TransitionAborted = 113,
+ EVRApplicationError_VRApplicationError_IsTemplate = 114,
EVRApplicationError_VRApplicationError_BufferTooSmall = 200,
EVRApplicationError_VRApplicationError_PropertyNotSet = 201,
EVRApplicationError_VRApplicationError_UnknownProperty = 202,
@@ -609,6 +613,8 @@ typedef enum EVRApplicationProperty
EVRApplicationProperty_VRApplicationProperty_ImagePath_String = 52,
EVRApplicationProperty_VRApplicationProperty_Source_String = 53,
EVRApplicationProperty_VRApplicationProperty_IsDashboardOverlay_Bool = 60,
+ EVRApplicationProperty_VRApplicationProperty_IsTemplate_Bool = 61,
+ EVRApplicationProperty_VRApplicationProperty_IsInstanced_Bool = 62,
EVRApplicationProperty_VRApplicationProperty_LastLaunchTime_Uint64 = 70,
} EVRApplicationProperty;
@@ -753,15 +759,6 @@ typedef enum EVRSettingsError
EVRSettingsError_VRSettingsError_ReadFailed = 3,
} EVRSettingsError;
-typedef enum ECameraVideoStreamFormat
-{
- ECameraVideoStreamFormat_CVS_FORMAT_UNKNOWN = 0,
- ECameraVideoStreamFormat_CVS_FORMAT_RAW10 = 1,
- ECameraVideoStreamFormat_CVS_FORMAT_NV12 = 2,
- ECameraVideoStreamFormat_CVS_FORMAT_RGB24 = 3,
- ECameraVideoStreamFormat_CVS_MAX_FORMATS = 4,
-} ECameraVideoStreamFormat;
-
// OpenVR typedefs
@@ -1006,6 +1003,12 @@ typedef struct Compositor_OverlaySettings
struct HmdMatrix44_t transform;
} Compositor_OverlaySettings;
+typedef struct AppOverrideKeys_t
+{
+ char * pchKey; // const char *
+ char * pchValue; // const char *
+} AppOverrideKeys_t;
+
typedef struct Compositor_FrameTiming
{
uint32_t m_nSize;
@@ -1090,29 +1093,6 @@ typedef struct NotificationBitmap_t
int32_t depth;
} NotificationBitmap_t;
-typedef struct CameraVideoStreamFrame_t
-{
- enum ECameraVideoStreamFormat m_nStreamFormat;
- uint32_t m_nWidth;
- uint32_t m_nHeight;
- uint32_t m_nImageDataSize;
- uint32_t m_nFrameSequence;
- uint32_t m_nISPFrameTimeStamp;
- uint32_t m_nISPReferenceTimeStamp;
- uint32_t m_nSyncCounter;
- uint32_t m_nCamSyncEvents;
- uint32_t m_nExposureTime;
- uint32_t m_nBufferIndex;
- uint32_t m_nBufferCount;
- double m_flFrameElapsedTime;
- double m_flFrameCaptureTime;
- uint64_t m_nFrameCaptureTicks;
- bool m_bPoseIsValid;
- HmdMatrix34_t m_matDeviceToAbsoluteTracking;
- float m_Pad[4]; //float[4]
- void * m_pImageData; // void *
-} CameraVideoStreamFrame_t;
-
typedef struct COpenVRContext
{
intptr_t m_pVRSystem; // class vr::IVRSystem *
@@ -1204,8 +1184,6 @@ struct VR_IVRSystem_FnTable
EVRFirmwareError (OPENVR_FNTABLE_CALLTYPE *PerformFirmwareUpdate)(TrackedDeviceIndex_t unDeviceIndex);
void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_Exiting)();
void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_UserPrompt)();
- void (OPENVR_FNTABLE_CALLTYPE *PerformanceTestEnableCapture)(bool bEnable);
- void (OPENVR_FNTABLE_CALLTYPE *PerformanceTestReportFidelityLevelChange)(int nFidelityLevel);
};
struct VR_IVRExtendedDisplay_FnTable
@@ -1224,6 +1202,7 @@ struct VR_IVRApplications_FnTable
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetApplicationKeyByIndex)(uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen);
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetApplicationKeyByProcessId)(uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen);
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchApplication)(char * pchAppKey);
+ EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchTemplateApplication)(char * pchTemplateAppKey, char * pchNewAppKey, struct AppOverrideKeys_t * pKeys, uint32_t unKeys);
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchDashboardOverlay)(char * pchAppKey);
bool (OPENVR_FNTABLE_CALLTYPE *CancelApplicationLaunch)(char * pchAppKey);
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *IdentifyApplication)(uint32_t unProcessId, char * pchAppKey);
@@ -1320,6 +1299,8 @@ struct VR_IVROverlay_FnTable
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayName)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayImageData)(VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight);
char * (OPENVR_FNTABLE_CALLTYPE *GetOverlayErrorNameFromEnum)(EVROverlayError error);
+ EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRenderingPid)(VROverlayHandle_t ulOverlayHandle, uint32_t unPID);
+ uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayRenderingPid)(VROverlayHandle_t ulOverlayHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayFlag)(VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayFlag)(VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayColor)(VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue);
@@ -1361,6 +1342,8 @@ struct VR_IVROverlay_FnTable
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ClearOverlayTexture)(VROverlayHandle_t ulOverlayHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRaw)(VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayFromFile)(VROverlayHandle_t ulOverlayHandle, char * pchFilePath);
+ EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTexture)(VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, EGraphicsAPIConvention * pAPI, EColorSpace * pColorSpace);
+ EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ReleaseNativeOverlayHandle)(VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateDashboardOverlay)(char * pchOverlayKey, char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle);
bool (OPENVR_FNTABLE_CALLTYPE *IsDashboardVisible)();
bool (OPENVR_FNTABLE_CALLTYPE *IsActiveDashboardOverlay)(VROverlayHandle_t ulOverlayHandle);
@@ -1383,6 +1366,7 @@ struct VR_IVRRenderModels_FnTable
EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadTexture_Async)(TextureID_t textureId, struct RenderModel_TextureMap_t ** ppTexture);
void (OPENVR_FNTABLE_CALLTYPE *FreeTexture)(struct RenderModel_TextureMap_t * pTexture);
EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadTextureD3D11_Async)(TextureID_t textureId, void * pD3D11Device, void ** ppD3D11Texture2D);
+ EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadIntoTextureD3D11_Async)(TextureID_t textureId, void * pDstTexture);
void (OPENVR_FNTABLE_CALLTYPE *FreeTextureD3D11)(void * pD3D11Texture2D);
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelName)(uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen);
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelCount)();
@@ -1416,34 +1400,6 @@ struct VR_IVRSettings_FnTable
void (OPENVR_FNTABLE_CALLTYPE *RemoveKeyInSection)(char * pchSection, char * pchSettingsKey, EVRSettingsError * peError);
};
-struct VR_IVRTrackedCamera_FnTable
-{
- bool (OPENVR_FNTABLE_CALLTYPE *HasCamera)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *GetCameraFirmwareDescription)(TrackedDeviceIndex_t nDeviceIndex, char * pBuffer, uint32_t nBufferLen);
- bool (OPENVR_FNTABLE_CALLTYPE *GetCameraFrameDimensions)(TrackedDeviceIndex_t nDeviceIndex, ECameraVideoStreamFormat nVideoStreamFormat, uint32_t * pWidth, uint32_t * pHeight);
- bool (OPENVR_FNTABLE_CALLTYPE *SetCameraVideoStreamFormat)(TrackedDeviceIndex_t nDeviceIndex, ECameraVideoStreamFormat nVideoStreamFormat);
- ECameraVideoStreamFormat (OPENVR_FNTABLE_CALLTYPE *GetCameraVideoStreamFormat)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *EnableCameraForStreaming)(TrackedDeviceIndex_t nDeviceIndex, bool bEnable);
- bool (OPENVR_FNTABLE_CALLTYPE *StartVideoStream)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *StopVideoStream)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *IsVideoStreamActive)(TrackedDeviceIndex_t nDeviceIndex, bool * pbPaused, float * pflElapsedTime);
- CameraVideoStreamFrame_t * (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamFrame)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoStreamFrame)(TrackedDeviceIndex_t nDeviceIndex, CameraVideoStreamFrame_t * pFrameImage);
- bool (OPENVR_FNTABLE_CALLTYPE *SetAutoExposure)(TrackedDeviceIndex_t nDeviceIndex, bool bEnable);
- bool (OPENVR_FNTABLE_CALLTYPE *PauseVideoStream)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *ResumeVideoStream)(TrackedDeviceIndex_t nDeviceIndex);
- bool (OPENVR_FNTABLE_CALLTYPE *GetCameraDistortion)(TrackedDeviceIndex_t nDeviceIndex, float flInputU, float flInputV, float * pflOutputU, float * pflOutputV);
- bool (OPENVR_FNTABLE_CALLTYPE *GetCameraProjection)(TrackedDeviceIndex_t nDeviceIndex, float flWidthPixels, float flHeightPixels, float flZNear, float flZFar, HmdMatrix44_t * pProjection);
- bool (OPENVR_FNTABLE_CALLTYPE *GetRecommendedCameraUndistortion)(TrackedDeviceIndex_t nDeviceIndex, uint32_t * pUndistortionWidthPixels, uint32_t * pUndistortionHeightPixels);
- bool (OPENVR_FNTABLE_CALLTYPE *SetCameraUndistortion)(TrackedDeviceIndex_t nDeviceIndex, uint32_t nUndistortionWidthPixels, uint32_t nUndistortionHeightPixels);
- void (OPENVR_FNTABLE_CALLTYPE *RequestVideoServicesForTool)();
- void (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoServicesForTool)();
- bool (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamFrameSharedTextureGL)(bool bUndistorted, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle);
- bool (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoStreamFrameSharedTextureGL)(glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle);
- void (OPENVR_FNTABLE_CALLTYPE *LockSharedTextureGL)(glSharedTextureHandle_t glSharedTextureHandle, CameraVideoStreamFrame_t * pFrameImage);
- void (OPENVR_FNTABLE_CALLTYPE *UnlockSharedTextureGL)(glSharedTextureHandle_t glSharedTextureHandle);
-};
-
#if 0
// Global entry points
diff --git a/headers/openvr_driver.h b/headers/openvr_driver.h
index 370bea9..ea7f8d1 100644
--- a/headers/openvr_driver.h
+++ b/headers/openvr_driver.h
@@ -261,6 +261,7 @@ enum ETrackedDeviceProperty
Prop_DisplayBootloaderVersion_Uint64 = 2030,
Prop_DisplayHardwareVersion_Uint64 = 2031,
Prop_AudioFirmwareVersion_Uint64 = 2032,
+ Prop_CameraCompatibilityMode_Int32 = 2033,
// Properties that are unique to TrackedDeviceClass_Controller
Prop_AttachedDeviceId_String = 3000,
@@ -391,6 +392,7 @@ enum EVREventType
VREvent_HideKeyboard = 510, // Sent to keyboard renderer in the dashboard to hide it
VREvent_OverlayGamepadFocusGained = 511, // Sent to an overlay when IVROverlay::SetFocusOverlay is called on it
VREvent_OverlayGamepadFocusLost = 512, // Send to an overlay when it previously had focus and IVROverlay::SetFocusOverlay is called on something else
+ VREvent_OverlaySharedTextureChanged = 513,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -916,6 +918,24 @@ enum ECameraVideoStreamFormat
CVS_MAX_FORMATS
};
+enum ECameraCompatibilityMode
+{
+ CAMERA_COMPAT_MODE_BULK_DEFAULT = 0,
+ CAMERA_COMPAT_MODE_BULK_64K_DMA,
+ CAMERA_COMPAT_MODE_BULK_16K_DMA,
+ CAMERA_COMPAT_MODE_BULK_8K_DMA,
+ CAMERA_COMPAT_MODE_ISO_52FPS,
+ CAMERA_COMPAT_MODE_ISO_50FPS,
+ CAMERA_COMPAT_MODE_ISO_48FPS,
+ CAMERA_COMPAT_MODE_ISO_46FPS,
+ CAMERA_COMPAT_MODE_ISO_44FPS,
+ CAMERA_COMPAT_MODE_ISO_42FPS,
+ CAMERA_COMPAT_MODE_ISO_40FPS,
+ CAMERA_COMPAT_MODE_ISO_35FPS,
+ CAMERA_COMPAT_MODE_ISO_30FPS,
+ MAX_CAMERA_COMPAT_MODES
+};
+
#ifdef _MSC_VER
#define VR_CAMERA_DECL_ALIGN( x ) __declspec( align( x ) )
#else
@@ -933,23 +953,27 @@ VR_CAMERA_DECL_ALIGN( 8 ) struct CameraVideoStreamFrame_t
uint32_t m_nFrameSequence; // Starts from 0 when stream starts.
+ uint32_t m_nBufferIndex; // Identifies which buffer the image data is hosted
+ uint32_t m_nBufferCount; // Total number of configured buffers
+
+ uint32_t m_nExposureTime;
+
uint32_t m_nISPFrameTimeStamp; // Driver provided time stamp per driver centric time base
uint32_t m_nISPReferenceTimeStamp;
uint32_t m_nSyncCounter;
uint32_t m_nCamSyncEvents;
+ double m_flReferenceCamSyncTime;
- uint32_t m_nExposureTime;
-
- uint32_t m_nBufferIndex; // Identifies which buffer the image data is hosted
- uint32_t m_nBufferCount; // Total number of configured buffers
-
- double m_flFrameElapsedTime; // Starts from 0 when stream starts. In seconds.
+ double m_flFrameElapsedTime; // Starts from 0 when stream starts. In seconds.
+ double m_flFrameDeliveryRate;
- double m_flFrameCaptureTime; // Relative to when the frame was exposed/captured.
- uint64_t m_nFrameCaptureTicks;
+ double m_flFrameCaptureTime_DriverAbsolute; // In USB time, via AuxEvent
+ double m_flFrameCaptureTime_ServerRelative; // In System time within the server
+ uint64_t m_nFrameCaptureTicks_ServerAbsolute; // In system ticks within the server
+ double m_flFrameCaptureTime_ClientRelative; // At the client, relative to when the frame was exposed/captured.
- bool m_bPoseIsValid; // Supplied by HMD layer when used as a tracked camera
+ bool m_bPoseIsValid; // Supplied by HMD layer when used as a tracked camera
vr::HmdMatrix34_t m_matDeviceToAbsoluteTracking;
float m_Pad[4];
@@ -1024,6 +1048,8 @@ namespace vr
static const char * const k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
static const char * const k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
static const char * const k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
+ static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
+ static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
//-----------------------------------------------------------------------------
// lighthouse keys
@@ -1348,6 +1374,15 @@ namespace vr
// ivrcameracomponent.h
namespace vr
{
+
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ class ICameraVideoSinkCallback
+ {
+ public:
+ virtual void OnCameraVideoSinkCallback() = 0;
+ };
+
// ----------------------------------------------------------------------------------------------
// Purpose: The camera on a single tracked device
// ----------------------------------------------------------------------------------------------
@@ -1380,14 +1415,12 @@ namespace vr
virtual bool SetCameraUndistortion( uint32_t nUndistortionWidthPixels, uint32_t nUndistortionHeightPixels ) = 0;
virtual bool GetCameraFirmwareVersion( uint64_t *pFirmwareVersion ) = 0;
virtual bool SetFrameRate( int nISPFrameRate, int nSensorFrameRate ) = 0;
-
-
+ virtual bool SetCameraVideoSinkCallback( vr::ICameraVideoSinkCallback *pCameraVideoSinkCallback ) = 0;
+ virtual bool GetCameraCompatibilityMode( vr::ECameraCompatibilityMode *pCameraCompatibilityMode ) = 0;
+ virtual bool SetCameraCompatibilityMode( vr::ECameraCompatibilityMode nCameraCompatibilityMode ) = 0;
};
-
-
static const char *IVRCameraComponent_Version = "IVRCameraComponent_001";
-
}
// itrackeddevicedriverprovider.h
namespace vr
diff --git a/lib/linux64/libopenvr_api.so b/lib/linux64/libopenvr_api.so
index 93c425a..93ca97c 100755
--- a/lib/linux64/libopenvr_api.so
+++ b/lib/linux64/libopenvr_api.so
Binary files differ
diff --git a/lib/osx32/libopenvr_api.dylib b/lib/osx32/libopenvr_api.dylib
index cbc9582..8dc663b 100644
--- a/lib/osx32/libopenvr_api.dylib
+++ b/lib/osx32/libopenvr_api.dylib
Binary files differ
diff --git a/lib/win32/openvr_api.lib b/lib/win32/openvr_api.lib
index fcdb7e5..f47d0df 100644
--- a/lib/win32/openvr_api.lib
+++ b/lib/win32/openvr_api.lib
Binary files differ
diff --git a/lib/win64/openvr_api.lib b/lib/win64/openvr_api.lib
index cafb998..9383f30 100644
--- a/lib/win64/openvr_api.lib
+++ b/lib/win64/openvr_api.lib
Binary files differ
diff --git a/samples/bin/win32/openvr_api.dll b/samples/bin/win32/openvr_api.dll
index 1e13dc9..0496bef 100644
--- a/samples/bin/win32/openvr_api.dll
+++ b/samples/bin/win32/openvr_api.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Core.dll b/samples/bin/win64/Qt5Core.dll
new file mode 100644
index 0000000..5751e35
--- /dev/null
+++ b/samples/bin/win64/Qt5Core.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Cored.dll b/samples/bin/win64/Qt5Cored.dll
new file mode 100644
index 0000000..2dabe3e
--- /dev/null
+++ b/samples/bin/win64/Qt5Cored.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Gui.dll b/samples/bin/win64/Qt5Gui.dll
new file mode 100644
index 0000000..eff7c01
--- /dev/null
+++ b/samples/bin/win64/Qt5Gui.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Guid.dll b/samples/bin/win64/Qt5Guid.dll
new file mode 100644
index 0000000..0c13e9a
--- /dev/null
+++ b/samples/bin/win64/Qt5Guid.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5OpenGL.dll b/samples/bin/win64/Qt5OpenGL.dll
new file mode 100644
index 0000000..b914eb4
--- /dev/null
+++ b/samples/bin/win64/Qt5OpenGL.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5OpenGLd.dll b/samples/bin/win64/Qt5OpenGLd.dll
new file mode 100644
index 0000000..0ed46a0
--- /dev/null
+++ b/samples/bin/win64/Qt5OpenGLd.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Qml.dll b/samples/bin/win64/Qt5Qml.dll
new file mode 100644
index 0000000..6c44959
--- /dev/null
+++ b/samples/bin/win64/Qt5Qml.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Qmld.dll b/samples/bin/win64/Qt5Qmld.dll
new file mode 100644
index 0000000..423a841
--- /dev/null
+++ b/samples/bin/win64/Qt5Qmld.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Widgets.dll b/samples/bin/win64/Qt5Widgets.dll
new file mode 100644
index 0000000..8a51ae9
--- /dev/null
+++ b/samples/bin/win64/Qt5Widgets.dll
Binary files differ
diff --git a/samples/bin/win64/Qt5Widgetsd.dll b/samples/bin/win64/Qt5Widgetsd.dll
new file mode 100644
index 0000000..fa0588a
--- /dev/null
+++ b/samples/bin/win64/Qt5Widgetsd.dll
Binary files differ
diff --git a/samples/bin/win64/icudt54.dll b/samples/bin/win64/icudt54.dll
new file mode 100644
index 0000000..82db269
--- /dev/null
+++ b/samples/bin/win64/icudt54.dll
Binary files differ
diff --git a/samples/bin/win64/icuin54.dll b/samples/bin/win64/icuin54.dll
new file mode 100644
index 0000000..6e533ef
--- /dev/null
+++ b/samples/bin/win64/icuin54.dll
Binary files differ
diff --git a/samples/bin/win64/icuuc54.dll b/samples/bin/win64/icuuc54.dll
new file mode 100644
index 0000000..9240a3e
--- /dev/null
+++ b/samples/bin/win64/icuuc54.dll
Binary files differ
diff --git a/samples/bin/win64/openvr_api.dll b/samples/bin/win64/openvr_api.dll
index fe3be9b..940f39d 100644
--- a/samples/bin/win64/openvr_api.dll
+++ b/samples/bin/win64/openvr_api.dll
Binary files differ
diff --git a/samples/helloworldoverlay/openvroverlaycontroller.cpp b/samples/helloworldoverlay/openvroverlaycontroller.cpp
index f447b81..d099b25 100644
--- a/samples/helloworldoverlay/openvroverlaycontroller.cpp
+++ b/samples/helloworldoverlay/openvroverlaycontroller.cpp
@@ -135,11 +135,6 @@ bool COpenVROverlayController::Init()
vr::VROverlay()->SetOverlayWidthInMeters( m_ulOverlayHandle, 1.5f );
vr::VROverlay()->SetOverlayInputMethod( m_ulOverlayHandle, vr::VROverlayInputMethod_Mouse );
- // flip V to account for GL vs. OpenVR texture origin
- vr::VRTextureBounds_t overlayTextureBounds = { 0, 1.f, 1.f, 0.f };
- vr::VROverlay()->SetOverlayTextureBounds( m_ulOverlayHandle, &overlayTextureBounds );
- vr::VROverlay()->SetOverlayTextureBounds( m_ulOverlayThumbnailHandle, &overlayTextureBounds );
-
m_pPumpEventsTimer = new QTimer( this );
connect(m_pPumpEventsTimer, SIGNAL( timeout() ), this, SLOT( OnTimeoutPumpEvents() ) );
m_pPumpEventsTimer->setInterval( 20 );