openvr_capi.h 95 KB

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