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:
Diffstat (limited to 'codegen/openvr_interop.cs.py')
-rwxr-xr-xcodegen/openvr_interop.cs.py597
1 files changed, 597 insertions, 0 deletions
diff --git a/codegen/openvr_interop.cs.py b/codegen/openvr_interop.cs.py
new file mode 100755
index 0000000..cfabeb2
--- /dev/null
+++ b/codegen/openvr_interop.cs.py
@@ -0,0 +1,597 @@
+import sys
+import api_shared
+calculateinteropmethodname = api_shared.calculateinteropmethodname
+
+print ("""//======= Copyright (c) Valve Corporation, All rights reserved. ===============
+//
+// Purpose: This file contains C#/managed code bindings for the OpenVR interfaces
+// This file is auto-generated, do not edit it.
+//
+//=============================================================================
+#if !OPENVR_XR_API
+
+using System;
+using System.Runtime.InteropServices;
+using Valve.VR;
+
+#if UNITY_5_3_OR_NEWER
+using UnityEngine;
+#endif
+
+namespace Valve.VR
+{
+""")
+
+
+
+data = api_shared.loadfile('_dynamic_openvr_api.json', 'vr')
+converttype = api_shared.converttype
+structlist = api_shared.structlist
+typedeflist = api_shared.typedeflist
+enumlist = api_shared.enumlist
+lastmethod = ''
+
+
+############## define Csharp interfaces ######################
+
+api_shared.outputinterfaces('vr', data)
+
+############ define csharp classes
+
+api_shared.outputclasses('vr', data)
+
+print("}\n\n");
+
+# Output the OpenVRInterop class
+print('public class OpenVRInterop\n{')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern uint InitInternal(ref EVRInitError peError, EVRApplicationType eApplicationType);')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal2", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern uint InitInternal2(ref EVRInitError peError, EVRApplicationType eApplicationType,[In, MarshalAs(UnmanagedType.LPStr)] string pStartupInfo);')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_ShutdownInternal", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern void ShutdownInternal();')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_IsHmdPresent", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern bool IsHmdPresent();')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_IsRuntimeInstalled", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern bool IsRuntimeInstalled();')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_RuntimePath", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern string RuntimePath();')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_GetRuntimePath", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern bool GetRuntimePath(System.Text.StringBuilder pchPathBuffer, uint unBufferSize, ref uint punRequiredBufferSize);')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_GetStringForHmdError", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern IntPtr GetStringForHmdError(EVRInitError error);')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_GetGenericInterface", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern IntPtr GetGenericInterface([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion, ref EVRInitError peError);')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_IsInterfaceVersionValid", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern bool IsInterfaceVersionValid([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion);')
+print('[DllImportAttribute("openvr_api", EntryPoint = "VR_GetInitToken", CallingConvention = CallingConvention.Cdecl)]')
+print('internal static extern uint GetInitToken();')
+print("}\n\n");
+
+api_shared.outputenums('vr', data)
+
+print("""
+ [StructLayout(LayoutKind.Explicit)] public struct VREvent_Data_t
+ {
+ [FieldOffset(0)] public VREvent_Reserved_t reserved;
+ [FieldOffset(0)] public VREvent_Controller_t controller;
+ [FieldOffset(0)] public VREvent_Mouse_t mouse;
+ [FieldOffset(0)] public VREvent_Scroll_t scroll;
+ [FieldOffset(0)] public VREvent_Process_t process;
+ [FieldOffset(0)] public VREvent_Notification_t notification;
+ [FieldOffset(0)] public VREvent_Overlay_t overlay;
+ [FieldOffset(0)] public VREvent_Status_t status;
+ [FieldOffset(0)] public VREvent_Ipd_t ipd;
+ [FieldOffset(0)] public VREvent_Chaperone_t chaperone;
+ [FieldOffset(0)] public VREvent_PerformanceTest_t performanceTest;
+ [FieldOffset(0)] public VREvent_TouchPadMove_t touchPadMove;
+ [FieldOffset(0)] public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset;
+ [FieldOffset(0)] public VREvent_Screenshot_t screenshot;
+ [FieldOffset(0)] public VREvent_ScreenshotProgress_t screenshotProgress;
+ [FieldOffset(0)] public VREvent_ApplicationLaunch_t applicationLaunch;
+ [FieldOffset(0)] public VREvent_EditingCameraSurface_t cameraSurface;
+ [FieldOffset(0)] public VREvent_MessageOverlay_t messageOverlay;
+ [FieldOffset(0)] public VREvent_Property_t property;
+ [FieldOffset(0)] public VREvent_HapticVibration_t hapticVibration;
+ [FieldOffset(0)] public VREvent_WebConsole_t webConsole;
+ [FieldOffset(0)] public VREvent_InputBindingLoad_t inputBinding;
+ [FieldOffset(0)] public VREvent_SpatialAnchor_t spatialAnchor;
+ [FieldOffset(0)] public VREvent_InputActionManifestLoad_t actionManifest;
+ [FieldOffset(0)] public VREvent_ProgressUpdate_t progressUpdate;
+ [FieldOffset(0)] public VREvent_ShowUI_t showUi;
+ [FieldOffset(0)] public VREvent_ShowDevTools_t showDevTools;
+ [FieldOffset(0)] public VREvent_HDCPError_t hdcpError;
+ [FieldOffset(0)] public VREvent_Keyboard_t keyboard; // This has to be at the end due to a mono bug
+ }
+ """)
+
+print("""
+ [StructLayout(LayoutKind.Explicit)] public struct VROverlayIntersectionMaskPrimitive_Data_t
+ {
+ [FieldOffset(0)] public IntersectionMaskRectangle_t m_Rectangle;
+ [FieldOffset(0)] public IntersectionMaskCircle_t m_Circle;
+ }
+ """)
+
+api_shared.outputstructs('vr', data)
+
+
+# Output the OpenVR class
+print('\npublic class OpenVR\n{')
+print("""
+ public static uint InitInternal(ref EVRInitError peError, EVRApplicationType eApplicationType)
+ {
+ return OpenVRInterop.InitInternal(ref peError, eApplicationType);
+ }
+
+ public static uint InitInternal2(ref EVRInitError peError, EVRApplicationType eApplicationType, string pchStartupInfo)
+ {
+ return OpenVRInterop.InitInternal2(ref peError, eApplicationType, pchStartupInfo);
+ }
+
+ public static void ShutdownInternal()
+ {
+ OpenVRInterop.ShutdownInternal();
+ }
+
+ public static bool IsHmdPresent()
+ {
+ return OpenVRInterop.IsHmdPresent();
+ }
+
+ public static bool IsRuntimeInstalled()
+ {
+ return OpenVRInterop.IsRuntimeInstalled();
+ }
+
+ public static string RuntimePath()
+ {
+ try
+ {
+ uint pathSize = 512;
+ uint requiredPathSize = 512;
+ System.Text.StringBuilder path = new System.Text.StringBuilder((int)pathSize);
+ bool success = OpenVRInterop.GetRuntimePath(path, pathSize, ref requiredPathSize);
+ if (success == false)
+ {
+ return null;
+ }
+
+ return path.ToString();
+ } catch
+ {
+ return OpenVRInterop.RuntimePath(); //this api is deprecated but here to support older unity versions
+ }
+ }
+
+ public static string GetStringForHmdError(EVRInitError error)
+ {
+ return Marshal.PtrToStringAnsi(OpenVRInterop.GetStringForHmdError(error));
+ }
+
+ public static IntPtr GetGenericInterface(string pchInterfaceVersion, ref EVRInitError peError)
+ {
+ return OpenVRInterop.GetGenericInterface(pchInterfaceVersion, ref peError);
+ }
+
+ public static bool IsInterfaceVersionValid(string pchInterfaceVersion)
+ {
+ return OpenVRInterop.IsInterfaceVersionValid(pchInterfaceVersion);
+ }
+
+ public static uint GetInitToken()
+ {
+ return OpenVRInterop.GetInitToken();
+ }
+""")
+
+########
+# Output constants into OpenVR class
+
+for const in data['consts']:
+ if(len(const) > 0):
+ consttype = converttype(const['consttype'])
+ constval = const['constval']
+ if(consttype == 'string'):
+ constval = '\"' + constval + '\"'
+ print('public const '+consttype+' '+const['constname']+' = '+constval+';')
+
+########
+# Output static constructors into OpenVR class
+#lastclass = ''
+#lastmethod = ''
+#for method in data['methods']:
+# if (len(method) > 0):
+# returntype = converttype(method['returntype'])
+#
+# methodname = method['methodname']
+# if(methodname == lastmethod):
+# methodname = methodname + `count`
+# count = count + 1
+# else:
+# count = 0
+# lastmethod = method['methodname']
+#
+# interfacename = method['classname']
+# namespace = api_shared.getnamespace(interfacename)
+# if(interfacename.find('::') == -1):
+# classname= 'C' + interfacename[1:]
+# else:
+# interfacename = interfacename[interfacename.find('::') + 2:]
+# classname = 'C' + interfacename[1:]
+# if(namespace != ''):
+# if(interfacename != lastclass):
+# shortname = interfacename[1:]
+# print('public static '+interfacename+' '+shortname+'()\n{\nreturn new '+classname+'(OpenVRInterop.'+shortname+'());\n}\n')
+# lastclass = interfacename
+
+########
+# Output interface wrappers into OpenVR class
+
+print("""
+ static uint VRToken { get; set; }
+
+ const string FnTable_Prefix = "FnTable:";
+
+ class COpenVRContext
+ {
+ public COpenVRContext() { Clear(); }
+
+ public void Clear()
+ {
+ m_pVRSystem = null;
+ m_pVRChaperone = null;
+ m_pVRChaperoneSetup = null;
+ m_pVRCompositor = null;
+ m_pVRHeadsetView = null;
+ m_pVROverlay = null;
+ m_pVROverlayView = null;
+ m_pVRRenderModels = null;
+ m_pVRExtendedDisplay = null;
+ m_pVRSettings = null;
+ m_pVRApplications = null;
+ m_pVRScreenshots = null;
+ m_pVRTrackedCamera = null;
+ m_pVRInput = null;
+ m_pVRIOBuffer = null;
+ m_pVRSpatialAnchors = null;
+ m_pVRNotifications = null;
+ m_pVRDebug = null;
+ }
+
+ void CheckClear()
+ {
+ if (VRToken != GetInitToken())
+ {
+ Clear();
+ VRToken = GetInitToken();
+ }
+ }
+
+ public CVRSystem VRSystem()
+ {
+ CheckClear();
+ if (m_pVRSystem == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRSystem_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRSystem = new CVRSystem(pInterface);
+ }
+ return m_pVRSystem;
+ }
+
+ public CVRChaperone VRChaperone()
+ {
+ CheckClear();
+ if (m_pVRChaperone == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRChaperone_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRChaperone = new CVRChaperone(pInterface);
+ }
+ return m_pVRChaperone;
+ }
+
+ public CVRChaperoneSetup VRChaperoneSetup()
+ {
+ CheckClear();
+ if (m_pVRChaperoneSetup == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRChaperoneSetup_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRChaperoneSetup = new CVRChaperoneSetup(pInterface);
+ }
+ return m_pVRChaperoneSetup;
+ }
+
+ public CVRCompositor VRCompositor()
+ {
+ CheckClear();
+ if (m_pVRCompositor == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRCompositor_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRCompositor = new CVRCompositor(pInterface);
+ }
+ return m_pVRCompositor;
+ }
+
+ public CVRHeadsetView VRHeadsetView()
+ {
+ CheckClear();
+ if (m_pVRHeadsetView == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRHeadsetView_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRHeadsetView = new CVRHeadsetView(pInterface);
+ }
+ return m_pVRHeadsetView;
+ }
+
+ public CVROverlay VROverlay()
+ {
+ CheckClear();
+ if (m_pVROverlay == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVROverlay_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVROverlay = new CVROverlay(pInterface);
+ }
+ return m_pVROverlay;
+ }
+
+ public CVROverlayView VROverlayView()
+ {
+ CheckClear();
+ if (m_pVROverlayView == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVROverlayView_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVROverlayView = new CVROverlayView(pInterface);
+ }
+ return m_pVROverlayView;
+ }
+
+ public CVRRenderModels VRRenderModels()
+ {
+ CheckClear();
+ if (m_pVRRenderModels == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRRenderModels_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRRenderModels = new CVRRenderModels(pInterface);
+ }
+ return m_pVRRenderModels;
+ }
+
+ public CVRExtendedDisplay VRExtendedDisplay()
+ {
+ CheckClear();
+ if (m_pVRExtendedDisplay == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRExtendedDisplay_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRExtendedDisplay = new CVRExtendedDisplay(pInterface);
+ }
+ return m_pVRExtendedDisplay;
+ }
+
+ public CVRSettings VRSettings()
+ {
+ CheckClear();
+ if (m_pVRSettings == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRSettings_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRSettings = new CVRSettings(pInterface);
+ }
+ return m_pVRSettings;
+ }
+
+ public CVRApplications VRApplications()
+ {
+ CheckClear();
+ if (m_pVRApplications == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRApplications_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRApplications = new CVRApplications(pInterface);
+ }
+ return m_pVRApplications;
+ }
+
+ public CVRScreenshots VRScreenshots()
+ {
+ CheckClear();
+ if (m_pVRScreenshots == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRScreenshots_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRScreenshots = new CVRScreenshots(pInterface);
+ }
+ return m_pVRScreenshots;
+ }
+
+ public CVRTrackedCamera VRTrackedCamera()
+ {
+ CheckClear();
+ if (m_pVRTrackedCamera == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRTrackedCamera_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRTrackedCamera = new CVRTrackedCamera(pInterface);
+ }
+ return m_pVRTrackedCamera;
+ }
+
+ public CVRInput VRInput()
+ {
+ CheckClear();
+ if (m_pVRInput == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRInput_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRInput = new CVRInput(pInterface);
+ }
+ return m_pVRInput;
+ }
+
+ public CVRIOBuffer VRIOBuffer()
+ {
+ CheckClear();
+ if (m_pVRIOBuffer == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRIOBuffer_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRIOBuffer = new CVRIOBuffer(pInterface);
+ }
+ return m_pVRIOBuffer;
+ }
+
+ public CVRSpatialAnchors VRSpatialAnchors()
+ {
+ CheckClear();
+ if (m_pVRSpatialAnchors == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRSpatialAnchors_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRSpatialAnchors = new CVRSpatialAnchors(pInterface);
+ }
+ return m_pVRSpatialAnchors;
+ }
+
+ public CVRDebug VRDebug()
+ {
+ CheckClear();
+ if (m_pVRDebug == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRDebug_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRDebug = new CVRDebug(pInterface);
+ }
+ return m_pVRDebug;
+ }
+
+ public CVRNotifications VRNotifications()
+ {
+ CheckClear();
+ if (m_pVRNotifications == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRNotifications_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRNotifications = new CVRNotifications(pInterface);
+ }
+ return m_pVRNotifications;
+ }
+
+ private CVRSystem m_pVRSystem;
+ private CVRChaperone m_pVRChaperone;
+ private CVRChaperoneSetup m_pVRChaperoneSetup;
+ private CVRCompositor m_pVRCompositor;
+ private CVRHeadsetView m_pVRHeadsetView;
+ private CVROverlay m_pVROverlay;
+ private CVROverlayView m_pVROverlayView;
+ private CVRRenderModels m_pVRRenderModels;
+ private CVRExtendedDisplay m_pVRExtendedDisplay;
+ private CVRSettings m_pVRSettings;
+ private CVRApplications m_pVRApplications;
+ private CVRScreenshots m_pVRScreenshots;
+ private CVRTrackedCamera m_pVRTrackedCamera;
+ private CVRInput m_pVRInput;
+ private CVRIOBuffer m_pVRIOBuffer;
+ private CVRSpatialAnchors m_pVRSpatialAnchors;
+ private CVRNotifications m_pVRNotifications;
+ private CVRDebug m_pVRDebug;
+ };
+
+ private static COpenVRContext _OpenVRInternal_ModuleContext = null;
+ static COpenVRContext OpenVRInternal_ModuleContext
+ {
+ get
+ {
+ if (_OpenVRInternal_ModuleContext == null)
+ _OpenVRInternal_ModuleContext = new COpenVRContext();
+ return _OpenVRInternal_ModuleContext;
+ }
+ }
+
+ public static CVRSystem System { get { return OpenVRInternal_ModuleContext.VRSystem(); } }
+ public static CVRChaperone Chaperone { get { return OpenVRInternal_ModuleContext.VRChaperone(); } }
+ public static CVRChaperoneSetup ChaperoneSetup { get { return OpenVRInternal_ModuleContext.VRChaperoneSetup(); } }
+ public static CVRCompositor Compositor { get { return OpenVRInternal_ModuleContext.VRCompositor(); } }
+ public static CVRHeadsetView HeadsetView { get { return OpenVRInternal_ModuleContext.VRHeadsetView(); } }
+ public static CVROverlay Overlay { get { return OpenVRInternal_ModuleContext.VROverlay(); } }
+ public static CVROverlayView OverlayView { get { return OpenVRInternal_ModuleContext.VROverlayView(); } }
+ public static CVRRenderModels RenderModels { get { return OpenVRInternal_ModuleContext.VRRenderModels(); } }
+ public static CVRExtendedDisplay ExtendedDisplay { get { return OpenVRInternal_ModuleContext.VRExtendedDisplay(); } }
+ public static CVRSettings Settings { get { return OpenVRInternal_ModuleContext.VRSettings(); } }
+ public static CVRApplications Applications { get { return OpenVRInternal_ModuleContext.VRApplications(); } }
+ public static CVRScreenshots Screenshots { get { return OpenVRInternal_ModuleContext.VRScreenshots(); } }
+ public static CVRTrackedCamera TrackedCamera { get { return OpenVRInternal_ModuleContext.VRTrackedCamera(); } }
+ public static CVRInput Input { get { return OpenVRInternal_ModuleContext.VRInput(); } }
+ public static CVRIOBuffer IOBuffer { get { return OpenVRInternal_ModuleContext.VRIOBuffer(); } }
+ public static CVRSpatialAnchors SpatialAnchors { get { return OpenVRInternal_ModuleContext.VRSpatialAnchors(); } }
+ public static CVRNotifications Notifications { get { return OpenVRInternal_ModuleContext.VRNotifications(); } }
+ public static CVRDebug Debug { get { return OpenVRInternal_ModuleContext.VRDebug(); } }
+
+
+ /** Finds the active installation of vrclient.dll and initializes it */
+ public static CVRSystem Init(ref EVRInitError peError, EVRApplicationType eApplicationType = EVRApplicationType.VRApplication_Scene, string pchStartupInfo= "")
+ {
+ try
+ {
+ VRToken = InitInternal2(ref peError, eApplicationType, pchStartupInfo);
+ }
+ catch (EntryPointNotFoundException)
+ {
+ VRToken = InitInternal(ref peError, eApplicationType);
+ }
+
+ OpenVRInternal_ModuleContext.Clear();
+
+ if (peError != EVRInitError.None)
+ return null;
+
+ bool bInterfaceValid = IsInterfaceVersionValid(IVRSystem_Version);
+ if (!bInterfaceValid)
+ {
+ ShutdownInternal();
+ peError = EVRInitError.Init_InterfaceNotFound;
+ return null;
+ }
+
+ return OpenVR.System;
+ }
+
+ /** unloads vrclient.dll. Any interface pointers from the interface are
+ * invalid after this point */
+ public static void Shutdown()
+ {
+ ShutdownInternal();
+ }
+""")
+
+print("}\n\n");
+
+print ("""
+}
+#endif
+""")