openvr_capi.h 83 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626
  1. //======= Copyright (c) Valve Corporation, All rights reserved. ===============
  2. //
  3. // Purpose: Header for flatted SteamAPI. Use this for binding to other languages.
  4. // This file is auto-generated, do not edit it.
  5. //
  6. //=============================================================================
  7. #ifndef __OPENVR_API_FLAT_H__
  8. #define __OPENVR_API_FLAT_H__
  9. #if defined( _WIN32 ) || defined( __clang__ )
  10. #pragma once
  11. #endif
  12. #ifdef __cplusplus
  13. #define EXTERN_C extern "C"
  14. #else
  15. #define EXTERN_C
  16. #endif
  17. #define OPENVR_FNTABLE_CALLTYPE __stdcall
  18. // OPENVR API export macro
  19. #if defined( _WIN32 ) && !defined( _X360 )
  20. #if defined( OPENVR_API_EXPORTS )
  21. #define S_API EXTERN_C __declspec( dllexport )
  22. #elif defined( OPENVR_API_NODLL )
  23. #define S_API EXTERN_C
  24. #else
  25. #define S_API extern "C" __declspec( dllimport )
  26. #endif // OPENVR_API_EXPORTS
  27. #elif defined( GNUC )
  28. #if defined( OPENVR_API_EXPORTS )
  29. #define S_API EXTERN_C __attribute__ ((visibility("default")))
  30. #else
  31. #define S_API EXTERN_C
  32. #endif // OPENVR_API_EXPORTS
  33. #else // !WIN32
  34. #if defined( OPENVR_API_EXPORTS )
  35. #define S_API EXTERN_C
  36. #else
  37. #define S_API EXTERN_C
  38. #endif // OPENVR_API_EXPORTS
  39. #endif
  40. #include <stdint.h>
  41. #if defined( __WIN32 )
  42. typedef char bool;
  43. #endif
  44. // OpenVR Constants
  45. static const unsigned int k_unTrackingStringSize = 32;
  46. static const unsigned int k_unMaxDriverDebugResponseSize = 32768;
  47. static const unsigned int k_unTrackedDeviceIndex_Hmd = 0;
  48. static const unsigned int k_unMaxTrackedDeviceCount = 16;
  49. static const unsigned int k_unTrackedDeviceIndexOther = 4294967294;
  50. static const unsigned int k_unTrackedDeviceIndexInvalid = 4294967295;
  51. static const unsigned int k_unMaxPropertyStringSize = 32768;
  52. static const unsigned int k_unControllerStateAxisCount = 5;
  53. static const unsigned long k_ulOverlayHandleInvalid = 0;
  54. static const unsigned int k_unScreenshotHandleInvalid = 0;
  55. static const char * IVRSystem_Version = "IVRSystem_012";
  56. static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
  57. static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_003";
  58. static const unsigned int k_unMaxApplicationKeyLength = 128;
  59. static const char * IVRApplications_Version = "IVRApplications_005";
  60. static const char * IVRChaperone_Version = "IVRChaperone_003";
  61. static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
  62. static const char * IVRCompositor_Version = "IVRCompositor_015";
  63. static const unsigned int k_unVROverlayMaxKeyLength = 128;
  64. static const unsigned int k_unVROverlayMaxNameLength = 128;
  65. static const unsigned int k_unMaxOverlayCount = 32;
  66. static const char * IVROverlay_Version = "IVROverlay_012";
  67. static const char * k_pch_Controller_Component_GDC2015 = "gdc2015";
  68. static const char * k_pch_Controller_Component_Base = "base";
  69. static const char * k_pch_Controller_Component_Tip = "tip";
  70. static const char * k_pch_Controller_Component_HandGrip = "handgrip";
  71. static const char * k_pch_Controller_Component_Status = "status";
  72. static const char * IVRRenderModels_Version = "IVRRenderModels_005";
  73. static const unsigned int k_unNotificationTextMaxSize = 256;
  74. static const char * IVRNotifications_Version = "IVRNotifications_002";
  75. static const unsigned int k_unMaxSettingsKeyLength = 128;
  76. static const char * IVRSettings_Version = "IVRSettings_001";
  77. static const char * k_pch_SteamVR_Section = "steamvr";
  78. static const char * k_pch_SteamVR_RequireHmd_String = "requireHmd";
  79. static const char * k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver";
  80. static const char * k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd";
  81. static const char * k_pch_SteamVR_DisplayDebug_Bool = "displayDebug";
  82. static const char * k_pch_SteamVR_DebugProcessPipe_String = "debugProcessPipe";
  83. static const char * k_pch_SteamVR_EnableDistortion_Bool = "enableDistortion";
  84. static const char * k_pch_SteamVR_DisplayDebugX_Int32 = "displayDebugX";
  85. static const char * k_pch_SteamVR_DisplayDebugY_Int32 = "displayDebugY";
  86. static const char * k_pch_SteamVR_SendSystemButtonToAllApps_Bool = "sendSystemButtonToAllApps";
  87. static const char * k_pch_SteamVR_LogLevel_Int32 = "loglevel";
  88. static const char * k_pch_SteamVR_IPD_Float = "ipd";
  89. static const char * k_pch_SteamVR_Background_String = "background";
  90. static const char * k_pch_SteamVR_BackgroundCameraHeight_Float = "backgroundCameraHeight";
  91. static const char * k_pch_SteamVR_BackgroundDomeRadius_Float = "backgroundDomeRadius";
  92. static const char * k_pch_SteamVR_Environment_String = "environment";
  93. static const char * k_pch_SteamVR_GridColor_String = "gridColor";
  94. static const char * k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
  95. static const char * k_pch_SteamVR_ShowStage_Bool = "showStage";
  96. static const char * k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
  97. static const char * k_pch_SteamVR_PowerOffOnExit_Bool = "powerOffOnExit";
  98. static const char * k_pch_SteamVR_StandbyAppRunningTimeout_Float = "standbyAppRunningTimeout";
  99. static const char * k_pch_SteamVR_StandbyNoAppTimeout_Float = "standbyNoAppTimeout";
  100. static const char * k_pch_SteamVR_DirectMode_Bool = "directMode";
  101. static const char * k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
  102. static const char * k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
  103. static const char * k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
  104. static const char * k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
  105. static const char * k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
  106. static const char * k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
  107. static const char * k_pch_SteamVR_RenderTargetMultiplier_Float = "renderTargetMultiplier";
  108. static const char * k_pch_SteamVR_AllowReprojection_Bool = "allowReprojection";
  109. static const char * k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
  110. static const char * k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
  111. static const char * k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView";
  112. static const char * k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView";
  113. static const char * k_pch_Lighthouse_Section = "driver_lighthouse";
  114. static const char * k_pch_Lighthouse_DisableIMU_Bool = "disableimu";
  115. static const char * k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation";
  116. static const char * k_pch_Lighthouse_DisambiguationDebug_Int32 = "disambiguationdebug";
  117. static const char * k_pch_Lighthouse_PrimaryBasestation_Int32 = "primarybasestation";
  118. static const char * k_pch_Lighthouse_LighthouseName_String = "lighthousename";
  119. static const char * k_pch_Lighthouse_MaxIncidenceAngleDegrees_Float = "maxincidenceangledegrees";
  120. static const char * k_pch_Lighthouse_UseLighthouseDirect_Bool = "uselighthousedirect";
  121. static const char * k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
  122. static const char * k_pch_Null_Section = "driver_null";
  123. static const char * k_pch_Null_EnableNullDriver_Bool = "enable";
  124. static const char * k_pch_Null_SerialNumber_String = "serialNumber";
  125. static const char * k_pch_Null_ModelNumber_String = "modelNumber";
  126. static const char * k_pch_Null_WindowX_Int32 = "windowX";
  127. static const char * k_pch_Null_WindowY_Int32 = "windowY";
  128. static const char * k_pch_Null_WindowWidth_Int32 = "windowWidth";
  129. static const char * k_pch_Null_WindowHeight_Int32 = "windowHeight";
  130. static const char * k_pch_Null_RenderWidth_Int32 = "renderWidth";
  131. static const char * k_pch_Null_RenderHeight_Int32 = "renderHeight";
  132. static const char * k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
  133. static const char * k_pch_Null_DisplayFrequency_Float = "displayFrequency";
  134. static const char * k_pch_UserInterface_Section = "userinterface";
  135. static const char * k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop";
  136. static const char * k_pch_UserInterface_EnableScreenshots_Bool = "EnableScreenshots";
  137. static const char * k_pch_Notifications_Section = "notifications";
  138. static const char * k_pch_Notifications_DoNotDisturb_Bool = "DoNotDisturb";
  139. static const char * k_pch_Keyboard_Section = "keyboard";
  140. static const char * k_pch_Keyboard_TutorialCompletions = "TutorialCompletions";
  141. static const char * k_pch_Keyboard_ScaleX = "ScaleX";
  142. static const char * k_pch_Keyboard_ScaleY = "ScaleY";
  143. static const char * k_pch_Keyboard_OffsetLeftX = "OffsetLeftX";
  144. static const char * k_pch_Keyboard_OffsetRightX = "OffsetRightX";
  145. static const char * k_pch_Keyboard_OffsetY = "OffsetY";
  146. static const char * k_pch_Keyboard_Smoothing = "Smoothing";
  147. static const char * k_pch_Perf_Section = "perfcheck";
  148. static const char * k_pch_Perf_HeuristicActive_Bool = "heuristicActive";
  149. static const char * k_pch_Perf_NotifyInHMD_Bool = "warnInHMD";
  150. static const char * k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce";
  151. static const char * k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore";
  152. static const char * k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit";
  153. static const char * k_pch_Perf_TestData_Float = "perfTestData";
  154. static const char * k_pch_CollisionBounds_Section = "collisionBounds";
  155. static const char * k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle";
  156. static const char * k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn";
  157. static const char * k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
  158. static const char * k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
  159. static const char * k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
  160. static const char * k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
  161. static const char * k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
  162. static const char * k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
  163. static const char * k_pch_CollisionBounds_ColorGammaA_Int32 = "CollisionBoundsColorGammaA";
  164. static const char * k_pch_Camera_Section = "camera";
  165. static const char * k_pch_Camera_EnableCamera_Bool = "enableCamera";
  166. static const char * k_pch_Camera_EnableCameraInDashboard_Bool = "enableCameraInDashboard";
  167. static const char * k_pch_Camera_EnableCameraForCollisionBounds_Bool = "enableCameraForCollisionBounds";
  168. static const char * k_pch_Camera_EnableCameraForRoomView_Bool = "enableCameraForRoomView";
  169. static const char * k_pch_Camera_BoundsColorGammaR_Int32 = "cameraBoundsColorGammaR";
  170. static const char * k_pch_Camera_BoundsColorGammaG_Int32 = "cameraBoundsColorGammaG";
  171. static const char * k_pch_Camera_BoundsColorGammaB_Int32 = "cameraBoundsColorGammaB";
  172. static const char * k_pch_Camera_BoundsColorGammaA_Int32 = "cameraBoundsColorGammaA";
  173. static const char * k_pch_audio_Section = "audio";
  174. static const char * k_pch_audio_OnPlaybackDevice_String = "onPlaybackDevice";
  175. static const char * k_pch_audio_OnRecordDevice_String = "onRecordDevice";
  176. static const char * k_pch_audio_OnPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
  177. static const char * k_pch_audio_OffPlaybackDevice_String = "offPlaybackDevice";
  178. static const char * k_pch_audio_OffRecordDevice_String = "offRecordDevice";
  179. static const char * k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
  180. static const char * k_pch_modelskin_Section = "modelskins";
  181. static const char * IVRScreenshots_Version = "IVRScreenshots_001";
  182. // OpenVR Enums
  183. typedef enum EVREye
  184. {
  185. EVREye_Eye_Left = 0,
  186. EVREye_Eye_Right = 1,
  187. } EVREye;
  188. typedef enum EGraphicsAPIConvention
  189. {
  190. EGraphicsAPIConvention_API_DirectX = 0,
  191. EGraphicsAPIConvention_API_OpenGL = 1,
  192. } EGraphicsAPIConvention;
  193. typedef enum EColorSpace
  194. {
  195. EColorSpace_ColorSpace_Auto = 0,
  196. EColorSpace_ColorSpace_Gamma = 1,
  197. EColorSpace_ColorSpace_Linear = 2,
  198. } EColorSpace;
  199. typedef enum ETrackingResult
  200. {
  201. ETrackingResult_TrackingResult_Uninitialized = 1,
  202. ETrackingResult_TrackingResult_Calibrating_InProgress = 100,
  203. ETrackingResult_TrackingResult_Calibrating_OutOfRange = 101,
  204. ETrackingResult_TrackingResult_Running_OK = 200,
  205. ETrackingResult_TrackingResult_Running_OutOfRange = 201,
  206. } ETrackingResult;
  207. typedef enum ETrackedDeviceClass
  208. {
  209. ETrackedDeviceClass_TrackedDeviceClass_Invalid = 0,
  210. ETrackedDeviceClass_TrackedDeviceClass_HMD = 1,
  211. ETrackedDeviceClass_TrackedDeviceClass_Controller = 2,
  212. ETrackedDeviceClass_TrackedDeviceClass_TrackingReference = 4,
  213. ETrackedDeviceClass_TrackedDeviceClass_Other = 1000,
  214. } ETrackedDeviceClass;
  215. typedef enum ETrackedControllerRole
  216. {
  217. ETrackedControllerRole_TrackedControllerRole_Invalid = 0,
  218. ETrackedControllerRole_TrackedControllerRole_LeftHand = 1,
  219. ETrackedControllerRole_TrackedControllerRole_RightHand = 2,
  220. } ETrackedControllerRole;
  221. typedef enum ETrackingUniverseOrigin
  222. {
  223. ETrackingUniverseOrigin_TrackingUniverseSeated = 0,
  224. ETrackingUniverseOrigin_TrackingUniverseStanding = 1,
  225. ETrackingUniverseOrigin_TrackingUniverseRawAndUncalibrated = 2,
  226. } ETrackingUniverseOrigin;
  227. typedef enum ETrackedDeviceProperty
  228. {
  229. ETrackedDeviceProperty_Prop_TrackingSystemName_String = 1000,
  230. ETrackedDeviceProperty_Prop_ModelNumber_String = 1001,
  231. ETrackedDeviceProperty_Prop_SerialNumber_String = 1002,
  232. ETrackedDeviceProperty_Prop_RenderModelName_String = 1003,
  233. ETrackedDeviceProperty_Prop_WillDriftInYaw_Bool = 1004,
  234. ETrackedDeviceProperty_Prop_ManufacturerName_String = 1005,
  235. ETrackedDeviceProperty_Prop_TrackingFirmwareVersion_String = 1006,
  236. ETrackedDeviceProperty_Prop_HardwareRevision_String = 1007,
  237. ETrackedDeviceProperty_Prop_AllWirelessDongleDescriptions_String = 1008,
  238. ETrackedDeviceProperty_Prop_ConnectedWirelessDongle_String = 1009,
  239. ETrackedDeviceProperty_Prop_DeviceIsWireless_Bool = 1010,
  240. ETrackedDeviceProperty_Prop_DeviceIsCharging_Bool = 1011,
  241. ETrackedDeviceProperty_Prop_DeviceBatteryPercentage_Float = 1012,
  242. ETrackedDeviceProperty_Prop_StatusDisplayTransform_Matrix34 = 1013,
  243. ETrackedDeviceProperty_Prop_Firmware_UpdateAvailable_Bool = 1014,
  244. ETrackedDeviceProperty_Prop_Firmware_ManualUpdate_Bool = 1015,
  245. ETrackedDeviceProperty_Prop_Firmware_ManualUpdateURL_String = 1016,
  246. ETrackedDeviceProperty_Prop_HardwareRevision_Uint64 = 1017,
  247. ETrackedDeviceProperty_Prop_FirmwareVersion_Uint64 = 1018,
  248. ETrackedDeviceProperty_Prop_FPGAVersion_Uint64 = 1019,
  249. ETrackedDeviceProperty_Prop_VRCVersion_Uint64 = 1020,
  250. ETrackedDeviceProperty_Prop_RadioVersion_Uint64 = 1021,
  251. ETrackedDeviceProperty_Prop_DongleVersion_Uint64 = 1022,
  252. ETrackedDeviceProperty_Prop_BlockServerShutdown_Bool = 1023,
  253. ETrackedDeviceProperty_Prop_CanUnifyCoordinateSystemWithHmd_Bool = 1024,
  254. ETrackedDeviceProperty_Prop_ContainsProximitySensor_Bool = 1025,
  255. ETrackedDeviceProperty_Prop_DeviceProvidesBatteryStatus_Bool = 1026,
  256. ETrackedDeviceProperty_Prop_DeviceCanPowerOff_Bool = 1027,
  257. ETrackedDeviceProperty_Prop_Firmware_ProgrammingTarget_String = 1028,
  258. ETrackedDeviceProperty_Prop_DeviceClass_Int32 = 1029,
  259. ETrackedDeviceProperty_Prop_HasCamera_Bool = 1030,
  260. ETrackedDeviceProperty_Prop_DriverVersion_String = 1031,
  261. ETrackedDeviceProperty_Prop_Firmware_ForceUpdateRequired_Bool = 1032,
  262. ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000,
  263. ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001,
  264. ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002,
  265. ETrackedDeviceProperty_Prop_UserIpdMeters_Float = 2003,
  266. ETrackedDeviceProperty_Prop_CurrentUniverseId_Uint64 = 2004,
  267. ETrackedDeviceProperty_Prop_PreviousUniverseId_Uint64 = 2005,
  268. ETrackedDeviceProperty_Prop_DisplayFirmwareVersion_Uint64 = 2006,
  269. ETrackedDeviceProperty_Prop_IsOnDesktop_Bool = 2007,
  270. ETrackedDeviceProperty_Prop_DisplayMCType_Int32 = 2008,
  271. ETrackedDeviceProperty_Prop_DisplayMCOffset_Float = 2009,
  272. ETrackedDeviceProperty_Prop_DisplayMCScale_Float = 2010,
  273. ETrackedDeviceProperty_Prop_EdidVendorID_Int32 = 2011,
  274. ETrackedDeviceProperty_Prop_DisplayMCImageLeft_String = 2012,
  275. ETrackedDeviceProperty_Prop_DisplayMCImageRight_String = 2013,
  276. ETrackedDeviceProperty_Prop_DisplayGCBlackClamp_Float = 2014,
  277. ETrackedDeviceProperty_Prop_EdidProductID_Int32 = 2015,
  278. ETrackedDeviceProperty_Prop_CameraToHeadTransform_Matrix34 = 2016,
  279. ETrackedDeviceProperty_Prop_DisplayGCType_Int32 = 2017,
  280. ETrackedDeviceProperty_Prop_DisplayGCOffset_Float = 2018,
  281. ETrackedDeviceProperty_Prop_DisplayGCScale_Float = 2019,
  282. ETrackedDeviceProperty_Prop_DisplayGCPrescale_Float = 2020,
  283. ETrackedDeviceProperty_Prop_DisplayGCImage_String = 2021,
  284. ETrackedDeviceProperty_Prop_LensCenterLeftU_Float = 2022,
  285. ETrackedDeviceProperty_Prop_LensCenterLeftV_Float = 2023,
  286. ETrackedDeviceProperty_Prop_LensCenterRightU_Float = 2024,
  287. ETrackedDeviceProperty_Prop_LensCenterRightV_Float = 2025,
  288. ETrackedDeviceProperty_Prop_UserHeadToEyeDepthMeters_Float = 2026,
  289. ETrackedDeviceProperty_Prop_CameraFirmwareVersion_Uint64 = 2027,
  290. ETrackedDeviceProperty_Prop_CameraFirmwareDescription_String = 2028,
  291. ETrackedDeviceProperty_Prop_DisplayFPGAVersion_Uint64 = 2029,
  292. ETrackedDeviceProperty_Prop_DisplayBootloaderVersion_Uint64 = 2030,
  293. ETrackedDeviceProperty_Prop_DisplayHardwareVersion_Uint64 = 2031,
  294. ETrackedDeviceProperty_Prop_AudioFirmwareVersion_Uint64 = 2032,
  295. ETrackedDeviceProperty_Prop_CameraCompatibilityMode_Int32 = 2033,
  296. ETrackedDeviceProperty_Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034,
  297. ETrackedDeviceProperty_Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035,
  298. ETrackedDeviceProperty_Prop_DisplaySuppressed_Bool = 2036,
  299. ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000,
  300. ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001,
  301. ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002,
  302. ETrackedDeviceProperty_Prop_Axis1Type_Int32 = 3003,
  303. ETrackedDeviceProperty_Prop_Axis2Type_Int32 = 3004,
  304. ETrackedDeviceProperty_Prop_Axis3Type_Int32 = 3005,
  305. ETrackedDeviceProperty_Prop_Axis4Type_Int32 = 3006,
  306. ETrackedDeviceProperty_Prop_FieldOfViewLeftDegrees_Float = 4000,
  307. ETrackedDeviceProperty_Prop_FieldOfViewRightDegrees_Float = 4001,
  308. ETrackedDeviceProperty_Prop_FieldOfViewTopDegrees_Float = 4002,
  309. ETrackedDeviceProperty_Prop_FieldOfViewBottomDegrees_Float = 4003,
  310. ETrackedDeviceProperty_Prop_TrackingRangeMinimumMeters_Float = 4004,
  311. ETrackedDeviceProperty_Prop_TrackingRangeMaximumMeters_Float = 4005,
  312. ETrackedDeviceProperty_Prop_ModeLabel_String = 4006,
  313. ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_Start = 10000,
  314. ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_End = 10999,
  315. } ETrackedDeviceProperty;
  316. typedef enum ETrackedPropertyError
  317. {
  318. ETrackedPropertyError_TrackedProp_Success = 0,
  319. ETrackedPropertyError_TrackedProp_WrongDataType = 1,
  320. ETrackedPropertyError_TrackedProp_WrongDeviceClass = 2,
  321. ETrackedPropertyError_TrackedProp_BufferTooSmall = 3,
  322. ETrackedPropertyError_TrackedProp_UnknownProperty = 4,
  323. ETrackedPropertyError_TrackedProp_InvalidDevice = 5,
  324. ETrackedPropertyError_TrackedProp_CouldNotContactServer = 6,
  325. ETrackedPropertyError_TrackedProp_ValueNotProvidedByDevice = 7,
  326. ETrackedPropertyError_TrackedProp_StringExceedsMaximumLength = 8,
  327. ETrackedPropertyError_TrackedProp_NotYetAvailable = 9,
  328. } ETrackedPropertyError;
  329. typedef enum EVRSubmitFlags
  330. {
  331. EVRSubmitFlags_Submit_Default = 0,
  332. EVRSubmitFlags_Submit_LensDistortionAlreadyApplied = 1,
  333. EVRSubmitFlags_Submit_GlRenderBuffer = 2,
  334. } EVRSubmitFlags;
  335. typedef enum EVRState
  336. {
  337. EVRState_VRState_Undefined = -1,
  338. EVRState_VRState_Off = 0,
  339. EVRState_VRState_Searching = 1,
  340. EVRState_VRState_Searching_Alert = 2,
  341. EVRState_VRState_Ready = 3,
  342. EVRState_VRState_Ready_Alert = 4,
  343. EVRState_VRState_NotReady = 5,
  344. EVRState_VRState_Standby = 6,
  345. } EVRState;
  346. typedef enum EVREventType
  347. {
  348. EVREventType_VREvent_None = 0,
  349. EVREventType_VREvent_TrackedDeviceActivated = 100,
  350. EVREventType_VREvent_TrackedDeviceDeactivated = 101,
  351. EVREventType_VREvent_TrackedDeviceUpdated = 102,
  352. EVREventType_VREvent_TrackedDeviceUserInteractionStarted = 103,
  353. EVREventType_VREvent_TrackedDeviceUserInteractionEnded = 104,
  354. EVREventType_VREvent_IpdChanged = 105,
  355. EVREventType_VREvent_EnterStandbyMode = 106,
  356. EVREventType_VREvent_LeaveStandbyMode = 107,
  357. EVREventType_VREvent_TrackedDeviceRoleChanged = 108,
  358. EVREventType_VREvent_ButtonPress = 200,
  359. EVREventType_VREvent_ButtonUnpress = 201,
  360. EVREventType_VREvent_ButtonTouch = 202,
  361. EVREventType_VREvent_ButtonUntouch = 203,
  362. EVREventType_VREvent_MouseMove = 300,
  363. EVREventType_VREvent_MouseButtonDown = 301,
  364. EVREventType_VREvent_MouseButtonUp = 302,
  365. EVREventType_VREvent_FocusEnter = 303,
  366. EVREventType_VREvent_FocusLeave = 304,
  367. EVREventType_VREvent_Scroll = 305,
  368. EVREventType_VREvent_TouchPadMove = 306,
  369. EVREventType_VREvent_InputFocusCaptured = 400,
  370. EVREventType_VREvent_InputFocusReleased = 401,
  371. EVREventType_VREvent_SceneFocusLost = 402,
  372. EVREventType_VREvent_SceneFocusGained = 403,
  373. EVREventType_VREvent_SceneApplicationChanged = 404,
  374. EVREventType_VREvent_SceneFocusChanged = 405,
  375. EVREventType_VREvent_InputFocusChanged = 406,
  376. EVREventType_VREvent_SceneApplicationSecondaryRenderingStarted = 407,
  377. EVREventType_VREvent_HideRenderModels = 410,
  378. EVREventType_VREvent_ShowRenderModels = 411,
  379. EVREventType_VREvent_OverlayShown = 500,
  380. EVREventType_VREvent_OverlayHidden = 501,
  381. EVREventType_VREvent_DashboardActivated = 502,
  382. EVREventType_VREvent_DashboardDeactivated = 503,
  383. EVREventType_VREvent_DashboardThumbSelected = 504,
  384. EVREventType_VREvent_DashboardRequested = 505,
  385. EVREventType_VREvent_ResetDashboard = 506,
  386. EVREventType_VREvent_RenderToast = 507,
  387. EVREventType_VREvent_ImageLoaded = 508,
  388. EVREventType_VREvent_ShowKeyboard = 509,
  389. EVREventType_VREvent_HideKeyboard = 510,
  390. EVREventType_VREvent_OverlayGamepadFocusGained = 511,
  391. EVREventType_VREvent_OverlayGamepadFocusLost = 512,
  392. EVREventType_VREvent_OverlaySharedTextureChanged = 513,
  393. EVREventType_VREvent_DashboardGuideButtonDown = 514,
  394. EVREventType_VREvent_DashboardGuideButtonUp = 515,
  395. EVREventType_VREvent_ScreenshotTriggered = 516,
  396. EVREventType_VREvent_ImageFailed = 517,
  397. EVREventType_VREvent_RequestScreenshot = 520,
  398. EVREventType_VREvent_ScreenshotTaken = 521,
  399. EVREventType_VREvent_ScreenshotFailed = 522,
  400. EVREventType_VREvent_SubmitScreenshotToDashboard = 523,
  401. EVREventType_VREvent_Notification_Shown = 600,
  402. EVREventType_VREvent_Notification_Hidden = 601,
  403. EVREventType_VREvent_Notification_BeginInteraction = 602,
  404. EVREventType_VREvent_Notification_Destroyed = 603,
  405. EVREventType_VREvent_Quit = 700,
  406. EVREventType_VREvent_ProcessQuit = 701,
  407. EVREventType_VREvent_QuitAborted_UserPrompt = 702,
  408. EVREventType_VREvent_QuitAcknowledged = 703,
  409. EVREventType_VREvent_DriverRequestedQuit = 704,
  410. EVREventType_VREvent_ChaperoneDataHasChanged = 800,
  411. EVREventType_VREvent_ChaperoneUniverseHasChanged = 801,
  412. EVREventType_VREvent_ChaperoneTempDataHasChanged = 802,
  413. EVREventType_VREvent_ChaperoneSettingsHaveChanged = 803,
  414. EVREventType_VREvent_SeatedZeroPoseReset = 804,
  415. EVREventType_VREvent_AudioSettingsHaveChanged = 820,
  416. EVREventType_VREvent_BackgroundSettingHasChanged = 850,
  417. EVREventType_VREvent_CameraSettingsHaveChanged = 851,
  418. EVREventType_VREvent_ReprojectionSettingHasChanged = 852,
  419. EVREventType_VREvent_ModelSkinSettingsHaveChanged = 853,
  420. EVREventType_VREvent_EnvironmentSettingsHaveChanged = 854,
  421. EVREventType_VREvent_StatusUpdate = 900,
  422. EVREventType_VREvent_MCImageUpdated = 1000,
  423. EVREventType_VREvent_FirmwareUpdateStarted = 1100,
  424. EVREventType_VREvent_FirmwareUpdateFinished = 1101,
  425. EVREventType_VREvent_KeyboardClosed = 1200,
  426. EVREventType_VREvent_KeyboardCharInput = 1201,
  427. EVREventType_VREvent_KeyboardDone = 1202,
  428. EVREventType_VREvent_ApplicationTransitionStarted = 1300,
  429. EVREventType_VREvent_ApplicationTransitionAborted = 1301,
  430. EVREventType_VREvent_ApplicationTransitionNewAppStarted = 1302,
  431. EVREventType_VREvent_ApplicationListUpdated = 1303,
  432. EVREventType_VREvent_Compositor_MirrorWindowShown = 1400,
  433. EVREventType_VREvent_Compositor_MirrorWindowHidden = 1401,
  434. EVREventType_VREvent_Compositor_ChaperoneBoundsShown = 1410,
  435. EVREventType_VREvent_Compositor_ChaperoneBoundsHidden = 1411,
  436. EVREventType_VREvent_TrackedCamera_StartVideoStream = 1500,
  437. EVREventType_VREvent_TrackedCamera_StopVideoStream = 1501,
  438. EVREventType_VREvent_TrackedCamera_PauseVideoStream = 1502,
  439. EVREventType_VREvent_TrackedCamera_ResumeVideoStream = 1503,
  440. EVREventType_VREvent_PerformanceTest_EnableCapture = 1600,
  441. EVREventType_VREvent_PerformanceTest_DisableCapture = 1601,
  442. EVREventType_VREvent_PerformanceTest_FidelityLevel = 1602,
  443. EVREventType_VREvent_VendorSpecific_Reserved_Start = 10000,
  444. EVREventType_VREvent_VendorSpecific_Reserved_End = 19999,
  445. } EVREventType;
  446. typedef enum EDeviceActivityLevel
  447. {
  448. EDeviceActivityLevel_k_EDeviceActivityLevel_Unknown = -1,
  449. EDeviceActivityLevel_k_EDeviceActivityLevel_Idle = 0,
  450. EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction = 1,
  451. EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction_Timeout = 2,
  452. EDeviceActivityLevel_k_EDeviceActivityLevel_Standby = 3,
  453. } EDeviceActivityLevel;
  454. typedef enum EVRButtonId
  455. {
  456. EVRButtonId_k_EButton_System = 0,
  457. EVRButtonId_k_EButton_ApplicationMenu = 1,
  458. EVRButtonId_k_EButton_Grip = 2,
  459. EVRButtonId_k_EButton_DPad_Left = 3,
  460. EVRButtonId_k_EButton_DPad_Up = 4,
  461. EVRButtonId_k_EButton_DPad_Right = 5,
  462. EVRButtonId_k_EButton_DPad_Down = 6,
  463. EVRButtonId_k_EButton_A = 7,
  464. EVRButtonId_k_EButton_Axis0 = 32,
  465. EVRButtonId_k_EButton_Axis1 = 33,
  466. EVRButtonId_k_EButton_Axis2 = 34,
  467. EVRButtonId_k_EButton_Axis3 = 35,
  468. EVRButtonId_k_EButton_Axis4 = 36,
  469. EVRButtonId_k_EButton_SteamVR_Touchpad = 32,
  470. EVRButtonId_k_EButton_SteamVR_Trigger = 33,
  471. EVRButtonId_k_EButton_Dashboard_Back = 2,
  472. EVRButtonId_k_EButton_Max = 64,
  473. } EVRButtonId;
  474. typedef enum EVRMouseButton
  475. {
  476. EVRMouseButton_VRMouseButton_Left = 1,
  477. EVRMouseButton_VRMouseButton_Right = 2,
  478. EVRMouseButton_VRMouseButton_Middle = 4,
  479. } EVRMouseButton;
  480. typedef enum EVRControllerAxisType
  481. {
  482. EVRControllerAxisType_k_eControllerAxis_None = 0,
  483. EVRControllerAxisType_k_eControllerAxis_TrackPad = 1,
  484. EVRControllerAxisType_k_eControllerAxis_Joystick = 2,
  485. EVRControllerAxisType_k_eControllerAxis_Trigger = 3,
  486. } EVRControllerAxisType;
  487. typedef enum EVRControllerEventOutputType
  488. {
  489. EVRControllerEventOutputType_ControllerEventOutput_OSEvents = 0,
  490. EVRControllerEventOutputType_ControllerEventOutput_VREvents = 1,
  491. } EVRControllerEventOutputType;
  492. typedef enum ECollisionBoundsStyle
  493. {
  494. ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_BEGINNER = 0,
  495. ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_INTERMEDIATE = 1,
  496. ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_SQUARES = 2,
  497. ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_ADVANCED = 3,
  498. ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_NONE = 4,
  499. ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_COUNT = 5,
  500. } ECollisionBoundsStyle;
  501. typedef enum EVROverlayError
  502. {
  503. EVROverlayError_VROverlayError_None = 0,
  504. EVROverlayError_VROverlayError_UnknownOverlay = 10,
  505. EVROverlayError_VROverlayError_InvalidHandle = 11,
  506. EVROverlayError_VROverlayError_PermissionDenied = 12,
  507. EVROverlayError_VROverlayError_OverlayLimitExceeded = 13,
  508. EVROverlayError_VROverlayError_WrongVisibilityType = 14,
  509. EVROverlayError_VROverlayError_KeyTooLong = 15,
  510. EVROverlayError_VROverlayError_NameTooLong = 16,
  511. EVROverlayError_VROverlayError_KeyInUse = 17,
  512. EVROverlayError_VROverlayError_WrongTransformType = 18,
  513. EVROverlayError_VROverlayError_InvalidTrackedDevice = 19,
  514. EVROverlayError_VROverlayError_InvalidParameter = 20,
  515. EVROverlayError_VROverlayError_ThumbnailCantBeDestroyed = 21,
  516. EVROverlayError_VROverlayError_ArrayTooSmall = 22,
  517. EVROverlayError_VROverlayError_RequestFailed = 23,
  518. EVROverlayError_VROverlayError_InvalidTexture = 24,
  519. EVROverlayError_VROverlayError_UnableToLoadFile = 25,
  520. EVROverlayError_VROVerlayError_KeyboardAlreadyInUse = 26,
  521. EVROverlayError_VROverlayError_NoNeighbor = 27,
  522. } EVROverlayError;
  523. typedef enum EVRApplicationType
  524. {
  525. EVRApplicationType_VRApplication_Other = 0,
  526. EVRApplicationType_VRApplication_Scene = 1,
  527. EVRApplicationType_VRApplication_Overlay = 2,
  528. EVRApplicationType_VRApplication_Background = 3,
  529. EVRApplicationType_VRApplication_Utility = 4,
  530. EVRApplicationType_VRApplication_VRMonitor = 5,
  531. } EVRApplicationType;
  532. typedef enum EVRFirmwareError
  533. {
  534. EVRFirmwareError_VRFirmwareError_None = 0,
  535. EVRFirmwareError_VRFirmwareError_Success = 1,
  536. EVRFirmwareError_VRFirmwareError_Fail = 2,
  537. } EVRFirmwareError;
  538. typedef enum EVRNotificationError
  539. {
  540. EVRNotificationError_VRNotificationError_OK = 0,
  541. EVRNotificationError_VRNotificationError_InvalidNotificationId = 100,
  542. EVRNotificationError_VRNotificationError_NotificationQueueFull = 101,
  543. EVRNotificationError_VRNotificationError_InvalidOverlayHandle = 102,
  544. EVRNotificationError_VRNotificationError_SystemWithUserValueAlreadyExists = 103,
  545. } EVRNotificationError;
  546. typedef enum EVRInitError
  547. {
  548. EVRInitError_VRInitError_None = 0,
  549. EVRInitError_VRInitError_Unknown = 1,
  550. EVRInitError_VRInitError_Init_InstallationNotFound = 100,
  551. EVRInitError_VRInitError_Init_InstallationCorrupt = 101,
  552. EVRInitError_VRInitError_Init_VRClientDLLNotFound = 102,
  553. EVRInitError_VRInitError_Init_FileNotFound = 103,
  554. EVRInitError_VRInitError_Init_FactoryNotFound = 104,
  555. EVRInitError_VRInitError_Init_InterfaceNotFound = 105,
  556. EVRInitError_VRInitError_Init_InvalidInterface = 106,
  557. EVRInitError_VRInitError_Init_UserConfigDirectoryInvalid = 107,
  558. EVRInitError_VRInitError_Init_HmdNotFound = 108,
  559. EVRInitError_VRInitError_Init_NotInitialized = 109,
  560. EVRInitError_VRInitError_Init_PathRegistryNotFound = 110,
  561. EVRInitError_VRInitError_Init_NoConfigPath = 111,
  562. EVRInitError_VRInitError_Init_NoLogPath = 112,
  563. EVRInitError_VRInitError_Init_PathRegistryNotWritable = 113,
  564. EVRInitError_VRInitError_Init_AppInfoInitFailed = 114,
  565. EVRInitError_VRInitError_Init_Retry = 115,
  566. EVRInitError_VRInitError_Init_InitCanceledByUser = 116,
  567. EVRInitError_VRInitError_Init_AnotherAppLaunching = 117,
  568. EVRInitError_VRInitError_Init_SettingsInitFailed = 118,
  569. EVRInitError_VRInitError_Init_ShuttingDown = 119,
  570. EVRInitError_VRInitError_Init_TooManyObjects = 120,
  571. EVRInitError_VRInitError_Init_NoServerForBackgroundApp = 121,
  572. EVRInitError_VRInitError_Init_NotSupportedWithCompositor = 122,
  573. EVRInitError_VRInitError_Init_NotAvailableToUtilityApps = 123,
  574. EVRInitError_VRInitError_Init_Internal = 124,
  575. EVRInitError_VRInitError_Driver_Failed = 200,
  576. EVRInitError_VRInitError_Driver_Unknown = 201,
  577. EVRInitError_VRInitError_Driver_HmdUnknown = 202,
  578. EVRInitError_VRInitError_Driver_NotLoaded = 203,
  579. EVRInitError_VRInitError_Driver_RuntimeOutOfDate = 204,
  580. EVRInitError_VRInitError_Driver_HmdInUse = 205,
  581. EVRInitError_VRInitError_Driver_NotCalibrated = 206,
  582. EVRInitError_VRInitError_Driver_CalibrationInvalid = 207,
  583. EVRInitError_VRInitError_Driver_HmdDisplayNotFound = 208,
  584. EVRInitError_VRInitError_IPC_ServerInitFailed = 300,
  585. EVRInitError_VRInitError_IPC_ConnectFailed = 301,
  586. EVRInitError_VRInitError_IPC_SharedStateInitFailed = 302,
  587. EVRInitError_VRInitError_IPC_CompositorInitFailed = 303,
  588. EVRInitError_VRInitError_IPC_MutexInitFailed = 304,
  589. EVRInitError_VRInitError_IPC_Failed = 305,
  590. EVRInitError_VRInitError_Compositor_Failed = 400,
  591. EVRInitError_VRInitError_Compositor_D3D11HardwareRequired = 401,
  592. EVRInitError_VRInitError_Compositor_FirmwareRequiresUpdate = 402,
  593. EVRInitError_VRInitError_Compositor_OverlayInitFailed = 403,
  594. EVRInitError_VRInitError_Compositor_ScreenshotsInitFailed = 404,
  595. EVRInitError_VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
  596. EVRInitError_VRInitError_VendorSpecific_HmdFound_CantOpenDevice = 1101,
  597. EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToRequestConfigStart = 1102,
  598. EVRInitError_VRInitError_VendorSpecific_HmdFound_NoStoredConfig = 1103,
  599. EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooBig = 1104,
  600. EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooSmall = 1105,
  601. EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToInitZLib = 1106,
  602. EVRInitError_VRInitError_VendorSpecific_HmdFound_CantReadFirmwareVersion = 1107,
  603. EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToSendUserDataStart = 1108,
  604. EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataStart = 1109,
  605. EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataNext = 1110,
  606. EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111,
  607. EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataError = 1112,
  608. EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
  609. EVRInitError_VRInitError_Steam_SteamInstallationNotFound = 2000,
  610. } EVRInitError;
  611. typedef enum EVRScreenshotType
  612. {
  613. EVRScreenshotType_VRScreenshotType_None = 0,
  614. EVRScreenshotType_VRScreenshotType_Mono = 1,
  615. EVRScreenshotType_VRScreenshotType_Stereo = 2,
  616. EVRScreenshotType_VRScreenshotType_Cubemap = 3,
  617. EVRScreenshotType_VRScreenshotType_MonoPanorama = 4,
  618. EVRScreenshotType_VRScreenshotType_StereoPanorama = 5,
  619. } EVRScreenshotType;
  620. typedef enum EVRScreenshotPropertyFilenames
  621. {
  622. EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_Preview = 0,
  623. EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_VR = 1,
  624. } EVRScreenshotPropertyFilenames;
  625. typedef enum EVRTrackedCameraError
  626. {
  627. EVRTrackedCameraError_VRTrackedCameraError_None = 0,
  628. EVRTrackedCameraError_VRTrackedCameraError_OperationFailed = 100,
  629. EVRTrackedCameraError_VRTrackedCameraError_InvalidHandle = 101,
  630. EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameHeaderVersion = 102,
  631. EVRTrackedCameraError_VRTrackedCameraError_OutOfHandles = 103,
  632. EVRTrackedCameraError_VRTrackedCameraError_IPCFailure = 104,
  633. EVRTrackedCameraError_VRTrackedCameraError_NotSupportedForThisDevice = 105,
  634. EVRTrackedCameraError_VRTrackedCameraError_SharedMemoryFailure = 106,
  635. EVRTrackedCameraError_VRTrackedCameraError_FrameBufferingFailure = 107,
  636. EVRTrackedCameraError_VRTrackedCameraError_StreamSetupFailure = 108,
  637. EVRTrackedCameraError_VRTrackedCameraError_InvalidGLTextureId = 109,
  638. EVRTrackedCameraError_VRTrackedCameraError_InvalidSharedTextureHandle = 110,
  639. EVRTrackedCameraError_VRTrackedCameraError_FailedToGetGLTextureId = 111,
  640. EVRTrackedCameraError_VRTrackedCameraError_SharedTextureFailure = 112,
  641. EVRTrackedCameraError_VRTrackedCameraError_NoFrameAvailable = 113,
  642. EVRTrackedCameraError_VRTrackedCameraError_InvalidArgument = 114,
  643. EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameBufferSize = 115,
  644. } EVRTrackedCameraError;
  645. typedef enum EVRTrackedCameraFrameType
  646. {
  647. EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Distorted = 0,
  648. EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Undistorted = 1,
  649. EVRTrackedCameraFrameType_VRTrackedCameraFrameType_MaximumUndistorted = 2,
  650. EVRTrackedCameraFrameType_MAX_CAMERA_FRAME_TYPES = 3,
  651. } EVRTrackedCameraFrameType;
  652. typedef enum EVRApplicationError
  653. {
  654. EVRApplicationError_VRApplicationError_None = 0,
  655. EVRApplicationError_VRApplicationError_AppKeyAlreadyExists = 100,
  656. EVRApplicationError_VRApplicationError_NoManifest = 101,
  657. EVRApplicationError_VRApplicationError_NoApplication = 102,
  658. EVRApplicationError_VRApplicationError_InvalidIndex = 103,
  659. EVRApplicationError_VRApplicationError_UnknownApplication = 104,
  660. EVRApplicationError_VRApplicationError_IPCFailed = 105,
  661. EVRApplicationError_VRApplicationError_ApplicationAlreadyRunning = 106,
  662. EVRApplicationError_VRApplicationError_InvalidManifest = 107,
  663. EVRApplicationError_VRApplicationError_InvalidApplication = 108,
  664. EVRApplicationError_VRApplicationError_LaunchFailed = 109,
  665. EVRApplicationError_VRApplicationError_ApplicationAlreadyStarting = 110,
  666. EVRApplicationError_VRApplicationError_LaunchInProgress = 111,
  667. EVRApplicationError_VRApplicationError_OldApplicationQuitting = 112,
  668. EVRApplicationError_VRApplicationError_TransitionAborted = 113,
  669. EVRApplicationError_VRApplicationError_IsTemplate = 114,
  670. EVRApplicationError_VRApplicationError_BufferTooSmall = 200,
  671. EVRApplicationError_VRApplicationError_PropertyNotSet = 201,
  672. EVRApplicationError_VRApplicationError_UnknownProperty = 202,
  673. EVRApplicationError_VRApplicationError_InvalidParameter = 203,
  674. } EVRApplicationError;
  675. typedef enum EVRApplicationProperty
  676. {
  677. EVRApplicationProperty_VRApplicationProperty_Name_String = 0,
  678. EVRApplicationProperty_VRApplicationProperty_LaunchType_String = 11,
  679. EVRApplicationProperty_VRApplicationProperty_WorkingDirectory_String = 12,
  680. EVRApplicationProperty_VRApplicationProperty_BinaryPath_String = 13,
  681. EVRApplicationProperty_VRApplicationProperty_Arguments_String = 14,
  682. EVRApplicationProperty_VRApplicationProperty_URL_String = 15,
  683. EVRApplicationProperty_VRApplicationProperty_Description_String = 50,
  684. EVRApplicationProperty_VRApplicationProperty_NewsURL_String = 51,
  685. EVRApplicationProperty_VRApplicationProperty_ImagePath_String = 52,
  686. EVRApplicationProperty_VRApplicationProperty_Source_String = 53,
  687. EVRApplicationProperty_VRApplicationProperty_IsDashboardOverlay_Bool = 60,
  688. EVRApplicationProperty_VRApplicationProperty_IsTemplate_Bool = 61,
  689. EVRApplicationProperty_VRApplicationProperty_IsInstanced_Bool = 62,
  690. EVRApplicationProperty_VRApplicationProperty_LastLaunchTime_Uint64 = 70,
  691. } EVRApplicationProperty;
  692. typedef enum EVRApplicationTransitionState
  693. {
  694. EVRApplicationTransitionState_VRApplicationTransition_None = 0,
  695. EVRApplicationTransitionState_VRApplicationTransition_OldAppQuitSent = 10,
  696. EVRApplicationTransitionState_VRApplicationTransition_WaitingForExternalLaunch = 11,
  697. EVRApplicationTransitionState_VRApplicationTransition_NewAppLaunched = 20,
  698. } EVRApplicationTransitionState;
  699. typedef enum ChaperoneCalibrationState
  700. {
  701. ChaperoneCalibrationState_OK = 1,
  702. ChaperoneCalibrationState_Warning = 100,
  703. ChaperoneCalibrationState_Warning_BaseStationMayHaveMoved = 101,
  704. ChaperoneCalibrationState_Warning_BaseStationRemoved = 102,
  705. ChaperoneCalibrationState_Warning_SeatedBoundsInvalid = 103,
  706. ChaperoneCalibrationState_Error = 200,
  707. ChaperoneCalibrationState_Error_BaseStationUninitalized = 201,
  708. ChaperoneCalibrationState_Error_BaseStationConflict = 202,
  709. ChaperoneCalibrationState_Error_PlayAreaInvalid = 203,
  710. ChaperoneCalibrationState_Error_CollisionBoundsInvalid = 204,
  711. } ChaperoneCalibrationState;
  712. typedef enum EChaperoneConfigFile
  713. {
  714. EChaperoneConfigFile_Live = 1,
  715. EChaperoneConfigFile_Temp = 2,
  716. } EChaperoneConfigFile;
  717. typedef enum EChaperoneImportFlags
  718. {
  719. EChaperoneImportFlags_EChaperoneImport_BoundsOnly = 1,
  720. } EChaperoneImportFlags;
  721. typedef enum EVRCompositorError
  722. {
  723. EVRCompositorError_VRCompositorError_None = 0,
  724. EVRCompositorError_VRCompositorError_RequestFailed = 1,
  725. EVRCompositorError_VRCompositorError_IncompatibleVersion = 100,
  726. EVRCompositorError_VRCompositorError_DoNotHaveFocus = 101,
  727. EVRCompositorError_VRCompositorError_InvalidTexture = 102,
  728. EVRCompositorError_VRCompositorError_IsNotSceneApplication = 103,
  729. EVRCompositorError_VRCompositorError_TextureIsOnWrongDevice = 104,
  730. EVRCompositorError_VRCompositorError_TextureUsesUnsupportedFormat = 105,
  731. EVRCompositorError_VRCompositorError_SharedTexturesNotSupported = 106,
  732. EVRCompositorError_VRCompositorError_IndexOutOfRange = 107,
  733. } EVRCompositorError;
  734. typedef enum VROverlayInputMethod
  735. {
  736. VROverlayInputMethod_None = 0,
  737. VROverlayInputMethod_Mouse = 1,
  738. } VROverlayInputMethod;
  739. typedef enum VROverlayTransformType
  740. {
  741. VROverlayTransformType_VROverlayTransform_Absolute = 0,
  742. VROverlayTransformType_VROverlayTransform_TrackedDeviceRelative = 1,
  743. VROverlayTransformType_VROverlayTransform_SystemOverlay = 2,
  744. VROverlayTransformType_VROverlayTransform_TrackedComponent = 3,
  745. } VROverlayTransformType;
  746. typedef enum VROverlayFlags
  747. {
  748. VROverlayFlags_None = 0,
  749. VROverlayFlags_Curved = 1,
  750. VROverlayFlags_RGSS4X = 2,
  751. VROverlayFlags_NoDashboardTab = 3,
  752. VROverlayFlags_AcceptsGamepadEvents = 4,
  753. VROverlayFlags_ShowGamepadFocus = 5,
  754. VROverlayFlags_SendVRScrollEvents = 6,
  755. VROverlayFlags_SendVRTouchpadEvents = 7,
  756. VROverlayFlags_ShowTouchPadScrollWheel = 8,
  757. VROverlayFlags_TransferOwnershipToInternalProcess = 9,
  758. VROverlayFlags_SideBySide_Parallel = 10,
  759. VROverlayFlags_SideBySide_Crossed = 11,
  760. VROverlayFlags_Panorama = 12,
  761. VROverlayFlags_StereoPanorama = 13,
  762. } VROverlayFlags;
  763. typedef enum EGamepadTextInputMode
  764. {
  765. EGamepadTextInputMode_k_EGamepadTextInputModeNormal = 0,
  766. EGamepadTextInputMode_k_EGamepadTextInputModePassword = 1,
  767. EGamepadTextInputMode_k_EGamepadTextInputModeSubmit = 2,
  768. } EGamepadTextInputMode;
  769. typedef enum EGamepadTextInputLineMode
  770. {
  771. EGamepadTextInputLineMode_k_EGamepadTextInputLineModeSingleLine = 0,
  772. EGamepadTextInputLineMode_k_EGamepadTextInputLineModeMultipleLines = 1,
  773. } EGamepadTextInputLineMode;
  774. typedef enum EOverlayDirection
  775. {
  776. EOverlayDirection_OverlayDirection_Up = 0,
  777. EOverlayDirection_OverlayDirection_Down = 1,
  778. EOverlayDirection_OverlayDirection_Left = 2,
  779. EOverlayDirection_OverlayDirection_Right = 3,
  780. EOverlayDirection_OverlayDirection_Count = 4,
  781. } EOverlayDirection;
  782. typedef enum EVRRenderModelError
  783. {
  784. EVRRenderModelError_VRRenderModelError_None = 0,
  785. EVRRenderModelError_VRRenderModelError_Loading = 100,
  786. EVRRenderModelError_VRRenderModelError_NotSupported = 200,
  787. EVRRenderModelError_VRRenderModelError_InvalidArg = 300,
  788. EVRRenderModelError_VRRenderModelError_InvalidModel = 301,
  789. EVRRenderModelError_VRRenderModelError_NoShapes = 302,
  790. EVRRenderModelError_VRRenderModelError_MultipleShapes = 303,
  791. EVRRenderModelError_VRRenderModelError_TooManyVertices = 304,
  792. EVRRenderModelError_VRRenderModelError_MultipleTextures = 305,
  793. EVRRenderModelError_VRRenderModelError_BufferTooSmall = 306,
  794. EVRRenderModelError_VRRenderModelError_NotEnoughNormals = 307,
  795. EVRRenderModelError_VRRenderModelError_NotEnoughTexCoords = 308,
  796. EVRRenderModelError_VRRenderModelError_InvalidTexture = 400,
  797. } EVRRenderModelError;
  798. typedef enum EVRComponentProperty
  799. {
  800. EVRComponentProperty_VRComponentProperty_IsStatic = 1,
  801. EVRComponentProperty_VRComponentProperty_IsVisible = 2,
  802. EVRComponentProperty_VRComponentProperty_IsTouched = 4,
  803. EVRComponentProperty_VRComponentProperty_IsPressed = 8,
  804. EVRComponentProperty_VRComponentProperty_IsScrolled = 16,
  805. } EVRComponentProperty;
  806. typedef enum EVRNotificationType
  807. {
  808. EVRNotificationType_Transient = 0,
  809. EVRNotificationType_Persistent = 1,
  810. EVRNotificationType_Transient_SystemWithUserValue = 2,
  811. } EVRNotificationType;
  812. typedef enum EVRNotificationStyle
  813. {
  814. EVRNotificationStyle_None = 0,
  815. EVRNotificationStyle_Application = 100,
  816. EVRNotificationStyle_Contact_Disabled = 200,
  817. EVRNotificationStyle_Contact_Enabled = 201,
  818. EVRNotificationStyle_Contact_Active = 202,
  819. } EVRNotificationStyle;
  820. typedef enum EVRSettingsError
  821. {
  822. EVRSettingsError_VRSettingsError_None = 0,
  823. EVRSettingsError_VRSettingsError_IPCFailed = 1,
  824. EVRSettingsError_VRSettingsError_WriteFailed = 2,
  825. EVRSettingsError_VRSettingsError_ReadFailed = 3,
  826. } EVRSettingsError;
  827. typedef enum EVRScreenshotError
  828. {
  829. EVRScreenshotError_VRScreenshotError_None = 0,
  830. EVRScreenshotError_VRScreenshotError_RequestFailed = 1,
  831. EVRScreenshotError_VRScreenshotError_IncompatibleVersion = 100,
  832. EVRScreenshotError_VRScreenshotError_NotFound = 101,
  833. EVRScreenshotError_VRScreenshotError_BufferTooSmall = 102,
  834. EVRScreenshotError_VRScreenshotError_ScreenshotAlreadyInProgress = 108,
  835. } EVRScreenshotError;
  836. // OpenVR typedefs
  837. typedef uint32_t TrackedDeviceIndex_t;
  838. typedef uint32_t VRNotificationId;
  839. typedef uint64_t VROverlayHandle_t;
  840. typedef void * glSharedTextureHandle_t;
  841. typedef int32_t glInt_t;
  842. typedef uint32_t glUInt_t;
  843. typedef uint32_t TrackedDeviceIndex_t;
  844. typedef uint64_t VROverlayHandle_t;
  845. typedef uint64_t TrackedCameraHandle_t;
  846. typedef uint32_t ScreenshotHandle_t;
  847. typedef uint32_t VRComponentProperties;
  848. typedef int32_t TextureID_t;
  849. typedef uint32_t VRNotificationId;
  850. typedef EVRInitError HmdError;
  851. typedef EVREye Hmd_Eye;
  852. typedef EGraphicsAPIConvention GraphicsAPIConvention;
  853. typedef EColorSpace ColorSpace;
  854. typedef ETrackingResult HmdTrackingResult;
  855. typedef ETrackedDeviceClass TrackedDeviceClass;
  856. typedef ETrackingUniverseOrigin TrackingUniverseOrigin;
  857. typedef ETrackedDeviceProperty TrackedDeviceProperty;
  858. typedef ETrackedPropertyError TrackedPropertyError;
  859. typedef EVRSubmitFlags VRSubmitFlags_t;
  860. typedef EVRState VRState_t;
  861. typedef ECollisionBoundsStyle CollisionBoundsStyle_t;
  862. typedef EVROverlayError VROverlayError;
  863. typedef EVRFirmwareError VRFirmwareError;
  864. typedef EVRCompositorError VRCompositorError;
  865. typedef EVRScreenshotError VRScreenshotsError;
  866. // OpenVR Structs
  867. typedef struct HmdMatrix34_t
  868. {
  869. float m[3][4]; //float[3][4]
  870. } HmdMatrix34_t;
  871. typedef struct HmdMatrix44_t
  872. {
  873. float m[4][4]; //float[4][4]
  874. } HmdMatrix44_t;
  875. typedef struct HmdVector3_t
  876. {
  877. float v[3]; //float[3]
  878. } HmdVector3_t;
  879. typedef struct HmdVector4_t
  880. {
  881. float v[4]; //float[4]
  882. } HmdVector4_t;
  883. typedef struct HmdVector3d_t
  884. {
  885. double v[3]; //double[3]
  886. } HmdVector3d_t;
  887. typedef struct HmdVector2_t
  888. {
  889. float v[2]; //float[2]
  890. } HmdVector2_t;
  891. typedef struct HmdQuaternion_t
  892. {
  893. double w;
  894. double x;
  895. double y;
  896. double z;
  897. } HmdQuaternion_t;
  898. typedef struct HmdColor_t
  899. {
  900. float r;
  901. float g;
  902. float b;
  903. float a;
  904. } HmdColor_t;
  905. typedef struct HmdQuad_t
  906. {
  907. struct HmdVector3_t vCorners[4]; //struct vr::HmdVector3_t[4]
  908. } HmdQuad_t;
  909. typedef struct HmdRect2_t
  910. {
  911. struct HmdVector2_t vTopLeft;
  912. struct HmdVector2_t vBottomRight;
  913. } HmdRect2_t;
  914. typedef struct DistortionCoordinates_t
  915. {
  916. float rfRed[2]; //float[2]
  917. float rfGreen[2]; //float[2]
  918. float rfBlue[2]; //float[2]
  919. } DistortionCoordinates_t;
  920. typedef struct Texture_t
  921. {
  922. void * handle; // void *
  923. enum EGraphicsAPIConvention eType;
  924. enum EColorSpace eColorSpace;
  925. } Texture_t;
  926. typedef struct TrackedDevicePose_t
  927. {
  928. struct HmdMatrix34_t mDeviceToAbsoluteTracking;
  929. struct HmdVector3_t vVelocity;
  930. struct HmdVector3_t vAngularVelocity;
  931. enum ETrackingResult eTrackingResult;
  932. bool bPoseIsValid;
  933. bool bDeviceIsConnected;
  934. } TrackedDevicePose_t;
  935. typedef struct VRTextureBounds_t
  936. {
  937. float uMin;
  938. float vMin;
  939. float uMax;
  940. float vMax;
  941. } VRTextureBounds_t;
  942. typedef struct VREvent_Controller_t
  943. {
  944. uint32_t button;
  945. } VREvent_Controller_t;
  946. typedef struct VREvent_Mouse_t
  947. {
  948. float x;
  949. float y;
  950. uint32_t button;
  951. } VREvent_Mouse_t;
  952. typedef struct VREvent_Scroll_t
  953. {
  954. float xdelta;
  955. float ydelta;
  956. uint32_t repeatCount;
  957. } VREvent_Scroll_t;
  958. typedef struct VREvent_TouchPadMove_t
  959. {
  960. bool bFingerDown;
  961. float flSecondsFingerDown;
  962. float fValueXFirst;
  963. float fValueYFirst;
  964. float fValueXRaw;
  965. float fValueYRaw;
  966. } VREvent_TouchPadMove_t;
  967. typedef struct VREvent_Notification_t
  968. {
  969. uint64_t ulUserValue;
  970. uint32_t notificationId;
  971. } VREvent_Notification_t;
  972. typedef struct VREvent_Process_t
  973. {
  974. uint32_t pid;
  975. uint32_t oldPid;
  976. bool bForced;
  977. } VREvent_Process_t;
  978. typedef struct VREvent_Overlay_t
  979. {
  980. uint64_t overlayHandle;
  981. } VREvent_Overlay_t;
  982. typedef struct VREvent_Status_t
  983. {
  984. uint32_t statusState;
  985. } VREvent_Status_t;
  986. typedef struct VREvent_Keyboard_t
  987. {
  988. char * cNewInput[8]; //char[8]
  989. uint64_t uUserValue;
  990. } VREvent_Keyboard_t;
  991. typedef struct VREvent_Ipd_t
  992. {
  993. float ipdMeters;
  994. } VREvent_Ipd_t;
  995. typedef struct VREvent_Chaperone_t
  996. {
  997. uint64_t m_nPreviousUniverse;
  998. uint64_t m_nCurrentUniverse;
  999. } VREvent_Chaperone_t;
  1000. typedef struct VREvent_Reserved_t
  1001. {
  1002. uint64_t reserved0;
  1003. uint64_t reserved1;
  1004. } VREvent_Reserved_t;
  1005. typedef struct VREvent_PerformanceTest_t
  1006. {
  1007. uint32_t m_nFidelityLevel;
  1008. } VREvent_PerformanceTest_t;
  1009. typedef struct VREvent_SeatedZeroPoseReset_t
  1010. {
  1011. bool bResetBySystemMenu;
  1012. } VREvent_SeatedZeroPoseReset_t;
  1013. typedef struct VREvent_Screenshot_t
  1014. {
  1015. uint32_t handle;
  1016. uint32_t type;
  1017. } VREvent_Screenshot_t;
  1018. typedef struct HiddenAreaMesh_t
  1019. {
  1020. struct HmdVector2_t * pVertexData; // const struct vr::HmdVector2_t *
  1021. uint32_t unTriangleCount;
  1022. } HiddenAreaMesh_t;
  1023. typedef struct VRControllerAxis_t
  1024. {
  1025. float x;
  1026. float y;
  1027. } VRControllerAxis_t;
  1028. typedef struct VRControllerState_t
  1029. {
  1030. uint32_t unPacketNum;
  1031. uint64_t ulButtonPressed;
  1032. uint64_t ulButtonTouched;
  1033. struct VRControllerAxis_t rAxis[5]; //struct vr::VRControllerAxis_t[5]
  1034. } VRControllerState_t;
  1035. typedef struct Compositor_OverlaySettings
  1036. {
  1037. uint32_t size;
  1038. bool curved;
  1039. bool antialias;
  1040. float scale;
  1041. float distance;
  1042. float alpha;
  1043. float uOffset;
  1044. float vOffset;
  1045. float uScale;
  1046. float vScale;
  1047. float gridDivs;
  1048. float gridWidth;
  1049. float gridScale;
  1050. struct HmdMatrix44_t transform;
  1051. } Compositor_OverlaySettings;
  1052. typedef struct CameraVideoStreamFrameHeader_t
  1053. {
  1054. enum EVRTrackedCameraFrameType eFrameType;
  1055. uint32_t nWidth;
  1056. uint32_t nHeight;
  1057. uint32_t nBytesPerPixel;
  1058. uint32_t nFrameSequence;
  1059. struct TrackedDevicePose_t standingTrackedDevicePose;
  1060. } CameraVideoStreamFrameHeader_t;
  1061. typedef struct AppOverrideKeys_t
  1062. {
  1063. char * pchKey; // const char *
  1064. char * pchValue; // const char *
  1065. } AppOverrideKeys_t;
  1066. typedef struct Compositor_FrameTiming
  1067. {
  1068. uint32_t m_nSize;
  1069. uint32_t m_nFrameIndex;
  1070. uint32_t m_nNumFramePresents;
  1071. uint32_t m_nNumDroppedFrames;
  1072. double m_flSystemTimeInSeconds;
  1073. float m_flSceneRenderGpuMs;
  1074. float m_flTotalRenderGpuMs;
  1075. float m_flCompositorRenderGpuMs;
  1076. float m_flCompositorRenderCpuMs;
  1077. float m_flCompositorIdleCpuMs;
  1078. float m_flClientFrameIntervalMs;
  1079. float m_flPresentCallCpuMs;
  1080. float m_flWaitForPresentCpuMs;
  1081. float m_flSubmitFrameMs;
  1082. float m_flWaitGetPosesCalledMs;
  1083. float m_flNewPosesReadyMs;
  1084. float m_flNewFrameReadyMs;
  1085. float m_flCompositorUpdateStartMs;
  1086. float m_flCompositorUpdateEndMs;
  1087. float m_flCompositorRenderStartMs;
  1088. TrackedDevicePose_t m_HmdPose;
  1089. int32_t m_nFidelityLevel;
  1090. uint32_t m_nReprojectionFlags;
  1091. } Compositor_FrameTiming;
  1092. typedef struct Compositor_CumulativeStats
  1093. {
  1094. uint32_t m_nPid;
  1095. uint32_t m_nNumFramePresents;
  1096. uint32_t m_nNumDroppedFrames;
  1097. uint32_t m_nNumReprojectedFrames;
  1098. uint32_t m_nNumFramePresentsOnStartup;
  1099. uint32_t m_nNumDroppedFramesOnStartup;
  1100. uint32_t m_nNumReprojectedFramesOnStartup;
  1101. uint32_t m_nNumLoading;
  1102. uint32_t m_nNumFramePresentsLoading;
  1103. uint32_t m_nNumDroppedFramesLoading;
  1104. uint32_t m_nNumReprojectedFramesLoading;
  1105. uint32_t m_nNumTimedOut;
  1106. uint32_t m_nNumFramePresentsTimedOut;
  1107. uint32_t m_nNumDroppedFramesTimedOut;
  1108. uint32_t m_nNumReprojectedFramesTimedOut;
  1109. } Compositor_CumulativeStats;
  1110. typedef struct VROverlayIntersectionParams_t
  1111. {
  1112. struct HmdVector3_t vSource;
  1113. struct HmdVector3_t vDirection;
  1114. enum ETrackingUniverseOrigin eOrigin;
  1115. } VROverlayIntersectionParams_t;
  1116. typedef struct VROverlayIntersectionResults_t
  1117. {
  1118. struct HmdVector3_t vPoint;
  1119. struct HmdVector3_t vNormal;
  1120. struct HmdVector2_t vUVs;
  1121. float fDistance;
  1122. } VROverlayIntersectionResults_t;
  1123. typedef struct RenderModel_ComponentState_t
  1124. {
  1125. struct HmdMatrix34_t mTrackingToComponentRenderModel;
  1126. struct HmdMatrix34_t mTrackingToComponentLocal;
  1127. VRComponentProperties uProperties;
  1128. } RenderModel_ComponentState_t;
  1129. typedef struct RenderModel_Vertex_t
  1130. {
  1131. struct HmdVector3_t vPosition;
  1132. struct HmdVector3_t vNormal;
  1133. float rfTextureCoord[2]; //float[2]
  1134. } RenderModel_Vertex_t;
  1135. typedef struct RenderModel_TextureMap_t
  1136. {
  1137. uint16_t unWidth;
  1138. uint16_t unHeight;
  1139. uint8_t * rubTextureMapData; // const uint8_t *
  1140. } RenderModel_TextureMap_t;
  1141. typedef struct RenderModel_t
  1142. {
  1143. struct RenderModel_Vertex_t * rVertexData; // const struct vr::RenderModel_Vertex_t *
  1144. uint32_t unVertexCount;
  1145. uint16_t * rIndexData; // const uint16_t *
  1146. uint32_t unTriangleCount;
  1147. TextureID_t diffuseTextureId;
  1148. } RenderModel_t;
  1149. typedef struct RenderModel_ControllerMode_State_t
  1150. {
  1151. bool bScrollWheelVisible;
  1152. } RenderModel_ControllerMode_State_t;
  1153. typedef struct NotificationBitmap_t
  1154. {
  1155. void * m_pImageData; // void *
  1156. int32_t m_nWidth;
  1157. int32_t m_nHeight;
  1158. int32_t m_nBytesPerPixel;
  1159. } NotificationBitmap_t;
  1160. typedef struct COpenVRContext
  1161. {
  1162. intptr_t m_pVRSystem; // class vr::IVRSystem *
  1163. intptr_t m_pVRChaperone; // class vr::IVRChaperone *
  1164. intptr_t m_pVRChaperoneSetup; // class vr::IVRChaperoneSetup *
  1165. intptr_t m_pVRCompositor; // class vr::IVRCompositor *
  1166. intptr_t m_pVROverlay; // class vr::IVROverlay *
  1167. intptr_t m_pVRRenderModels; // class vr::IVRRenderModels *
  1168. intptr_t m_pVRExtendedDisplay; // class vr::IVRExtendedDisplay *
  1169. intptr_t m_pVRSettings; // class vr::IVRSettings *
  1170. intptr_t m_pVRApplications; // class vr::IVRApplications *
  1171. intptr_t m_pVRTrackedCamera; // class vr::IVRTrackedCamera *
  1172. intptr_t m_pVRScreenshots; // class vr::IVRScreenshots *
  1173. } COpenVRContext;
  1174. typedef union
  1175. {
  1176. VREvent_Reserved_t reserved;
  1177. VREvent_Controller_t controller;
  1178. VREvent_Mouse_t mouse;
  1179. VREvent_Scroll_t scroll;
  1180. VREvent_Process_t process;
  1181. VREvent_Notification_t notification;
  1182. VREvent_Overlay_t overlay;
  1183. VREvent_Status_t status;
  1184. VREvent_Keyboard_t keyboard;
  1185. VREvent_Ipd_t ipd;
  1186. VREvent_Chaperone_t chaperone;
  1187. VREvent_PerformanceTest_t performanceTest;
  1188. VREvent_TouchPadMove_t touchPadMove;
  1189. VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset;
  1190. } VREvent_Data_t;
  1191. /** An event posted by the server to all running applications */
  1192. struct VREvent_t
  1193. {
  1194. uint32_t eventType; // EVREventType enum
  1195. TrackedDeviceIndex_t trackedDeviceIndex;
  1196. float eventAgeSeconds;
  1197. // event data must be the end of the struct as its size is variable
  1198. VREvent_Data_t data;
  1199. };
  1200. // OpenVR Function Pointer Tables
  1201. struct VR_IVRSystem_FnTable
  1202. {
  1203. void (OPENVR_FNTABLE_CALLTYPE *GetRecommendedRenderTargetSize)(uint32_t * pnWidth, uint32_t * pnHeight);
  1204. struct HmdMatrix44_t (OPENVR_FNTABLE_CALLTYPE *GetProjectionMatrix)(EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType);
  1205. void (OPENVR_FNTABLE_CALLTYPE *GetProjectionRaw)(EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom);
  1206. struct DistortionCoordinates_t (OPENVR_FNTABLE_CALLTYPE *ComputeDistortion)(EVREye eEye, float fU, float fV);
  1207. struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetEyeToHeadTransform)(EVREye eEye);
  1208. bool (OPENVR_FNTABLE_CALLTYPE *GetTimeSinceLastVsync)(float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter);
  1209. int32_t (OPENVR_FNTABLE_CALLTYPE *GetD3D9AdapterIndex)();
  1210. void (OPENVR_FNTABLE_CALLTYPE *GetDXGIOutputInfo)(int32_t * pnAdapterIndex);
  1211. bool (OPENVR_FNTABLE_CALLTYPE *IsDisplayOnDesktop)();
  1212. bool (OPENVR_FNTABLE_CALLTYPE *SetDisplayVisibility)(bool bIsVisibleOnDesktop);
  1213. void (OPENVR_FNTABLE_CALLTYPE *GetDeviceToAbsoluteTrackingPose)(ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, struct TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount);
  1214. void (OPENVR_FNTABLE_CALLTYPE *ResetSeatedZeroPose)();
  1215. struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetSeatedZeroPoseToStandingAbsoluteTrackingPose)();
  1216. struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetRawZeroPoseToStandingAbsoluteTrackingPose)();
  1217. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetSortedTrackedDeviceIndicesOfClass)(ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex);
  1218. EDeviceActivityLevel (OPENVR_FNTABLE_CALLTYPE *GetTrackedDeviceActivityLevel)(TrackedDeviceIndex_t unDeviceId);
  1219. void (OPENVR_FNTABLE_CALLTYPE *ApplyTransform)(struct TrackedDevicePose_t * pOutputPose, struct TrackedDevicePose_t * pTrackedDevicePose, struct HmdMatrix34_t * pTransform);
  1220. TrackedDeviceIndex_t (OPENVR_FNTABLE_CALLTYPE *GetTrackedDeviceIndexForControllerRole)(ETrackedControllerRole unDeviceType);
  1221. ETrackedControllerRole (OPENVR_FNTABLE_CALLTYPE *GetControllerRoleForTrackedDeviceIndex)(TrackedDeviceIndex_t unDeviceIndex);
  1222. ETrackedDeviceClass (OPENVR_FNTABLE_CALLTYPE *GetTrackedDeviceClass)(TrackedDeviceIndex_t unDeviceIndex);
  1223. bool (OPENVR_FNTABLE_CALLTYPE *IsTrackedDeviceConnected)(TrackedDeviceIndex_t unDeviceIndex);
  1224. bool (OPENVR_FNTABLE_CALLTYPE *GetBoolTrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError);
  1225. float (OPENVR_FNTABLE_CALLTYPE *GetFloatTrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError);
  1226. int32_t (OPENVR_FNTABLE_CALLTYPE *GetInt32TrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError);
  1227. uint64_t (OPENVR_FNTABLE_CALLTYPE *GetUint64TrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError);
  1228. struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetMatrix34TrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError);
  1229. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetStringTrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError);
  1230. char * (OPENVR_FNTABLE_CALLTYPE *GetPropErrorNameFromEnum)(ETrackedPropertyError error);
  1231. bool (OPENVR_FNTABLE_CALLTYPE *PollNextEvent)(struct VREvent_t * pEvent, uint32_t uncbVREvent);
  1232. bool (OPENVR_FNTABLE_CALLTYPE *PollNextEventWithPose)(ETrackingUniverseOrigin eOrigin, struct VREvent_t * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose);
  1233. char * (OPENVR_FNTABLE_CALLTYPE *GetEventTypeNameFromEnum)(EVREventType eType);
  1234. struct HiddenAreaMesh_t (OPENVR_FNTABLE_CALLTYPE *GetHiddenAreaMesh)(EVREye eEye);
  1235. bool (OPENVR_FNTABLE_CALLTYPE *GetControllerState)(TrackedDeviceIndex_t unControllerDeviceIndex, VRControllerState_t * pControllerState);
  1236. bool (OPENVR_FNTABLE_CALLTYPE *GetControllerStateWithPose)(ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, VRControllerState_t * pControllerState, struct TrackedDevicePose_t * pTrackedDevicePose);
  1237. void (OPENVR_FNTABLE_CALLTYPE *TriggerHapticPulse)(TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec);
  1238. char * (OPENVR_FNTABLE_CALLTYPE *GetButtonIdNameFromEnum)(EVRButtonId eButtonId);
  1239. char * (OPENVR_FNTABLE_CALLTYPE *GetControllerAxisTypeNameFromEnum)(EVRControllerAxisType eAxisType);
  1240. bool (OPENVR_FNTABLE_CALLTYPE *CaptureInputFocus)();
  1241. void (OPENVR_FNTABLE_CALLTYPE *ReleaseInputFocus)();
  1242. bool (OPENVR_FNTABLE_CALLTYPE *IsInputFocusCapturedByAnotherProcess)();
  1243. uint32_t (OPENVR_FNTABLE_CALLTYPE *DriverDebugRequest)(TrackedDeviceIndex_t unDeviceIndex, char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize);
  1244. EVRFirmwareError (OPENVR_FNTABLE_CALLTYPE *PerformFirmwareUpdate)(TrackedDeviceIndex_t unDeviceIndex);
  1245. void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_Exiting)();
  1246. void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_UserPrompt)();
  1247. };
  1248. struct VR_IVRExtendedDisplay_FnTable
  1249. {
  1250. void (OPENVR_FNTABLE_CALLTYPE *GetWindowBounds)(int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight);
  1251. void (OPENVR_FNTABLE_CALLTYPE *GetEyeOutputViewport)(EVREye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight);
  1252. void (OPENVR_FNTABLE_CALLTYPE *GetDXGIOutputInfo)(int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex);
  1253. };
  1254. struct VR_IVRTrackedCamera_FnTable
  1255. {
  1256. char * (OPENVR_FNTABLE_CALLTYPE *GetCameraErrorNameFromEnum)(EVRTrackedCameraError eCameraError);
  1257. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *HasCamera)(TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera);
  1258. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraFrameSize)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize);
  1259. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraIntrinisics)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter);
  1260. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraProjection)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection);
  1261. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *AcquireVideoStreamingService)(TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle);
  1262. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoStreamingService)(TrackedCameraHandle_t hTrackedCamera);
  1263. EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamFrameBuffer)(TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize);
  1264. };
  1265. struct VR_IVRApplications_FnTable
  1266. {
  1267. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *AddApplicationManifest)(char * pchApplicationManifestFullPath, bool bTemporary);
  1268. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *RemoveApplicationManifest)(char * pchApplicationManifestFullPath);
  1269. bool (OPENVR_FNTABLE_CALLTYPE *IsApplicationInstalled)(char * pchAppKey);
  1270. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationCount)();
  1271. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetApplicationKeyByIndex)(uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen);
  1272. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetApplicationKeyByProcessId)(uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen);
  1273. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchApplication)(char * pchAppKey);
  1274. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchTemplateApplication)(char * pchTemplateAppKey, char * pchNewAppKey, struct AppOverrideKeys_t * pKeys, uint32_t unKeys);
  1275. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchDashboardOverlay)(char * pchAppKey);
  1276. bool (OPENVR_FNTABLE_CALLTYPE *CancelApplicationLaunch)(char * pchAppKey);
  1277. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *IdentifyApplication)(uint32_t unProcessId, char * pchAppKey);
  1278. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationProcessId)(char * pchAppKey);
  1279. char * (OPENVR_FNTABLE_CALLTYPE *GetApplicationsErrorNameFromEnum)(EVRApplicationError error);
  1280. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationPropertyString)(char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError);
  1281. bool (OPENVR_FNTABLE_CALLTYPE *GetApplicationPropertyBool)(char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError);
  1282. uint64_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationPropertyUint64)(char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError);
  1283. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *SetApplicationAutoLaunch)(char * pchAppKey, bool bAutoLaunch);
  1284. bool (OPENVR_FNTABLE_CALLTYPE *GetApplicationAutoLaunch)(char * pchAppKey);
  1285. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetStartingApplication)(char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen);
  1286. EVRApplicationTransitionState (OPENVR_FNTABLE_CALLTYPE *GetTransitionState)();
  1287. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *PerformApplicationPrelaunchCheck)(char * pchAppKey);
  1288. char * (OPENVR_FNTABLE_CALLTYPE *GetApplicationsTransitionStateNameFromEnum)(EVRApplicationTransitionState state);
  1289. bool (OPENVR_FNTABLE_CALLTYPE *IsQuitUserPromptRequested)();
  1290. EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchInternalProcess)(char * pchBinaryPath, char * pchArguments, char * pchWorkingDirectory);
  1291. };
  1292. struct VR_IVRChaperone_FnTable
  1293. {
  1294. ChaperoneCalibrationState (OPENVR_FNTABLE_CALLTYPE *GetCalibrationState)();
  1295. bool (OPENVR_FNTABLE_CALLTYPE *GetPlayAreaSize)(float * pSizeX, float * pSizeZ);
  1296. bool (OPENVR_FNTABLE_CALLTYPE *GetPlayAreaRect)(struct HmdQuad_t * rect);
  1297. void (OPENVR_FNTABLE_CALLTYPE *ReloadInfo)();
  1298. void (OPENVR_FNTABLE_CALLTYPE *SetSceneColor)(struct HmdColor_t color);
  1299. void (OPENVR_FNTABLE_CALLTYPE *GetBoundsColor)(struct HmdColor_t * pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, struct HmdColor_t * pOutputCameraColor);
  1300. bool (OPENVR_FNTABLE_CALLTYPE *AreBoundsVisible)();
  1301. void (OPENVR_FNTABLE_CALLTYPE *ForceBoundsVisible)(bool bForce);
  1302. };
  1303. struct VR_IVRChaperoneSetup_FnTable
  1304. {
  1305. bool (OPENVR_FNTABLE_CALLTYPE *CommitWorkingCopy)(EChaperoneConfigFile configFile);
  1306. void (OPENVR_FNTABLE_CALLTYPE *RevertWorkingCopy)();
  1307. bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingPlayAreaSize)(float * pSizeX, float * pSizeZ);
  1308. bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingPlayAreaRect)(struct HmdQuad_t * rect);
  1309. bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount);
  1310. bool (OPENVR_FNTABLE_CALLTYPE *GetLiveCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount);
  1311. bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose);
  1312. bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingStandingZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatStandingZeroPoseToRawTrackingPose);
  1313. void (OPENVR_FNTABLE_CALLTYPE *SetWorkingPlayAreaSize)(float sizeX, float sizeZ);
  1314. void (OPENVR_FNTABLE_CALLTYPE *SetWorkingCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount);
  1315. void (OPENVR_FNTABLE_CALLTYPE *SetWorkingSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pMatSeatedZeroPoseToRawTrackingPose);
  1316. void (OPENVR_FNTABLE_CALLTYPE *SetWorkingStandingZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pMatStandingZeroPoseToRawTrackingPose);
  1317. void (OPENVR_FNTABLE_CALLTYPE *ReloadFromDisk)(EChaperoneConfigFile configFile);
  1318. bool (OPENVR_FNTABLE_CALLTYPE *GetLiveSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose);
  1319. void (OPENVR_FNTABLE_CALLTYPE *SetWorkingCollisionBoundsTagsInfo)(uint8_t * pTagsBuffer, uint32_t unTagCount);
  1320. bool (OPENVR_FNTABLE_CALLTYPE *GetLiveCollisionBoundsTagsInfo)(uint8_t * pTagsBuffer, uint32_t * punTagCount);
  1321. bool (OPENVR_FNTABLE_CALLTYPE *SetWorkingPhysicalBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount);
  1322. bool (OPENVR_FNTABLE_CALLTYPE *GetLivePhysicalBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount);
  1323. bool (OPENVR_FNTABLE_CALLTYPE *ExportLiveToBuffer)(char * pBuffer, uint32_t * pnBufferLength);
  1324. bool (OPENVR_FNTABLE_CALLTYPE *ImportFromBufferToWorking)(char * pBuffer, uint32_t nImportFlags);
  1325. };
  1326. struct VR_IVRCompositor_FnTable
  1327. {
  1328. void (OPENVR_FNTABLE_CALLTYPE *SetTrackingSpace)(ETrackingUniverseOrigin eOrigin);
  1329. ETrackingUniverseOrigin (OPENVR_FNTABLE_CALLTYPE *GetTrackingSpace)();
  1330. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *WaitGetPoses)(struct TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, struct TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount);
  1331. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetLastPoses)(struct TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, struct TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount);
  1332. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetLastPoseForTrackedDeviceIndex)(TrackedDeviceIndex_t unDeviceIndex, struct TrackedDevicePose_t * pOutputPose, struct TrackedDevicePose_t * pOutputGamePose);
  1333. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *Submit)(EVREye eEye, struct Texture_t * pTexture, struct VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags);
  1334. void (OPENVR_FNTABLE_CALLTYPE *ClearLastSubmittedFrame)();
  1335. void (OPENVR_FNTABLE_CALLTYPE *PostPresentHandoff)();
  1336. bool (OPENVR_FNTABLE_CALLTYPE *GetFrameTiming)(struct Compositor_FrameTiming * pTiming, uint32_t unFramesAgo);
  1337. float (OPENVR_FNTABLE_CALLTYPE *GetFrameTimeRemaining)();
  1338. void (OPENVR_FNTABLE_CALLTYPE *GetCumulativeStats)(struct Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes);
  1339. void (OPENVR_FNTABLE_CALLTYPE *FadeToColor)(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground);
  1340. void (OPENVR_FNTABLE_CALLTYPE *FadeGrid)(float fSeconds, bool bFadeIn);
  1341. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *SetSkyboxOverride)(struct Texture_t * pTextures, uint32_t unTextureCount);
  1342. void (OPENVR_FNTABLE_CALLTYPE *ClearSkyboxOverride)();
  1343. void (OPENVR_FNTABLE_CALLTYPE *CompositorBringToFront)();
  1344. void (OPENVR_FNTABLE_CALLTYPE *CompositorGoToBack)();
  1345. void (OPENVR_FNTABLE_CALLTYPE *CompositorQuit)();
  1346. bool (OPENVR_FNTABLE_CALLTYPE *IsFullscreen)();
  1347. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetCurrentSceneFocusProcess)();
  1348. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetLastFrameRenderer)();
  1349. bool (OPENVR_FNTABLE_CALLTYPE *CanRenderScene)();
  1350. void (OPENVR_FNTABLE_CALLTYPE *ShowMirrorWindow)();
  1351. void (OPENVR_FNTABLE_CALLTYPE *HideMirrorWindow)();
  1352. bool (OPENVR_FNTABLE_CALLTYPE *IsMirrorWindowVisible)();
  1353. void (OPENVR_FNTABLE_CALLTYPE *CompositorDumpImages)();
  1354. bool (OPENVR_FNTABLE_CALLTYPE *ShouldAppRenderWithLowResources)();
  1355. void (OPENVR_FNTABLE_CALLTYPE *ForceInterleavedReprojectionOn)(bool bOverride);
  1356. void (OPENVR_FNTABLE_CALLTYPE *ForceReconnectProcess)();
  1357. void (OPENVR_FNTABLE_CALLTYPE *SuspendRendering)(bool bSuspend);
  1358. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *RequestScreenshot)(EVRScreenshotType type, char * pchDestinationFileName, char * pchVRDestinationFileName);
  1359. EVRScreenshotType (OPENVR_FNTABLE_CALLTYPE *GetCurrentScreenshotType)();
  1360. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetMirrorTextureD3D11)(EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView);
  1361. EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetMirrorTextureGL)(EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle);
  1362. bool (OPENVR_FNTABLE_CALLTYPE *ReleaseSharedGLTexture)(glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle);
  1363. void (OPENVR_FNTABLE_CALLTYPE *LockGLSharedTextureForAccess)(glSharedTextureHandle_t glSharedTextureHandle);
  1364. void (OPENVR_FNTABLE_CALLTYPE *UnlockGLSharedTextureForAccess)(glSharedTextureHandle_t glSharedTextureHandle);
  1365. };
  1366. struct VR_IVROverlay_FnTable
  1367. {
  1368. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *FindOverlay)(char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle);
  1369. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateOverlay)(char * pchOverlayKey, char * pchOverlayFriendlyName, VROverlayHandle_t * pOverlayHandle);
  1370. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *DestroyOverlay)(VROverlayHandle_t ulOverlayHandle);
  1371. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetHighQualityOverlay)(VROverlayHandle_t ulOverlayHandle);
  1372. VROverlayHandle_t (OPENVR_FNTABLE_CALLTYPE *GetHighQualityOverlay)();
  1373. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayKey)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError);
  1374. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayName)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError);
  1375. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayImageData)(VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight);
  1376. char * (OPENVR_FNTABLE_CALLTYPE *GetOverlayErrorNameFromEnum)(EVROverlayError error);
  1377. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRenderingPid)(VROverlayHandle_t ulOverlayHandle, uint32_t unPID);
  1378. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayRenderingPid)(VROverlayHandle_t ulOverlayHandle);
  1379. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayFlag)(VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled);
  1380. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayFlag)(VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled);
  1381. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayColor)(VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue);
  1382. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayColor)(VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue);
  1383. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayAlpha)(VROverlayHandle_t ulOverlayHandle, float fAlpha);
  1384. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayAlpha)(VROverlayHandle_t ulOverlayHandle, float * pfAlpha);
  1385. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayWidthInMeters)(VROverlayHandle_t ulOverlayHandle, float fWidthInMeters);
  1386. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayWidthInMeters)(VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters);
  1387. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayAutoCurveDistanceRangeInMeters)(VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters);
  1388. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayAutoCurveDistanceRangeInMeters)(VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters);
  1389. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTextureColorSpace)(VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace);
  1390. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTextureColorSpace)(VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace);
  1391. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTextureBounds)(VROverlayHandle_t ulOverlayHandle, struct VRTextureBounds_t * pOverlayTextureBounds);
  1392. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTextureBounds)(VROverlayHandle_t ulOverlayHandle, struct VRTextureBounds_t * pOverlayTextureBounds);
  1393. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformType)(VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType);
  1394. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformAbsolute)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToOverlayTransform);
  1395. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformAbsolute)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToOverlayTransform);
  1396. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformTrackedDeviceRelative)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, struct HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform);
  1397. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformTrackedDeviceRelative)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, struct HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform);
  1398. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformTrackedDeviceComponent)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, char * pchComponentName);
  1399. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformTrackedDeviceComponent)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize);
  1400. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowOverlay)(VROverlayHandle_t ulOverlayHandle);
  1401. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *HideOverlay)(VROverlayHandle_t ulOverlayHandle);
  1402. bool (OPENVR_FNTABLE_CALLTYPE *IsOverlayVisible)(VROverlayHandle_t ulOverlayHandle);
  1403. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetTransformForOverlayCoordinates)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, struct HmdVector2_t coordinatesInOverlay, struct HmdMatrix34_t * pmatTransform);
  1404. bool (OPENVR_FNTABLE_CALLTYPE *PollNextOverlayEvent)(VROverlayHandle_t ulOverlayHandle, struct VREvent_t * pEvent, uint32_t uncbVREvent);
  1405. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayInputMethod)(VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod);
  1406. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayInputMethod)(VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod);
  1407. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayMouseScale)(VROverlayHandle_t ulOverlayHandle, struct HmdVector2_t * pvecMouseScale);
  1408. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayMouseScale)(VROverlayHandle_t ulOverlayHandle, struct HmdVector2_t * pvecMouseScale);
  1409. bool (OPENVR_FNTABLE_CALLTYPE *ComputeOverlayIntersection)(VROverlayHandle_t ulOverlayHandle, struct VROverlayIntersectionParams_t * pParams, struct VROverlayIntersectionResults_t * pResults);
  1410. bool (OPENVR_FNTABLE_CALLTYPE *HandleControllerOverlayInteractionAsMouse)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex);
  1411. bool (OPENVR_FNTABLE_CALLTYPE *IsHoverTargetOverlay)(VROverlayHandle_t ulOverlayHandle);
  1412. VROverlayHandle_t (OPENVR_FNTABLE_CALLTYPE *GetGamepadFocusOverlay)();
  1413. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetGamepadFocusOverlay)(VROverlayHandle_t ulNewFocusOverlay);
  1414. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayNeighbor)(EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo);
  1415. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *MoveGamepadFocusToNeighbor)(EOverlayDirection eDirection, VROverlayHandle_t ulFrom);
  1416. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTexture)(VROverlayHandle_t ulOverlayHandle, struct Texture_t * pTexture);
  1417. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ClearOverlayTexture)(VROverlayHandle_t ulOverlayHandle);
  1418. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRaw)(VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth);
  1419. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayFromFile)(VROverlayHandle_t ulOverlayHandle, char * pchFilePath);
  1420. 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);
  1421. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ReleaseNativeOverlayHandle)(VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle);
  1422. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTextureSize)(VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight);
  1423. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateDashboardOverlay)(char * pchOverlayKey, char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle);
  1424. bool (OPENVR_FNTABLE_CALLTYPE *IsDashboardVisible)();
  1425. bool (OPENVR_FNTABLE_CALLTYPE *IsActiveDashboardOverlay)(VROverlayHandle_t ulOverlayHandle);
  1426. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetDashboardOverlaySceneProcess)(VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId);
  1427. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetDashboardOverlaySceneProcess)(VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId);
  1428. void (OPENVR_FNTABLE_CALLTYPE *ShowDashboard)(char * pchOverlayToShow);
  1429. TrackedDeviceIndex_t (OPENVR_FNTABLE_CALLTYPE *GetPrimaryDashboardDevice)();
  1430. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowKeyboard)(EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, char * pchDescription, uint32_t unCharMax, char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue);
  1431. EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowKeyboardForOverlay)(VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, char * pchDescription, uint32_t unCharMax, char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue);
  1432. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetKeyboardText)(char * pchText, uint32_t cchText);
  1433. void (OPENVR_FNTABLE_CALLTYPE *HideKeyboard)();
  1434. void (OPENVR_FNTABLE_CALLTYPE *SetKeyboardTransformAbsolute)(ETrackingUniverseOrigin eTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform);
  1435. void (OPENVR_FNTABLE_CALLTYPE *SetKeyboardPositionForOverlay)(VROverlayHandle_t ulOverlayHandle, struct HmdRect2_t avoidRect);
  1436. };
  1437. struct VR_IVRRenderModels_FnTable
  1438. {
  1439. EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadRenderModel_Async)(char * pchRenderModelName, struct RenderModel_t ** ppRenderModel);
  1440. void (OPENVR_FNTABLE_CALLTYPE *FreeRenderModel)(struct RenderModel_t * pRenderModel);
  1441. EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadTexture_Async)(TextureID_t textureId, struct RenderModel_TextureMap_t ** ppTexture);
  1442. void (OPENVR_FNTABLE_CALLTYPE *FreeTexture)(struct RenderModel_TextureMap_t * pTexture);
  1443. EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadTextureD3D11_Async)(TextureID_t textureId, void * pD3D11Device, void ** ppD3D11Texture2D);
  1444. EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadIntoTextureD3D11_Async)(TextureID_t textureId, void * pDstTexture);
  1445. void (OPENVR_FNTABLE_CALLTYPE *FreeTextureD3D11)(void * pD3D11Texture2D);
  1446. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelName)(uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen);
  1447. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelCount)();
  1448. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetComponentCount)(char * pchRenderModelName);
  1449. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetComponentName)(char * pchRenderModelName, uint32_t unComponentIndex, char * pchComponentName, uint32_t unComponentNameLen);
  1450. uint64_t (OPENVR_FNTABLE_CALLTYPE *GetComponentButtonMask)(char * pchRenderModelName, char * pchComponentName);
  1451. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetComponentRenderModelName)(char * pchRenderModelName, char * pchComponentName, char * pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen);
  1452. bool (OPENVR_FNTABLE_CALLTYPE *GetComponentState)(char * pchRenderModelName, char * pchComponentName, VRControllerState_t * pControllerState, struct RenderModel_ControllerMode_State_t * pState, struct RenderModel_ComponentState_t * pComponentState);
  1453. bool (OPENVR_FNTABLE_CALLTYPE *RenderModelHasComponent)(char * pchRenderModelName, char * pchComponentName);
  1454. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelThumbnailURL)(char * pchRenderModelName, char * pchThumbnailURL, uint32_t unThumbnailURLLen, EVRRenderModelError * peError);
  1455. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelOriginalPath)(char * pchRenderModelName, char * pchOriginalPath, uint32_t unOriginalPathLen, EVRRenderModelError * peError);
  1456. char * (OPENVR_FNTABLE_CALLTYPE *GetRenderModelErrorNameFromEnum)(EVRRenderModelError error);
  1457. };
  1458. struct VR_IVRNotifications_FnTable
  1459. {
  1460. EVRNotificationError (OPENVR_FNTABLE_CALLTYPE *CreateNotification)(VROverlayHandle_t ulOverlayHandle, uint64_t ulUserValue, EVRNotificationType type, char * pchText, EVRNotificationStyle style, struct NotificationBitmap_t * pImage, VRNotificationId * pNotificationId);
  1461. EVRNotificationError (OPENVR_FNTABLE_CALLTYPE *RemoveNotification)(VRNotificationId notificationId);
  1462. };
  1463. struct VR_IVRSettings_FnTable
  1464. {
  1465. char * (OPENVR_FNTABLE_CALLTYPE *GetSettingsErrorNameFromEnum)(EVRSettingsError eError);
  1466. bool (OPENVR_FNTABLE_CALLTYPE *Sync)(bool bForce, EVRSettingsError * peError);
  1467. bool (OPENVR_FNTABLE_CALLTYPE *GetBool)(char * pchSection, char * pchSettingsKey, bool bDefaultValue, EVRSettingsError * peError);
  1468. void (OPENVR_FNTABLE_CALLTYPE *SetBool)(char * pchSection, char * pchSettingsKey, bool bValue, EVRSettingsError * peError);
  1469. int32_t (OPENVR_FNTABLE_CALLTYPE *GetInt32)(char * pchSection, char * pchSettingsKey, int32_t nDefaultValue, EVRSettingsError * peError);
  1470. void (OPENVR_FNTABLE_CALLTYPE *SetInt32)(char * pchSection, char * pchSettingsKey, int32_t nValue, EVRSettingsError * peError);
  1471. float (OPENVR_FNTABLE_CALLTYPE *GetFloat)(char * pchSection, char * pchSettingsKey, float flDefaultValue, EVRSettingsError * peError);
  1472. void (OPENVR_FNTABLE_CALLTYPE *SetFloat)(char * pchSection, char * pchSettingsKey, float flValue, EVRSettingsError * peError);
  1473. void (OPENVR_FNTABLE_CALLTYPE *GetString)(char * pchSection, char * pchSettingsKey, char * pchValue, uint32_t unValueLen, char * pchDefaultValue, EVRSettingsError * peError);
  1474. void (OPENVR_FNTABLE_CALLTYPE *SetString)(char * pchSection, char * pchSettingsKey, char * pchValue, EVRSettingsError * peError);
  1475. void (OPENVR_FNTABLE_CALLTYPE *RemoveSection)(char * pchSection, EVRSettingsError * peError);
  1476. void (OPENVR_FNTABLE_CALLTYPE *RemoveKeyInSection)(char * pchSection, char * pchSettingsKey, EVRSettingsError * peError);
  1477. };
  1478. struct VR_IVRScreenshots_FnTable
  1479. {
  1480. EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *RequestScreenshot)(ScreenshotHandle_t * pOutScreenshotHandle, EVRScreenshotType type, char * pchPreviewFilename, char * pchVRFilename);
  1481. EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *HookScreenshot)(EVRScreenshotType * pSupportedTypes, int numTypes);
  1482. EVRScreenshotType (OPENVR_FNTABLE_CALLTYPE *GetScreenshotPropertyType)(ScreenshotHandle_t screenshotHandle, EVRScreenshotError * pError);
  1483. uint32_t (OPENVR_FNTABLE_CALLTYPE *GetScreenshotPropertyFilename)(ScreenshotHandle_t screenshotHandle, EVRScreenshotPropertyFilenames filenameType, char * pchFilename, uint32_t cchFilename, EVRScreenshotError * pError);
  1484. EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *UpdateScreenshotProgress)(ScreenshotHandle_t screenshotHandle, float flProgress);
  1485. EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *TakeStereoScreenshot)(ScreenshotHandle_t * pOutScreenshotHandle, char * pchPreviewFilename, char * pchVRFilename);
  1486. EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *SubmitScreenshot)(ScreenshotHandle_t screenshotHandle, EVRScreenshotType type, char * pchSourcePreviewFilename, char * pchSourceVRFilename);
  1487. };
  1488. #if 0
  1489. // Global entry points
  1490. S_API intptr_t VR_InitInternal( EVRInitError *peError, EVRApplicationType eType );
  1491. S_API void VR_ShutdownInternal();
  1492. S_API bool VR_IsHmdPresent();
  1493. S_API intptr_t VR_GetGenericInterface( const char *pchInterfaceVersion, EVRInitError *peError );
  1494. S_API bool VR_IsRuntimeInstalled();
  1495. S_API const char * VR_GetVRInitErrorAsSymbol( EVRInitError error );
  1496. S_API const char * VR_GetVRInitErrorAsEnglishDescription( EVRInitError error );
  1497. #endif
  1498. #endif // __OPENVR_API_FLAT_H__