openvr_capi.h 107 KB

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