openvr_api.cs 158 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051
  1. //======= Copyright 1996-2014, Valve Corporation, All rights reserved. ========
  2. //
  3. // Purpose: This file contains C#/managed code bindings for the OpenVR interfaces
  4. // This file is auto-generated, do not edit it.
  5. //
  6. //=============================================================================
  7. using System;
  8. using System.Runtime.InteropServices;
  9. using Valve.VR;
  10. namespace Valve.VR
  11. {
  12. [StructLayout(LayoutKind.Sequential)]
  13. public struct IVRSystem
  14. {
  15. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  16. internal delegate void _GetRecommendedRenderTargetSize(ref uint pnWidth, ref uint pnHeight);
  17. [MarshalAs(UnmanagedType.FunctionPtr)]
  18. internal _GetRecommendedRenderTargetSize GetRecommendedRenderTargetSize;
  19. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  20. internal delegate HmdMatrix44_t _GetProjectionMatrix(EVREye eEye, float fNearZ, float fFarZ, EGraphicsAPIConvention eProjType);
  21. [MarshalAs(UnmanagedType.FunctionPtr)]
  22. internal _GetProjectionMatrix GetProjectionMatrix;
  23. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  24. internal delegate void _GetProjectionRaw(EVREye eEye, ref float pfLeft, ref float pfRight, ref float pfTop, ref float pfBottom);
  25. [MarshalAs(UnmanagedType.FunctionPtr)]
  26. internal _GetProjectionRaw GetProjectionRaw;
  27. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  28. internal delegate DistortionCoordinates_t _ComputeDistortion(EVREye eEye, float fU, float fV);
  29. [MarshalAs(UnmanagedType.FunctionPtr)]
  30. internal _ComputeDistortion ComputeDistortion;
  31. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  32. internal delegate HmdMatrix34_t _GetEyeToHeadTransform(EVREye eEye);
  33. [MarshalAs(UnmanagedType.FunctionPtr)]
  34. internal _GetEyeToHeadTransform GetEyeToHeadTransform;
  35. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  36. internal delegate bool _GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync, ref ulong pulFrameCounter);
  37. [MarshalAs(UnmanagedType.FunctionPtr)]
  38. internal _GetTimeSinceLastVsync GetTimeSinceLastVsync;
  39. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  40. internal delegate int _GetD3D9AdapterIndex();
  41. [MarshalAs(UnmanagedType.FunctionPtr)]
  42. internal _GetD3D9AdapterIndex GetD3D9AdapterIndex;
  43. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  44. internal delegate void _GetDXGIOutputInfo(ref int pnAdapterIndex);
  45. [MarshalAs(UnmanagedType.FunctionPtr)]
  46. internal _GetDXGIOutputInfo GetDXGIOutputInfo;
  47. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  48. internal delegate bool _IsDisplayOnDesktop();
  49. [MarshalAs(UnmanagedType.FunctionPtr)]
  50. internal _IsDisplayOnDesktop IsDisplayOnDesktop;
  51. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  52. internal delegate bool _SetDisplayVisibility(bool bIsVisibleOnDesktop);
  53. [MarshalAs(UnmanagedType.FunctionPtr)]
  54. internal _SetDisplayVisibility SetDisplayVisibility;
  55. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  56. internal delegate void _GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, [In, Out] TrackedDevicePose_t[] pTrackedDevicePoseArray, uint unTrackedDevicePoseArrayCount);
  57. [MarshalAs(UnmanagedType.FunctionPtr)]
  58. internal _GetDeviceToAbsoluteTrackingPose GetDeviceToAbsoluteTrackingPose;
  59. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  60. internal delegate void _ResetSeatedZeroPose();
  61. [MarshalAs(UnmanagedType.FunctionPtr)]
  62. internal _ResetSeatedZeroPose ResetSeatedZeroPose;
  63. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  64. internal delegate HmdMatrix34_t _GetSeatedZeroPoseToStandingAbsoluteTrackingPose();
  65. [MarshalAs(UnmanagedType.FunctionPtr)]
  66. internal _GetSeatedZeroPoseToStandingAbsoluteTrackingPose GetSeatedZeroPoseToStandingAbsoluteTrackingPose;
  67. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  68. internal delegate HmdMatrix34_t _GetRawZeroPoseToStandingAbsoluteTrackingPose();
  69. [MarshalAs(UnmanagedType.FunctionPtr)]
  70. internal _GetRawZeroPoseToStandingAbsoluteTrackingPose GetRawZeroPoseToStandingAbsoluteTrackingPose;
  71. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  72. internal delegate uint _GetSortedTrackedDeviceIndicesOfClass(ETrackedDeviceClass eTrackedDeviceClass, [In, Out] uint[] punTrackedDeviceIndexArray, uint unTrackedDeviceIndexArrayCount, uint unRelativeToTrackedDeviceIndex);
  73. [MarshalAs(UnmanagedType.FunctionPtr)]
  74. internal _GetSortedTrackedDeviceIndicesOfClass GetSortedTrackedDeviceIndicesOfClass;
  75. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  76. internal delegate EDeviceActivityLevel _GetTrackedDeviceActivityLevel(uint unDeviceId);
  77. [MarshalAs(UnmanagedType.FunctionPtr)]
  78. internal _GetTrackedDeviceActivityLevel GetTrackedDeviceActivityLevel;
  79. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  80. internal delegate void _ApplyTransform(ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pTrackedDevicePose, ref HmdMatrix34_t pTransform);
  81. [MarshalAs(UnmanagedType.FunctionPtr)]
  82. internal _ApplyTransform ApplyTransform;
  83. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  84. internal delegate uint _GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole unDeviceType);
  85. [MarshalAs(UnmanagedType.FunctionPtr)]
  86. internal _GetTrackedDeviceIndexForControllerRole GetTrackedDeviceIndexForControllerRole;
  87. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  88. internal delegate ETrackedControllerRole _GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex);
  89. [MarshalAs(UnmanagedType.FunctionPtr)]
  90. internal _GetControllerRoleForTrackedDeviceIndex GetControllerRoleForTrackedDeviceIndex;
  91. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  92. internal delegate ETrackedDeviceClass _GetTrackedDeviceClass(uint unDeviceIndex);
  93. [MarshalAs(UnmanagedType.FunctionPtr)]
  94. internal _GetTrackedDeviceClass GetTrackedDeviceClass;
  95. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  96. internal delegate bool _IsTrackedDeviceConnected(uint unDeviceIndex);
  97. [MarshalAs(UnmanagedType.FunctionPtr)]
  98. internal _IsTrackedDeviceConnected IsTrackedDeviceConnected;
  99. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  100. internal delegate bool _GetBoolTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
  101. [MarshalAs(UnmanagedType.FunctionPtr)]
  102. internal _GetBoolTrackedDeviceProperty GetBoolTrackedDeviceProperty;
  103. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  104. internal delegate float _GetFloatTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
  105. [MarshalAs(UnmanagedType.FunctionPtr)]
  106. internal _GetFloatTrackedDeviceProperty GetFloatTrackedDeviceProperty;
  107. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  108. internal delegate int _GetInt32TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
  109. [MarshalAs(UnmanagedType.FunctionPtr)]
  110. internal _GetInt32TrackedDeviceProperty GetInt32TrackedDeviceProperty;
  111. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  112. internal delegate ulong _GetUint64TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
  113. [MarshalAs(UnmanagedType.FunctionPtr)]
  114. internal _GetUint64TrackedDeviceProperty GetUint64TrackedDeviceProperty;
  115. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  116. internal delegate HmdMatrix34_t _GetMatrix34TrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, ref ETrackedPropertyError pError);
  117. [MarshalAs(UnmanagedType.FunctionPtr)]
  118. internal _GetMatrix34TrackedDeviceProperty GetMatrix34TrackedDeviceProperty;
  119. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  120. internal delegate uint _GetStringTrackedDeviceProperty(uint unDeviceIndex, ETrackedDeviceProperty prop, System.Text.StringBuilder pchValue, uint unBufferSize, ref ETrackedPropertyError pError);
  121. [MarshalAs(UnmanagedType.FunctionPtr)]
  122. internal _GetStringTrackedDeviceProperty GetStringTrackedDeviceProperty;
  123. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  124. internal delegate IntPtr _GetPropErrorNameFromEnum(ETrackedPropertyError error);
  125. [MarshalAs(UnmanagedType.FunctionPtr)]
  126. internal _GetPropErrorNameFromEnum GetPropErrorNameFromEnum;
  127. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  128. internal delegate bool _PollNextEvent(ref VREvent_t pEvent, uint uncbVREvent);
  129. [MarshalAs(UnmanagedType.FunctionPtr)]
  130. internal _PollNextEvent PollNextEvent;
  131. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  132. internal delegate bool _PollNextEventWithPose(ETrackingUniverseOrigin eOrigin, ref VREvent_t pEvent, uint uncbVREvent, ref TrackedDevicePose_t pTrackedDevicePose);
  133. [MarshalAs(UnmanagedType.FunctionPtr)]
  134. internal _PollNextEventWithPose PollNextEventWithPose;
  135. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  136. internal delegate IntPtr _GetEventTypeNameFromEnum(EVREventType eType);
  137. [MarshalAs(UnmanagedType.FunctionPtr)]
  138. internal _GetEventTypeNameFromEnum GetEventTypeNameFromEnum;
  139. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  140. internal delegate HiddenAreaMesh_t _GetHiddenAreaMesh(EVREye eEye);
  141. [MarshalAs(UnmanagedType.FunctionPtr)]
  142. internal _GetHiddenAreaMesh GetHiddenAreaMesh;
  143. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  144. internal delegate bool _GetControllerState(uint unControllerDeviceIndex, ref VRControllerState_t pControllerState);
  145. [MarshalAs(UnmanagedType.FunctionPtr)]
  146. internal _GetControllerState GetControllerState;
  147. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  148. internal delegate bool _GetControllerStateWithPose(ETrackingUniverseOrigin eOrigin, uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, ref TrackedDevicePose_t pTrackedDevicePose);
  149. [MarshalAs(UnmanagedType.FunctionPtr)]
  150. internal _GetControllerStateWithPose GetControllerStateWithPose;
  151. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  152. internal delegate void _TriggerHapticPulse(uint unControllerDeviceIndex, uint unAxisId, char usDurationMicroSec);
  153. [MarshalAs(UnmanagedType.FunctionPtr)]
  154. internal _TriggerHapticPulse TriggerHapticPulse;
  155. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  156. internal delegate IntPtr _GetButtonIdNameFromEnum(EVRButtonId eButtonId);
  157. [MarshalAs(UnmanagedType.FunctionPtr)]
  158. internal _GetButtonIdNameFromEnum GetButtonIdNameFromEnum;
  159. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  160. internal delegate IntPtr _GetControllerAxisTypeNameFromEnum(EVRControllerAxisType eAxisType);
  161. [MarshalAs(UnmanagedType.FunctionPtr)]
  162. internal _GetControllerAxisTypeNameFromEnum GetControllerAxisTypeNameFromEnum;
  163. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  164. internal delegate bool _CaptureInputFocus();
  165. [MarshalAs(UnmanagedType.FunctionPtr)]
  166. internal _CaptureInputFocus CaptureInputFocus;
  167. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  168. internal delegate void _ReleaseInputFocus();
  169. [MarshalAs(UnmanagedType.FunctionPtr)]
  170. internal _ReleaseInputFocus ReleaseInputFocus;
  171. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  172. internal delegate bool _IsInputFocusCapturedByAnotherProcess();
  173. [MarshalAs(UnmanagedType.FunctionPtr)]
  174. internal _IsInputFocusCapturedByAnotherProcess IsInputFocusCapturedByAnotherProcess;
  175. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  176. internal delegate uint _DriverDebugRequest(uint unDeviceIndex, string pchRequest, string pchResponseBuffer, uint unResponseBufferSize);
  177. [MarshalAs(UnmanagedType.FunctionPtr)]
  178. internal _DriverDebugRequest DriverDebugRequest;
  179. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  180. internal delegate EVRFirmwareError _PerformFirmwareUpdate(uint unDeviceIndex);
  181. [MarshalAs(UnmanagedType.FunctionPtr)]
  182. internal _PerformFirmwareUpdate PerformFirmwareUpdate;
  183. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  184. internal delegate void _AcknowledgeQuit_Exiting();
  185. [MarshalAs(UnmanagedType.FunctionPtr)]
  186. internal _AcknowledgeQuit_Exiting AcknowledgeQuit_Exiting;
  187. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  188. internal delegate void _AcknowledgeQuit_UserPrompt();
  189. [MarshalAs(UnmanagedType.FunctionPtr)]
  190. internal _AcknowledgeQuit_UserPrompt AcknowledgeQuit_UserPrompt;
  191. }
  192. [StructLayout(LayoutKind.Sequential)]
  193. public struct IVRExtendedDisplay
  194. {
  195. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  196. internal delegate void _GetWindowBounds(ref int pnX, ref int pnY, ref uint pnWidth, ref uint pnHeight);
  197. [MarshalAs(UnmanagedType.FunctionPtr)]
  198. internal _GetWindowBounds GetWindowBounds;
  199. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  200. internal delegate void _GetEyeOutputViewport(EVREye eEye, ref uint pnX, ref uint pnY, ref uint pnWidth, ref uint pnHeight);
  201. [MarshalAs(UnmanagedType.FunctionPtr)]
  202. internal _GetEyeOutputViewport GetEyeOutputViewport;
  203. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  204. internal delegate void _GetDXGIOutputInfo(ref int pnAdapterIndex, ref int pnAdapterOutputIndex);
  205. [MarshalAs(UnmanagedType.FunctionPtr)]
  206. internal _GetDXGIOutputInfo GetDXGIOutputInfo;
  207. }
  208. [StructLayout(LayoutKind.Sequential)]
  209. public struct IVRTrackedCamera
  210. {
  211. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  212. internal delegate IntPtr _GetCameraErrorNameFromEnum(EVRTrackedCameraError eCameraError);
  213. [MarshalAs(UnmanagedType.FunctionPtr)]
  214. internal _GetCameraErrorNameFromEnum GetCameraErrorNameFromEnum;
  215. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  216. internal delegate EVRTrackedCameraError _HasCamera(uint nDeviceIndex, ref bool pHasCamera);
  217. [MarshalAs(UnmanagedType.FunctionPtr)]
  218. internal _HasCamera HasCamera;
  219. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  220. internal delegate EVRTrackedCameraError _GetCameraFrameSize(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref uint pnWidth, ref uint pnHeight, ref uint pnFrameBufferSize);
  221. [MarshalAs(UnmanagedType.FunctionPtr)]
  222. internal _GetCameraFrameSize GetCameraFrameSize;
  223. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  224. internal delegate EVRTrackedCameraError _GetCameraIntrinisics(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref HmdVector2_t pFocalLength, ref HmdVector2_t pCenter);
  225. [MarshalAs(UnmanagedType.FunctionPtr)]
  226. internal _GetCameraIntrinisics GetCameraIntrinisics;
  227. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  228. internal delegate EVRTrackedCameraError _GetCameraProjection(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, ref HmdMatrix44_t pProjection);
  229. [MarshalAs(UnmanagedType.FunctionPtr)]
  230. internal _GetCameraProjection GetCameraProjection;
  231. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  232. internal delegate EVRTrackedCameraError _AcquireVideoStreamingService(uint nDeviceIndex, IntPtr pHandle);
  233. [MarshalAs(UnmanagedType.FunctionPtr)]
  234. internal _AcquireVideoStreamingService AcquireVideoStreamingService;
  235. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  236. internal delegate EVRTrackedCameraError _ReleaseVideoStreamingService(IntPtr hTrackedCamera);
  237. [MarshalAs(UnmanagedType.FunctionPtr)]
  238. internal _ReleaseVideoStreamingService ReleaseVideoStreamingService;
  239. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  240. internal delegate EVRTrackedCameraError _GetVideoStreamFrameBuffer(IntPtr hTrackedCamera, EVRTrackedCameraFrameType eFrameType, IntPtr pFrameBuffer, uint nFrameBufferSize, ref CameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize);
  241. [MarshalAs(UnmanagedType.FunctionPtr)]
  242. internal _GetVideoStreamFrameBuffer GetVideoStreamFrameBuffer;
  243. }
  244. [StructLayout(LayoutKind.Sequential)]
  245. public struct IVRApplications
  246. {
  247. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  248. internal delegate EVRApplicationError _AddApplicationManifest(string pchApplicationManifestFullPath, bool bTemporary);
  249. [MarshalAs(UnmanagedType.FunctionPtr)]
  250. internal _AddApplicationManifest AddApplicationManifest;
  251. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  252. internal delegate EVRApplicationError _RemoveApplicationManifest(string pchApplicationManifestFullPath);
  253. [MarshalAs(UnmanagedType.FunctionPtr)]
  254. internal _RemoveApplicationManifest RemoveApplicationManifest;
  255. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  256. internal delegate bool _IsApplicationInstalled(string pchAppKey);
  257. [MarshalAs(UnmanagedType.FunctionPtr)]
  258. internal _IsApplicationInstalled IsApplicationInstalled;
  259. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  260. internal delegate uint _GetApplicationCount();
  261. [MarshalAs(UnmanagedType.FunctionPtr)]
  262. internal _GetApplicationCount GetApplicationCount;
  263. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  264. internal delegate EVRApplicationError _GetApplicationKeyByIndex(uint unApplicationIndex, string pchAppKeyBuffer, uint unAppKeyBufferLen);
  265. [MarshalAs(UnmanagedType.FunctionPtr)]
  266. internal _GetApplicationKeyByIndex GetApplicationKeyByIndex;
  267. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  268. internal delegate EVRApplicationError _GetApplicationKeyByProcessId(uint unProcessId, string pchAppKeyBuffer, uint unAppKeyBufferLen);
  269. [MarshalAs(UnmanagedType.FunctionPtr)]
  270. internal _GetApplicationKeyByProcessId GetApplicationKeyByProcessId;
  271. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  272. internal delegate EVRApplicationError _LaunchApplication(string pchAppKey);
  273. [MarshalAs(UnmanagedType.FunctionPtr)]
  274. internal _LaunchApplication LaunchApplication;
  275. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  276. internal delegate EVRApplicationError _LaunchTemplateApplication(string pchTemplateAppKey, string pchNewAppKey, [In, Out] AppOverrideKeys_t[] pKeys, uint unKeys);
  277. [MarshalAs(UnmanagedType.FunctionPtr)]
  278. internal _LaunchTemplateApplication LaunchTemplateApplication;
  279. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  280. internal delegate EVRApplicationError _LaunchDashboardOverlay(string pchAppKey);
  281. [MarshalAs(UnmanagedType.FunctionPtr)]
  282. internal _LaunchDashboardOverlay LaunchDashboardOverlay;
  283. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  284. internal delegate bool _CancelApplicationLaunch(string pchAppKey);
  285. [MarshalAs(UnmanagedType.FunctionPtr)]
  286. internal _CancelApplicationLaunch CancelApplicationLaunch;
  287. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  288. internal delegate EVRApplicationError _IdentifyApplication(uint unProcessId, string pchAppKey);
  289. [MarshalAs(UnmanagedType.FunctionPtr)]
  290. internal _IdentifyApplication IdentifyApplication;
  291. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  292. internal delegate uint _GetApplicationProcessId(string pchAppKey);
  293. [MarshalAs(UnmanagedType.FunctionPtr)]
  294. internal _GetApplicationProcessId GetApplicationProcessId;
  295. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  296. internal delegate IntPtr _GetApplicationsErrorNameFromEnum(EVRApplicationError error);
  297. [MarshalAs(UnmanagedType.FunctionPtr)]
  298. internal _GetApplicationsErrorNameFromEnum GetApplicationsErrorNameFromEnum;
  299. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  300. internal delegate uint _GetApplicationPropertyString(string pchAppKey, EVRApplicationProperty eProperty, string pchPropertyValueBuffer, uint unPropertyValueBufferLen, ref EVRApplicationError peError);
  301. [MarshalAs(UnmanagedType.FunctionPtr)]
  302. internal _GetApplicationPropertyString GetApplicationPropertyString;
  303. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  304. internal delegate bool _GetApplicationPropertyBool(string pchAppKey, EVRApplicationProperty eProperty, ref EVRApplicationError peError);
  305. [MarshalAs(UnmanagedType.FunctionPtr)]
  306. internal _GetApplicationPropertyBool GetApplicationPropertyBool;
  307. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  308. internal delegate ulong _GetApplicationPropertyUint64(string pchAppKey, EVRApplicationProperty eProperty, ref EVRApplicationError peError);
  309. [MarshalAs(UnmanagedType.FunctionPtr)]
  310. internal _GetApplicationPropertyUint64 GetApplicationPropertyUint64;
  311. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  312. internal delegate EVRApplicationError _SetApplicationAutoLaunch(string pchAppKey, bool bAutoLaunch);
  313. [MarshalAs(UnmanagedType.FunctionPtr)]
  314. internal _SetApplicationAutoLaunch SetApplicationAutoLaunch;
  315. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  316. internal delegate bool _GetApplicationAutoLaunch(string pchAppKey);
  317. [MarshalAs(UnmanagedType.FunctionPtr)]
  318. internal _GetApplicationAutoLaunch GetApplicationAutoLaunch;
  319. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  320. internal delegate EVRApplicationError _GetStartingApplication(string pchAppKeyBuffer, uint unAppKeyBufferLen);
  321. [MarshalAs(UnmanagedType.FunctionPtr)]
  322. internal _GetStartingApplication GetStartingApplication;
  323. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  324. internal delegate EVRApplicationTransitionState _GetTransitionState();
  325. [MarshalAs(UnmanagedType.FunctionPtr)]
  326. internal _GetTransitionState GetTransitionState;
  327. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  328. internal delegate EVRApplicationError _PerformApplicationPrelaunchCheck(string pchAppKey);
  329. [MarshalAs(UnmanagedType.FunctionPtr)]
  330. internal _PerformApplicationPrelaunchCheck PerformApplicationPrelaunchCheck;
  331. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  332. internal delegate IntPtr _GetApplicationsTransitionStateNameFromEnum(EVRApplicationTransitionState state);
  333. [MarshalAs(UnmanagedType.FunctionPtr)]
  334. internal _GetApplicationsTransitionStateNameFromEnum GetApplicationsTransitionStateNameFromEnum;
  335. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  336. internal delegate bool _IsQuitUserPromptRequested();
  337. [MarshalAs(UnmanagedType.FunctionPtr)]
  338. internal _IsQuitUserPromptRequested IsQuitUserPromptRequested;
  339. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  340. internal delegate EVRApplicationError _LaunchInternalProcess(string pchBinaryPath, string pchArguments, string pchWorkingDirectory);
  341. [MarshalAs(UnmanagedType.FunctionPtr)]
  342. internal _LaunchInternalProcess LaunchInternalProcess;
  343. }
  344. [StructLayout(LayoutKind.Sequential)]
  345. public struct IVRChaperone
  346. {
  347. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  348. internal delegate ChaperoneCalibrationState _GetCalibrationState();
  349. [MarshalAs(UnmanagedType.FunctionPtr)]
  350. internal _GetCalibrationState GetCalibrationState;
  351. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  352. internal delegate bool _GetPlayAreaSize(ref float pSizeX, ref float pSizeZ);
  353. [MarshalAs(UnmanagedType.FunctionPtr)]
  354. internal _GetPlayAreaSize GetPlayAreaSize;
  355. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  356. internal delegate bool _GetPlayAreaRect(ref HmdQuad_t rect);
  357. [MarshalAs(UnmanagedType.FunctionPtr)]
  358. internal _GetPlayAreaRect GetPlayAreaRect;
  359. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  360. internal delegate void _ReloadInfo();
  361. [MarshalAs(UnmanagedType.FunctionPtr)]
  362. internal _ReloadInfo ReloadInfo;
  363. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  364. internal delegate void _SetSceneColor(HmdColor_t color);
  365. [MarshalAs(UnmanagedType.FunctionPtr)]
  366. internal _SetSceneColor SetSceneColor;
  367. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  368. internal delegate void _GetBoundsColor(ref HmdColor_t pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, ref HmdColor_t pOutputCameraColor);
  369. [MarshalAs(UnmanagedType.FunctionPtr)]
  370. internal _GetBoundsColor GetBoundsColor;
  371. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  372. internal delegate bool _AreBoundsVisible();
  373. [MarshalAs(UnmanagedType.FunctionPtr)]
  374. internal _AreBoundsVisible AreBoundsVisible;
  375. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  376. internal delegate void _ForceBoundsVisible(bool bForce);
  377. [MarshalAs(UnmanagedType.FunctionPtr)]
  378. internal _ForceBoundsVisible ForceBoundsVisible;
  379. }
  380. [StructLayout(LayoutKind.Sequential)]
  381. public struct IVRChaperoneSetup
  382. {
  383. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  384. internal delegate bool _CommitWorkingCopy(EChaperoneConfigFile configFile);
  385. [MarshalAs(UnmanagedType.FunctionPtr)]
  386. internal _CommitWorkingCopy CommitWorkingCopy;
  387. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  388. internal delegate void _RevertWorkingCopy();
  389. [MarshalAs(UnmanagedType.FunctionPtr)]
  390. internal _RevertWorkingCopy RevertWorkingCopy;
  391. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  392. internal delegate bool _GetWorkingPlayAreaSize(ref float pSizeX, ref float pSizeZ);
  393. [MarshalAs(UnmanagedType.FunctionPtr)]
  394. internal _GetWorkingPlayAreaSize GetWorkingPlayAreaSize;
  395. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  396. internal delegate bool _GetWorkingPlayAreaRect(ref HmdQuad_t rect);
  397. [MarshalAs(UnmanagedType.FunctionPtr)]
  398. internal _GetWorkingPlayAreaRect GetWorkingPlayAreaRect;
  399. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  400. internal delegate bool _GetWorkingCollisionBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
  401. [MarshalAs(UnmanagedType.FunctionPtr)]
  402. internal _GetWorkingCollisionBoundsInfo GetWorkingCollisionBoundsInfo;
  403. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  404. internal delegate bool _GetLiveCollisionBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
  405. [MarshalAs(UnmanagedType.FunctionPtr)]
  406. internal _GetLiveCollisionBoundsInfo GetLiveCollisionBoundsInfo;
  407. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  408. internal delegate bool _GetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose);
  409. [MarshalAs(UnmanagedType.FunctionPtr)]
  410. internal _GetWorkingSeatedZeroPoseToRawTrackingPose GetWorkingSeatedZeroPoseToRawTrackingPose;
  411. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  412. internal delegate bool _GetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose);
  413. [MarshalAs(UnmanagedType.FunctionPtr)]
  414. internal _GetWorkingStandingZeroPoseToRawTrackingPose GetWorkingStandingZeroPoseToRawTrackingPose;
  415. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  416. internal delegate void _SetWorkingPlayAreaSize(float sizeX, float sizeZ);
  417. [MarshalAs(UnmanagedType.FunctionPtr)]
  418. internal _SetWorkingPlayAreaSize SetWorkingPlayAreaSize;
  419. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  420. internal delegate void _SetWorkingCollisionBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, uint unQuadsCount);
  421. [MarshalAs(UnmanagedType.FunctionPtr)]
  422. internal _SetWorkingCollisionBoundsInfo SetWorkingCollisionBoundsInfo;
  423. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  424. internal delegate void _SetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose);
  425. [MarshalAs(UnmanagedType.FunctionPtr)]
  426. internal _SetWorkingSeatedZeroPoseToRawTrackingPose SetWorkingSeatedZeroPoseToRawTrackingPose;
  427. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  428. internal delegate void _SetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose);
  429. [MarshalAs(UnmanagedType.FunctionPtr)]
  430. internal _SetWorkingStandingZeroPoseToRawTrackingPose SetWorkingStandingZeroPoseToRawTrackingPose;
  431. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  432. internal delegate void _ReloadFromDisk(EChaperoneConfigFile configFile);
  433. [MarshalAs(UnmanagedType.FunctionPtr)]
  434. internal _ReloadFromDisk ReloadFromDisk;
  435. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  436. internal delegate bool _GetLiveSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose);
  437. [MarshalAs(UnmanagedType.FunctionPtr)]
  438. internal _GetLiveSeatedZeroPoseToRawTrackingPose GetLiveSeatedZeroPoseToRawTrackingPose;
  439. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  440. internal delegate void _SetWorkingCollisionBoundsTagsInfo([In, Out] byte[] pTagsBuffer, uint unTagCount);
  441. [MarshalAs(UnmanagedType.FunctionPtr)]
  442. internal _SetWorkingCollisionBoundsTagsInfo SetWorkingCollisionBoundsTagsInfo;
  443. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  444. internal delegate bool _GetLiveCollisionBoundsTagsInfo([In, Out] byte[] pTagsBuffer, ref uint punTagCount);
  445. [MarshalAs(UnmanagedType.FunctionPtr)]
  446. internal _GetLiveCollisionBoundsTagsInfo GetLiveCollisionBoundsTagsInfo;
  447. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  448. internal delegate bool _SetWorkingPhysicalBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, uint unQuadsCount);
  449. [MarshalAs(UnmanagedType.FunctionPtr)]
  450. internal _SetWorkingPhysicalBoundsInfo SetWorkingPhysicalBoundsInfo;
  451. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  452. internal delegate bool _GetLivePhysicalBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
  453. [MarshalAs(UnmanagedType.FunctionPtr)]
  454. internal _GetLivePhysicalBoundsInfo GetLivePhysicalBoundsInfo;
  455. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  456. internal delegate bool _ExportLiveToBuffer(System.Text.StringBuilder pBuffer, ref uint pnBufferLength);
  457. [MarshalAs(UnmanagedType.FunctionPtr)]
  458. internal _ExportLiveToBuffer ExportLiveToBuffer;
  459. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  460. internal delegate bool _ImportFromBufferToWorking(string pBuffer, uint nImportFlags);
  461. [MarshalAs(UnmanagedType.FunctionPtr)]
  462. internal _ImportFromBufferToWorking ImportFromBufferToWorking;
  463. }
  464. [StructLayout(LayoutKind.Sequential)]
  465. public struct IVRCompositor
  466. {
  467. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  468. internal delegate void _SetTrackingSpace(ETrackingUniverseOrigin eOrigin);
  469. [MarshalAs(UnmanagedType.FunctionPtr)]
  470. internal _SetTrackingSpace SetTrackingSpace;
  471. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  472. internal delegate ETrackingUniverseOrigin _GetTrackingSpace();
  473. [MarshalAs(UnmanagedType.FunctionPtr)]
  474. internal _GetTrackingSpace GetTrackingSpace;
  475. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  476. internal delegate EVRCompositorError _WaitGetPoses([In, Out] TrackedDevicePose_t[] pRenderPoseArray, uint unRenderPoseArrayCount, [In, Out] TrackedDevicePose_t[] pGamePoseArray, uint unGamePoseArrayCount);
  477. [MarshalAs(UnmanagedType.FunctionPtr)]
  478. internal _WaitGetPoses WaitGetPoses;
  479. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  480. internal delegate EVRCompositorError _GetLastPoses([In, Out] TrackedDevicePose_t[] pRenderPoseArray, uint unRenderPoseArrayCount, [In, Out] TrackedDevicePose_t[] pGamePoseArray, uint unGamePoseArrayCount);
  481. [MarshalAs(UnmanagedType.FunctionPtr)]
  482. internal _GetLastPoses GetLastPoses;
  483. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  484. internal delegate EVRCompositorError _GetLastPoseForTrackedDeviceIndex(uint unDeviceIndex, ref TrackedDevicePose_t pOutputPose, ref TrackedDevicePose_t pOutputGamePose);
  485. [MarshalAs(UnmanagedType.FunctionPtr)]
  486. internal _GetLastPoseForTrackedDeviceIndex GetLastPoseForTrackedDeviceIndex;
  487. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  488. internal delegate EVRCompositorError _Submit(EVREye eEye, ref Texture_t pTexture, ref VRTextureBounds_t pBounds, EVRSubmitFlags nSubmitFlags);
  489. [MarshalAs(UnmanagedType.FunctionPtr)]
  490. internal _Submit Submit;
  491. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  492. internal delegate void _ClearLastSubmittedFrame();
  493. [MarshalAs(UnmanagedType.FunctionPtr)]
  494. internal _ClearLastSubmittedFrame ClearLastSubmittedFrame;
  495. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  496. internal delegate void _PostPresentHandoff();
  497. [MarshalAs(UnmanagedType.FunctionPtr)]
  498. internal _PostPresentHandoff PostPresentHandoff;
  499. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  500. internal delegate bool _GetFrameTiming(ref Compositor_FrameTiming pTiming, uint unFramesAgo);
  501. [MarshalAs(UnmanagedType.FunctionPtr)]
  502. internal _GetFrameTiming GetFrameTiming;
  503. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  504. internal delegate float _GetFrameTimeRemaining();
  505. [MarshalAs(UnmanagedType.FunctionPtr)]
  506. internal _GetFrameTimeRemaining GetFrameTimeRemaining;
  507. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  508. internal delegate void _GetCumulativeStats(ref Compositor_CumulativeStats pStats, uint nStatsSizeInBytes);
  509. [MarshalAs(UnmanagedType.FunctionPtr)]
  510. internal _GetCumulativeStats GetCumulativeStats;
  511. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  512. internal delegate void _FadeToColor(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground);
  513. [MarshalAs(UnmanagedType.FunctionPtr)]
  514. internal _FadeToColor FadeToColor;
  515. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  516. internal delegate void _FadeGrid(float fSeconds, bool bFadeIn);
  517. [MarshalAs(UnmanagedType.FunctionPtr)]
  518. internal _FadeGrid FadeGrid;
  519. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  520. internal delegate EVRCompositorError _SetSkyboxOverride([In, Out] Texture_t[] pTextures, uint unTextureCount);
  521. [MarshalAs(UnmanagedType.FunctionPtr)]
  522. internal _SetSkyboxOverride SetSkyboxOverride;
  523. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  524. internal delegate void _ClearSkyboxOverride();
  525. [MarshalAs(UnmanagedType.FunctionPtr)]
  526. internal _ClearSkyboxOverride ClearSkyboxOverride;
  527. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  528. internal delegate void _CompositorBringToFront();
  529. [MarshalAs(UnmanagedType.FunctionPtr)]
  530. internal _CompositorBringToFront CompositorBringToFront;
  531. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  532. internal delegate void _CompositorGoToBack();
  533. [MarshalAs(UnmanagedType.FunctionPtr)]
  534. internal _CompositorGoToBack CompositorGoToBack;
  535. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  536. internal delegate void _CompositorQuit();
  537. [MarshalAs(UnmanagedType.FunctionPtr)]
  538. internal _CompositorQuit CompositorQuit;
  539. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  540. internal delegate bool _IsFullscreen();
  541. [MarshalAs(UnmanagedType.FunctionPtr)]
  542. internal _IsFullscreen IsFullscreen;
  543. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  544. internal delegate uint _GetCurrentSceneFocusProcess();
  545. [MarshalAs(UnmanagedType.FunctionPtr)]
  546. internal _GetCurrentSceneFocusProcess GetCurrentSceneFocusProcess;
  547. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  548. internal delegate uint _GetLastFrameRenderer();
  549. [MarshalAs(UnmanagedType.FunctionPtr)]
  550. internal _GetLastFrameRenderer GetLastFrameRenderer;
  551. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  552. internal delegate bool _CanRenderScene();
  553. [MarshalAs(UnmanagedType.FunctionPtr)]
  554. internal _CanRenderScene CanRenderScene;
  555. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  556. internal delegate void _ShowMirrorWindow();
  557. [MarshalAs(UnmanagedType.FunctionPtr)]
  558. internal _ShowMirrorWindow ShowMirrorWindow;
  559. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  560. internal delegate void _HideMirrorWindow();
  561. [MarshalAs(UnmanagedType.FunctionPtr)]
  562. internal _HideMirrorWindow HideMirrorWindow;
  563. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  564. internal delegate bool _IsMirrorWindowVisible();
  565. [MarshalAs(UnmanagedType.FunctionPtr)]
  566. internal _IsMirrorWindowVisible IsMirrorWindowVisible;
  567. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  568. internal delegate void _CompositorDumpImages();
  569. [MarshalAs(UnmanagedType.FunctionPtr)]
  570. internal _CompositorDumpImages CompositorDumpImages;
  571. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  572. internal delegate bool _ShouldAppRenderWithLowResources();
  573. [MarshalAs(UnmanagedType.FunctionPtr)]
  574. internal _ShouldAppRenderWithLowResources ShouldAppRenderWithLowResources;
  575. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  576. internal delegate void _ForceInterleavedReprojectionOn(bool bOverride);
  577. [MarshalAs(UnmanagedType.FunctionPtr)]
  578. internal _ForceInterleavedReprojectionOn ForceInterleavedReprojectionOn;
  579. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  580. internal delegate void _ForceReconnectProcess();
  581. [MarshalAs(UnmanagedType.FunctionPtr)]
  582. internal _ForceReconnectProcess ForceReconnectProcess;
  583. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  584. internal delegate void _SuspendRendering(bool bSuspend);
  585. [MarshalAs(UnmanagedType.FunctionPtr)]
  586. internal _SuspendRendering SuspendRendering;
  587. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  588. internal delegate EVRCompositorError _RequestScreenshot(EVRScreenshotType type, string pchDestinationFileName, string pchVRDestinationFileName);
  589. [MarshalAs(UnmanagedType.FunctionPtr)]
  590. internal _RequestScreenshot RequestScreenshot;
  591. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  592. internal delegate EVRScreenshotType _GetCurrentScreenshotType();
  593. [MarshalAs(UnmanagedType.FunctionPtr)]
  594. internal _GetCurrentScreenshotType GetCurrentScreenshotType;
  595. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  596. internal delegate EVRCompositorError _GetMirrorTextureD3D11(EVREye eEye, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView);
  597. [MarshalAs(UnmanagedType.FunctionPtr)]
  598. internal _GetMirrorTextureD3D11 GetMirrorTextureD3D11;
  599. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  600. internal delegate EVRCompositorError _GetMirrorTextureGL(EVREye eEye, ref uint pglTextureId, IntPtr pglSharedTextureHandle);
  601. [MarshalAs(UnmanagedType.FunctionPtr)]
  602. internal _GetMirrorTextureGL GetMirrorTextureGL;
  603. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  604. internal delegate bool _ReleaseSharedGLTexture(uint glTextureId, IntPtr glSharedTextureHandle);
  605. [MarshalAs(UnmanagedType.FunctionPtr)]
  606. internal _ReleaseSharedGLTexture ReleaseSharedGLTexture;
  607. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  608. internal delegate void _LockGLSharedTextureForAccess(IntPtr glSharedTextureHandle);
  609. [MarshalAs(UnmanagedType.FunctionPtr)]
  610. internal _LockGLSharedTextureForAccess LockGLSharedTextureForAccess;
  611. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  612. internal delegate void _UnlockGLSharedTextureForAccess(IntPtr glSharedTextureHandle);
  613. [MarshalAs(UnmanagedType.FunctionPtr)]
  614. internal _UnlockGLSharedTextureForAccess UnlockGLSharedTextureForAccess;
  615. }
  616. [StructLayout(LayoutKind.Sequential)]
  617. public struct IVROverlay
  618. {
  619. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  620. internal delegate EVROverlayError _FindOverlay(string pchOverlayKey, ref ulong pOverlayHandle);
  621. [MarshalAs(UnmanagedType.FunctionPtr)]
  622. internal _FindOverlay FindOverlay;
  623. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  624. internal delegate EVROverlayError _CreateOverlay(string pchOverlayKey, string pchOverlayFriendlyName, ref ulong pOverlayHandle);
  625. [MarshalAs(UnmanagedType.FunctionPtr)]
  626. internal _CreateOverlay CreateOverlay;
  627. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  628. internal delegate EVROverlayError _DestroyOverlay(ulong ulOverlayHandle);
  629. [MarshalAs(UnmanagedType.FunctionPtr)]
  630. internal _DestroyOverlay DestroyOverlay;
  631. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  632. internal delegate EVROverlayError _SetHighQualityOverlay(ulong ulOverlayHandle);
  633. [MarshalAs(UnmanagedType.FunctionPtr)]
  634. internal _SetHighQualityOverlay SetHighQualityOverlay;
  635. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  636. internal delegate ulong _GetHighQualityOverlay();
  637. [MarshalAs(UnmanagedType.FunctionPtr)]
  638. internal _GetHighQualityOverlay GetHighQualityOverlay;
  639. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  640. internal delegate uint _GetOverlayKey(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EVROverlayError pError);
  641. [MarshalAs(UnmanagedType.FunctionPtr)]
  642. internal _GetOverlayKey GetOverlayKey;
  643. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  644. internal delegate uint _GetOverlayName(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EVROverlayError pError);
  645. [MarshalAs(UnmanagedType.FunctionPtr)]
  646. internal _GetOverlayName GetOverlayName;
  647. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  648. internal delegate EVROverlayError _GetOverlayImageData(ulong ulOverlayHandle, IntPtr pvBuffer, uint unBufferSize, ref uint punWidth, ref uint punHeight);
  649. [MarshalAs(UnmanagedType.FunctionPtr)]
  650. internal _GetOverlayImageData GetOverlayImageData;
  651. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  652. internal delegate IntPtr _GetOverlayErrorNameFromEnum(EVROverlayError error);
  653. [MarshalAs(UnmanagedType.FunctionPtr)]
  654. internal _GetOverlayErrorNameFromEnum GetOverlayErrorNameFromEnum;
  655. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  656. internal delegate EVROverlayError _SetOverlayRenderingPid(ulong ulOverlayHandle, uint unPID);
  657. [MarshalAs(UnmanagedType.FunctionPtr)]
  658. internal _SetOverlayRenderingPid SetOverlayRenderingPid;
  659. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  660. internal delegate uint _GetOverlayRenderingPid(ulong ulOverlayHandle);
  661. [MarshalAs(UnmanagedType.FunctionPtr)]
  662. internal _GetOverlayRenderingPid GetOverlayRenderingPid;
  663. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  664. internal delegate EVROverlayError _SetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled);
  665. [MarshalAs(UnmanagedType.FunctionPtr)]
  666. internal _SetOverlayFlag SetOverlayFlag;
  667. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  668. internal delegate EVROverlayError _GetOverlayFlag(ulong ulOverlayHandle, VROverlayFlags eOverlayFlag, ref bool pbEnabled);
  669. [MarshalAs(UnmanagedType.FunctionPtr)]
  670. internal _GetOverlayFlag GetOverlayFlag;
  671. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  672. internal delegate EVROverlayError _SetOverlayColor(ulong ulOverlayHandle, float fRed, float fGreen, float fBlue);
  673. [MarshalAs(UnmanagedType.FunctionPtr)]
  674. internal _SetOverlayColor SetOverlayColor;
  675. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  676. internal delegate EVROverlayError _GetOverlayColor(ulong ulOverlayHandle, ref float pfRed, ref float pfGreen, ref float pfBlue);
  677. [MarshalAs(UnmanagedType.FunctionPtr)]
  678. internal _GetOverlayColor GetOverlayColor;
  679. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  680. internal delegate EVROverlayError _SetOverlayAlpha(ulong ulOverlayHandle, float fAlpha);
  681. [MarshalAs(UnmanagedType.FunctionPtr)]
  682. internal _SetOverlayAlpha SetOverlayAlpha;
  683. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  684. internal delegate EVROverlayError _GetOverlayAlpha(ulong ulOverlayHandle, ref float pfAlpha);
  685. [MarshalAs(UnmanagedType.FunctionPtr)]
  686. internal _GetOverlayAlpha GetOverlayAlpha;
  687. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  688. internal delegate EVROverlayError _SetOverlayWidthInMeters(ulong ulOverlayHandle, float fWidthInMeters);
  689. [MarshalAs(UnmanagedType.FunctionPtr)]
  690. internal _SetOverlayWidthInMeters SetOverlayWidthInMeters;
  691. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  692. internal delegate EVROverlayError _GetOverlayWidthInMeters(ulong ulOverlayHandle, ref float pfWidthInMeters);
  693. [MarshalAs(UnmanagedType.FunctionPtr)]
  694. internal _GetOverlayWidthInMeters GetOverlayWidthInMeters;
  695. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  696. internal delegate EVROverlayError _SetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters);
  697. [MarshalAs(UnmanagedType.FunctionPtr)]
  698. internal _SetOverlayAutoCurveDistanceRangeInMeters SetOverlayAutoCurveDistanceRangeInMeters;
  699. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  700. internal delegate EVROverlayError _GetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, ref float pfMinDistanceInMeters, ref float pfMaxDistanceInMeters);
  701. [MarshalAs(UnmanagedType.FunctionPtr)]
  702. internal _GetOverlayAutoCurveDistanceRangeInMeters GetOverlayAutoCurveDistanceRangeInMeters;
  703. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  704. internal delegate EVROverlayError _SetOverlayTextureColorSpace(ulong ulOverlayHandle, EColorSpace eTextureColorSpace);
  705. [MarshalAs(UnmanagedType.FunctionPtr)]
  706. internal _SetOverlayTextureColorSpace SetOverlayTextureColorSpace;
  707. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  708. internal delegate EVROverlayError _GetOverlayTextureColorSpace(ulong ulOverlayHandle, ref EColorSpace peTextureColorSpace);
  709. [MarshalAs(UnmanagedType.FunctionPtr)]
  710. internal _GetOverlayTextureColorSpace GetOverlayTextureColorSpace;
  711. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  712. internal delegate EVROverlayError _SetOverlayTextureBounds(ulong ulOverlayHandle, ref VRTextureBounds_t pOverlayTextureBounds);
  713. [MarshalAs(UnmanagedType.FunctionPtr)]
  714. internal _SetOverlayTextureBounds SetOverlayTextureBounds;
  715. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  716. internal delegate EVROverlayError _GetOverlayTextureBounds(ulong ulOverlayHandle, ref VRTextureBounds_t pOverlayTextureBounds);
  717. [MarshalAs(UnmanagedType.FunctionPtr)]
  718. internal _GetOverlayTextureBounds GetOverlayTextureBounds;
  719. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  720. internal delegate EVROverlayError _GetOverlayTransformType(ulong ulOverlayHandle, ref VROverlayTransformType peTransformType);
  721. [MarshalAs(UnmanagedType.FunctionPtr)]
  722. internal _GetOverlayTransformType GetOverlayTransformType;
  723. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  724. internal delegate EVROverlayError _SetOverlayTransformAbsolute(ulong ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform);
  725. [MarshalAs(UnmanagedType.FunctionPtr)]
  726. internal _SetOverlayTransformAbsolute SetOverlayTransformAbsolute;
  727. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  728. internal delegate EVROverlayError _GetOverlayTransformAbsolute(ulong ulOverlayHandle, ref ETrackingUniverseOrigin peTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform);
  729. [MarshalAs(UnmanagedType.FunctionPtr)]
  730. internal _GetOverlayTransformAbsolute GetOverlayTransformAbsolute;
  731. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  732. internal delegate EVROverlayError _SetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, uint unTrackedDevice, ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform);
  733. [MarshalAs(UnmanagedType.FunctionPtr)]
  734. internal _SetOverlayTransformTrackedDeviceRelative SetOverlayTransformTrackedDeviceRelative;
  735. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  736. internal delegate EVROverlayError _GetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, ref uint punTrackedDevice, ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform);
  737. [MarshalAs(UnmanagedType.FunctionPtr)]
  738. internal _GetOverlayTransformTrackedDeviceRelative GetOverlayTransformTrackedDeviceRelative;
  739. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  740. internal delegate EVROverlayError _SetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, uint unDeviceIndex, string pchComponentName);
  741. [MarshalAs(UnmanagedType.FunctionPtr)]
  742. internal _SetOverlayTransformTrackedDeviceComponent SetOverlayTransformTrackedDeviceComponent;
  743. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  744. internal delegate EVROverlayError _GetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, ref uint punDeviceIndex, string pchComponentName, uint unComponentNameSize);
  745. [MarshalAs(UnmanagedType.FunctionPtr)]
  746. internal _GetOverlayTransformTrackedDeviceComponent GetOverlayTransformTrackedDeviceComponent;
  747. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  748. internal delegate EVROverlayError _ShowOverlay(ulong ulOverlayHandle);
  749. [MarshalAs(UnmanagedType.FunctionPtr)]
  750. internal _ShowOverlay ShowOverlay;
  751. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  752. internal delegate EVROverlayError _HideOverlay(ulong ulOverlayHandle);
  753. [MarshalAs(UnmanagedType.FunctionPtr)]
  754. internal _HideOverlay HideOverlay;
  755. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  756. internal delegate bool _IsOverlayVisible(ulong ulOverlayHandle);
  757. [MarshalAs(UnmanagedType.FunctionPtr)]
  758. internal _IsOverlayVisible IsOverlayVisible;
  759. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  760. internal delegate EVROverlayError _GetTransformForOverlayCoordinates(ulong ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, HmdVector2_t coordinatesInOverlay, ref HmdMatrix34_t pmatTransform);
  761. [MarshalAs(UnmanagedType.FunctionPtr)]
  762. internal _GetTransformForOverlayCoordinates GetTransformForOverlayCoordinates;
  763. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  764. internal delegate bool _PollNextOverlayEvent(ulong ulOverlayHandle, ref VREvent_t pEvent, uint uncbVREvent);
  765. [MarshalAs(UnmanagedType.FunctionPtr)]
  766. internal _PollNextOverlayEvent PollNextOverlayEvent;
  767. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  768. internal delegate EVROverlayError _GetOverlayInputMethod(ulong ulOverlayHandle, ref VROverlayInputMethod peInputMethod);
  769. [MarshalAs(UnmanagedType.FunctionPtr)]
  770. internal _GetOverlayInputMethod GetOverlayInputMethod;
  771. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  772. internal delegate EVROverlayError _SetOverlayInputMethod(ulong ulOverlayHandle, VROverlayInputMethod eInputMethod);
  773. [MarshalAs(UnmanagedType.FunctionPtr)]
  774. internal _SetOverlayInputMethod SetOverlayInputMethod;
  775. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  776. internal delegate EVROverlayError _GetOverlayMouseScale(ulong ulOverlayHandle, ref HmdVector2_t pvecMouseScale);
  777. [MarshalAs(UnmanagedType.FunctionPtr)]
  778. internal _GetOverlayMouseScale GetOverlayMouseScale;
  779. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  780. internal delegate EVROverlayError _SetOverlayMouseScale(ulong ulOverlayHandle, ref HmdVector2_t pvecMouseScale);
  781. [MarshalAs(UnmanagedType.FunctionPtr)]
  782. internal _SetOverlayMouseScale SetOverlayMouseScale;
  783. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  784. internal delegate bool _ComputeOverlayIntersection(ulong ulOverlayHandle, ref VROverlayIntersectionParams_t pParams, ref VROverlayIntersectionResults_t pResults);
  785. [MarshalAs(UnmanagedType.FunctionPtr)]
  786. internal _ComputeOverlayIntersection ComputeOverlayIntersection;
  787. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  788. internal delegate bool _HandleControllerOverlayInteractionAsMouse(ulong ulOverlayHandle, uint unControllerDeviceIndex);
  789. [MarshalAs(UnmanagedType.FunctionPtr)]
  790. internal _HandleControllerOverlayInteractionAsMouse HandleControllerOverlayInteractionAsMouse;
  791. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  792. internal delegate bool _IsHoverTargetOverlay(ulong ulOverlayHandle);
  793. [MarshalAs(UnmanagedType.FunctionPtr)]
  794. internal _IsHoverTargetOverlay IsHoverTargetOverlay;
  795. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  796. internal delegate ulong _GetGamepadFocusOverlay();
  797. [MarshalAs(UnmanagedType.FunctionPtr)]
  798. internal _GetGamepadFocusOverlay GetGamepadFocusOverlay;
  799. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  800. internal delegate EVROverlayError _SetGamepadFocusOverlay(ulong ulNewFocusOverlay);
  801. [MarshalAs(UnmanagedType.FunctionPtr)]
  802. internal _SetGamepadFocusOverlay SetGamepadFocusOverlay;
  803. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  804. internal delegate EVROverlayError _SetOverlayNeighbor(EOverlayDirection eDirection, ulong ulFrom, ulong ulTo);
  805. [MarshalAs(UnmanagedType.FunctionPtr)]
  806. internal _SetOverlayNeighbor SetOverlayNeighbor;
  807. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  808. internal delegate EVROverlayError _MoveGamepadFocusToNeighbor(EOverlayDirection eDirection, ulong ulFrom);
  809. [MarshalAs(UnmanagedType.FunctionPtr)]
  810. internal _MoveGamepadFocusToNeighbor MoveGamepadFocusToNeighbor;
  811. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  812. internal delegate EVROverlayError _SetOverlayTexture(ulong ulOverlayHandle, ref Texture_t pTexture);
  813. [MarshalAs(UnmanagedType.FunctionPtr)]
  814. internal _SetOverlayTexture SetOverlayTexture;
  815. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  816. internal delegate EVROverlayError _ClearOverlayTexture(ulong ulOverlayHandle);
  817. [MarshalAs(UnmanagedType.FunctionPtr)]
  818. internal _ClearOverlayTexture ClearOverlayTexture;
  819. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  820. internal delegate EVROverlayError _SetOverlayRaw(ulong ulOverlayHandle, IntPtr pvBuffer, uint unWidth, uint unHeight, uint unDepth);
  821. [MarshalAs(UnmanagedType.FunctionPtr)]
  822. internal _SetOverlayRaw SetOverlayRaw;
  823. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  824. internal delegate EVROverlayError _SetOverlayFromFile(ulong ulOverlayHandle, string pchFilePath);
  825. [MarshalAs(UnmanagedType.FunctionPtr)]
  826. internal _SetOverlayFromFile SetOverlayFromFile;
  827. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  828. internal delegate EVROverlayError _GetOverlayTexture(ulong ulOverlayHandle, ref IntPtr pNativeTextureHandle, IntPtr pNativeTextureRef, ref uint pWidth, ref uint pHeight, ref uint pNativeFormat, ref EGraphicsAPIConvention pAPI, ref EColorSpace pColorSpace);
  829. [MarshalAs(UnmanagedType.FunctionPtr)]
  830. internal _GetOverlayTexture GetOverlayTexture;
  831. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  832. internal delegate EVROverlayError _ReleaseNativeOverlayHandle(ulong ulOverlayHandle, IntPtr pNativeTextureHandle);
  833. [MarshalAs(UnmanagedType.FunctionPtr)]
  834. internal _ReleaseNativeOverlayHandle ReleaseNativeOverlayHandle;
  835. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  836. internal delegate EVROverlayError _GetOverlayTextureSize(ulong ulOverlayHandle, ref uint pWidth, ref uint pHeight);
  837. [MarshalAs(UnmanagedType.FunctionPtr)]
  838. internal _GetOverlayTextureSize GetOverlayTextureSize;
  839. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  840. internal delegate EVROverlayError _CreateDashboardOverlay(string pchOverlayKey, string pchOverlayFriendlyName, ref ulong pMainHandle, ref ulong pThumbnailHandle);
  841. [MarshalAs(UnmanagedType.FunctionPtr)]
  842. internal _CreateDashboardOverlay CreateDashboardOverlay;
  843. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  844. internal delegate bool _IsDashboardVisible();
  845. [MarshalAs(UnmanagedType.FunctionPtr)]
  846. internal _IsDashboardVisible IsDashboardVisible;
  847. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  848. internal delegate bool _IsActiveDashboardOverlay(ulong ulOverlayHandle);
  849. [MarshalAs(UnmanagedType.FunctionPtr)]
  850. internal _IsActiveDashboardOverlay IsActiveDashboardOverlay;
  851. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  852. internal delegate EVROverlayError _SetDashboardOverlaySceneProcess(ulong ulOverlayHandle, uint unProcessId);
  853. [MarshalAs(UnmanagedType.FunctionPtr)]
  854. internal _SetDashboardOverlaySceneProcess SetDashboardOverlaySceneProcess;
  855. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  856. internal delegate EVROverlayError _GetDashboardOverlaySceneProcess(ulong ulOverlayHandle, ref uint punProcessId);
  857. [MarshalAs(UnmanagedType.FunctionPtr)]
  858. internal _GetDashboardOverlaySceneProcess GetDashboardOverlaySceneProcess;
  859. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  860. internal delegate void _ShowDashboard(string pchOverlayToShow);
  861. [MarshalAs(UnmanagedType.FunctionPtr)]
  862. internal _ShowDashboard ShowDashboard;
  863. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  864. internal delegate uint _GetPrimaryDashboardDevice();
  865. [MarshalAs(UnmanagedType.FunctionPtr)]
  866. internal _GetPrimaryDashboardDevice GetPrimaryDashboardDevice;
  867. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  868. internal delegate EVROverlayError _ShowKeyboard(int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText, bool bUseMinimalMode, ulong uUserValue);
  869. [MarshalAs(UnmanagedType.FunctionPtr)]
  870. internal _ShowKeyboard ShowKeyboard;
  871. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  872. internal delegate EVROverlayError _ShowKeyboardForOverlay(ulong ulOverlayHandle, int eInputMode, int eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText, bool bUseMinimalMode, ulong uUserValue);
  873. [MarshalAs(UnmanagedType.FunctionPtr)]
  874. internal _ShowKeyboardForOverlay ShowKeyboardForOverlay;
  875. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  876. internal delegate uint _GetKeyboardText(System.Text.StringBuilder pchText, uint cchText);
  877. [MarshalAs(UnmanagedType.FunctionPtr)]
  878. internal _GetKeyboardText GetKeyboardText;
  879. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  880. internal delegate void _HideKeyboard();
  881. [MarshalAs(UnmanagedType.FunctionPtr)]
  882. internal _HideKeyboard HideKeyboard;
  883. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  884. internal delegate void _SetKeyboardTransformAbsolute(ETrackingUniverseOrigin eTrackingOrigin, ref HmdMatrix34_t pmatTrackingOriginToKeyboardTransform);
  885. [MarshalAs(UnmanagedType.FunctionPtr)]
  886. internal _SetKeyboardTransformAbsolute SetKeyboardTransformAbsolute;
  887. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  888. internal delegate void _SetKeyboardPositionForOverlay(ulong ulOverlayHandle, HmdRect2_t avoidRect);
  889. [MarshalAs(UnmanagedType.FunctionPtr)]
  890. internal _SetKeyboardPositionForOverlay SetKeyboardPositionForOverlay;
  891. }
  892. [StructLayout(LayoutKind.Sequential)]
  893. public struct IVRRenderModels
  894. {
  895. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  896. internal delegate EVRRenderModelError _LoadRenderModel_Async(string pchRenderModelName, ref IntPtr ppRenderModel);
  897. [MarshalAs(UnmanagedType.FunctionPtr)]
  898. internal _LoadRenderModel_Async LoadRenderModel_Async;
  899. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  900. internal delegate void _FreeRenderModel(IntPtr pRenderModel);
  901. [MarshalAs(UnmanagedType.FunctionPtr)]
  902. internal _FreeRenderModel FreeRenderModel;
  903. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  904. internal delegate EVRRenderModelError _LoadTexture_Async(int textureId, ref IntPtr ppTexture);
  905. [MarshalAs(UnmanagedType.FunctionPtr)]
  906. internal _LoadTexture_Async LoadTexture_Async;
  907. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  908. internal delegate void _FreeTexture(IntPtr pTexture);
  909. [MarshalAs(UnmanagedType.FunctionPtr)]
  910. internal _FreeTexture FreeTexture;
  911. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  912. internal delegate EVRRenderModelError _LoadTextureD3D11_Async(int textureId, IntPtr pD3D11Device, ref IntPtr ppD3D11Texture2D);
  913. [MarshalAs(UnmanagedType.FunctionPtr)]
  914. internal _LoadTextureD3D11_Async LoadTextureD3D11_Async;
  915. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  916. internal delegate EVRRenderModelError _LoadIntoTextureD3D11_Async(int textureId, IntPtr pDstTexture);
  917. [MarshalAs(UnmanagedType.FunctionPtr)]
  918. internal _LoadIntoTextureD3D11_Async LoadIntoTextureD3D11_Async;
  919. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  920. internal delegate void _FreeTextureD3D11(IntPtr pD3D11Texture2D);
  921. [MarshalAs(UnmanagedType.FunctionPtr)]
  922. internal _FreeTextureD3D11 FreeTextureD3D11;
  923. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  924. internal delegate uint _GetRenderModelName(uint unRenderModelIndex, System.Text.StringBuilder pchRenderModelName, uint unRenderModelNameLen);
  925. [MarshalAs(UnmanagedType.FunctionPtr)]
  926. internal _GetRenderModelName GetRenderModelName;
  927. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  928. internal delegate uint _GetRenderModelCount();
  929. [MarshalAs(UnmanagedType.FunctionPtr)]
  930. internal _GetRenderModelCount GetRenderModelCount;
  931. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  932. internal delegate uint _GetComponentCount(string pchRenderModelName);
  933. [MarshalAs(UnmanagedType.FunctionPtr)]
  934. internal _GetComponentCount GetComponentCount;
  935. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  936. internal delegate uint _GetComponentName(string pchRenderModelName, uint unComponentIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameLen);
  937. [MarshalAs(UnmanagedType.FunctionPtr)]
  938. internal _GetComponentName GetComponentName;
  939. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  940. internal delegate ulong _GetComponentButtonMask(string pchRenderModelName, string pchComponentName);
  941. [MarshalAs(UnmanagedType.FunctionPtr)]
  942. internal _GetComponentButtonMask GetComponentButtonMask;
  943. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  944. internal delegate uint _GetComponentRenderModelName(string pchRenderModelName, string pchComponentName, System.Text.StringBuilder pchComponentRenderModelName, uint unComponentRenderModelNameLen);
  945. [MarshalAs(UnmanagedType.FunctionPtr)]
  946. internal _GetComponentRenderModelName GetComponentRenderModelName;
  947. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  948. internal delegate bool _GetComponentState(string pchRenderModelName, string pchComponentName, ref VRControllerState_t pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState);
  949. [MarshalAs(UnmanagedType.FunctionPtr)]
  950. internal _GetComponentState GetComponentState;
  951. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  952. internal delegate bool _RenderModelHasComponent(string pchRenderModelName, string pchComponentName);
  953. [MarshalAs(UnmanagedType.FunctionPtr)]
  954. internal _RenderModelHasComponent RenderModelHasComponent;
  955. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  956. internal delegate uint _GetRenderModelThumbnailURL(string pchRenderModelName, System.Text.StringBuilder pchThumbnailURL, uint unThumbnailURLLen, ref EVRRenderModelError peError);
  957. [MarshalAs(UnmanagedType.FunctionPtr)]
  958. internal _GetRenderModelThumbnailURL GetRenderModelThumbnailURL;
  959. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  960. internal delegate uint _GetRenderModelOriginalPath(string pchRenderModelName, System.Text.StringBuilder pchOriginalPath, uint unOriginalPathLen, ref EVRRenderModelError peError);
  961. [MarshalAs(UnmanagedType.FunctionPtr)]
  962. internal _GetRenderModelOriginalPath GetRenderModelOriginalPath;
  963. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  964. internal delegate IntPtr _GetRenderModelErrorNameFromEnum(EVRRenderModelError error);
  965. [MarshalAs(UnmanagedType.FunctionPtr)]
  966. internal _GetRenderModelErrorNameFromEnum GetRenderModelErrorNameFromEnum;
  967. }
  968. [StructLayout(LayoutKind.Sequential)]
  969. public struct IVRNotifications
  970. {
  971. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  972. internal delegate EVRNotificationError _CreateNotification(ulong ulOverlayHandle, ulong ulUserValue, EVRNotificationType type, string pchText, EVRNotificationStyle style, ref NotificationBitmap_t pImage, ref uint pNotificationId);
  973. [MarshalAs(UnmanagedType.FunctionPtr)]
  974. internal _CreateNotification CreateNotification;
  975. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  976. internal delegate EVRNotificationError _RemoveNotification(uint notificationId);
  977. [MarshalAs(UnmanagedType.FunctionPtr)]
  978. internal _RemoveNotification RemoveNotification;
  979. }
  980. [StructLayout(LayoutKind.Sequential)]
  981. public struct IVRSettings
  982. {
  983. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  984. internal delegate IntPtr _GetSettingsErrorNameFromEnum(EVRSettingsError eError);
  985. [MarshalAs(UnmanagedType.FunctionPtr)]
  986. internal _GetSettingsErrorNameFromEnum GetSettingsErrorNameFromEnum;
  987. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  988. internal delegate bool _Sync(bool bForce, ref EVRSettingsError peError);
  989. [MarshalAs(UnmanagedType.FunctionPtr)]
  990. internal _Sync Sync;
  991. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  992. internal delegate bool _GetBool(string pchSection, string pchSettingsKey, bool bDefaultValue, ref EVRSettingsError peError);
  993. [MarshalAs(UnmanagedType.FunctionPtr)]
  994. internal _GetBool GetBool;
  995. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  996. internal delegate void _SetBool(string pchSection, string pchSettingsKey, bool bValue, ref EVRSettingsError peError);
  997. [MarshalAs(UnmanagedType.FunctionPtr)]
  998. internal _SetBool SetBool;
  999. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1000. internal delegate int _GetInt32(string pchSection, string pchSettingsKey, int nDefaultValue, ref EVRSettingsError peError);
  1001. [MarshalAs(UnmanagedType.FunctionPtr)]
  1002. internal _GetInt32 GetInt32;
  1003. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1004. internal delegate void _SetInt32(string pchSection, string pchSettingsKey, int nValue, ref EVRSettingsError peError);
  1005. [MarshalAs(UnmanagedType.FunctionPtr)]
  1006. internal _SetInt32 SetInt32;
  1007. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1008. internal delegate float _GetFloat(string pchSection, string pchSettingsKey, float flDefaultValue, ref EVRSettingsError peError);
  1009. [MarshalAs(UnmanagedType.FunctionPtr)]
  1010. internal _GetFloat GetFloat;
  1011. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1012. internal delegate void _SetFloat(string pchSection, string pchSettingsKey, float flValue, ref EVRSettingsError peError);
  1013. [MarshalAs(UnmanagedType.FunctionPtr)]
  1014. internal _SetFloat SetFloat;
  1015. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1016. internal delegate void _GetString(string pchSection, string pchSettingsKey, string pchValue, uint unValueLen, string pchDefaultValue, ref EVRSettingsError peError);
  1017. [MarshalAs(UnmanagedType.FunctionPtr)]
  1018. internal _GetString GetString;
  1019. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1020. internal delegate void _SetString(string pchSection, string pchSettingsKey, string pchValue, ref EVRSettingsError peError);
  1021. [MarshalAs(UnmanagedType.FunctionPtr)]
  1022. internal _SetString SetString;
  1023. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1024. internal delegate void _RemoveSection(string pchSection, ref EVRSettingsError peError);
  1025. [MarshalAs(UnmanagedType.FunctionPtr)]
  1026. internal _RemoveSection RemoveSection;
  1027. [UnmanagedFunctionPointer(CallingConvention.StdCall)]
  1028. internal delegate void _RemoveKeyInSection(string pchSection, string pchSettingsKey, ref EVRSettingsError peError);
  1029. [MarshalAs(UnmanagedType.FunctionPtr)]
  1030. internal _RemoveKeyInSection RemoveKeyInSection;
  1031. }
  1032. public class CVRSystem
  1033. {
  1034. IVRSystem FnTable;
  1035. internal CVRSystem(IntPtr pInterface)
  1036. {
  1037. FnTable = (IVRSystem)Marshal.PtrToStructure(pInterface, typeof(IVRSystem));
  1038. }
  1039. public void GetRecommendedRenderTargetSize(ref uint pnWidth,ref uint pnHeight)
  1040. {
  1041. pnWidth = 0;
  1042. pnHeight = 0;
  1043. FnTable.GetRecommendedRenderTargetSize(ref pnWidth,ref pnHeight);
  1044. }
  1045. public HmdMatrix44_t GetProjectionMatrix(EVREye eEye,float fNearZ,float fFarZ,EGraphicsAPIConvention eProjType)
  1046. {
  1047. HmdMatrix44_t result = FnTable.GetProjectionMatrix(eEye,fNearZ,fFarZ,eProjType);
  1048. return result;
  1049. }
  1050. public void GetProjectionRaw(EVREye eEye,ref float pfLeft,ref float pfRight,ref float pfTop,ref float pfBottom)
  1051. {
  1052. pfLeft = 0;
  1053. pfRight = 0;
  1054. pfTop = 0;
  1055. pfBottom = 0;
  1056. FnTable.GetProjectionRaw(eEye,ref pfLeft,ref pfRight,ref pfTop,ref pfBottom);
  1057. }
  1058. public DistortionCoordinates_t ComputeDistortion(EVREye eEye,float fU,float fV)
  1059. {
  1060. DistortionCoordinates_t result = FnTable.ComputeDistortion(eEye,fU,fV);
  1061. return result;
  1062. }
  1063. public HmdMatrix34_t GetEyeToHeadTransform(EVREye eEye)
  1064. {
  1065. HmdMatrix34_t result = FnTable.GetEyeToHeadTransform(eEye);
  1066. return result;
  1067. }
  1068. public bool GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync,ref ulong pulFrameCounter)
  1069. {
  1070. pfSecondsSinceLastVsync = 0;
  1071. pulFrameCounter = 0;
  1072. bool result = FnTable.GetTimeSinceLastVsync(ref pfSecondsSinceLastVsync,ref pulFrameCounter);
  1073. return result;
  1074. }
  1075. public int GetD3D9AdapterIndex()
  1076. {
  1077. int result = FnTable.GetD3D9AdapterIndex();
  1078. return result;
  1079. }
  1080. public void GetDXGIOutputInfo(ref int pnAdapterIndex)
  1081. {
  1082. pnAdapterIndex = 0;
  1083. FnTable.GetDXGIOutputInfo(ref pnAdapterIndex);
  1084. }
  1085. public bool IsDisplayOnDesktop()
  1086. {
  1087. bool result = FnTable.IsDisplayOnDesktop();
  1088. return result;
  1089. }
  1090. public bool SetDisplayVisibility(bool bIsVisibleOnDesktop)
  1091. {
  1092. bool result = FnTable.SetDisplayVisibility(bIsVisibleOnDesktop);
  1093. return result;
  1094. }
  1095. public void GetDeviceToAbsoluteTrackingPose(ETrackingUniverseOrigin eOrigin,float fPredictedSecondsToPhotonsFromNow,TrackedDevicePose_t [] pTrackedDevicePoseArray)
  1096. {
  1097. FnTable.GetDeviceToAbsoluteTrackingPose(eOrigin,fPredictedSecondsToPhotonsFromNow,pTrackedDevicePoseArray,(uint) pTrackedDevicePoseArray.Length);
  1098. }
  1099. public void ResetSeatedZeroPose()
  1100. {
  1101. FnTable.ResetSeatedZeroPose();
  1102. }
  1103. public HmdMatrix34_t GetSeatedZeroPoseToStandingAbsoluteTrackingPose()
  1104. {
  1105. HmdMatrix34_t result = FnTable.GetSeatedZeroPoseToStandingAbsoluteTrackingPose();
  1106. return result;
  1107. }
  1108. public HmdMatrix34_t GetRawZeroPoseToStandingAbsoluteTrackingPose()
  1109. {
  1110. HmdMatrix34_t result = FnTable.GetRawZeroPoseToStandingAbsoluteTrackingPose();
  1111. return result;
  1112. }
  1113. public uint GetSortedTrackedDeviceIndicesOfClass(ETrackedDeviceClass eTrackedDeviceClass,uint [] punTrackedDeviceIndexArray,uint unRelativeToTrackedDeviceIndex)
  1114. {
  1115. uint result = FnTable.GetSortedTrackedDeviceIndicesOfClass(eTrackedDeviceClass,punTrackedDeviceIndexArray,(uint) punTrackedDeviceIndexArray.Length,unRelativeToTrackedDeviceIndex);
  1116. return result;
  1117. }
  1118. public EDeviceActivityLevel GetTrackedDeviceActivityLevel(uint unDeviceId)
  1119. {
  1120. EDeviceActivityLevel result = FnTable.GetTrackedDeviceActivityLevel(unDeviceId);
  1121. return result;
  1122. }
  1123. public void ApplyTransform(ref TrackedDevicePose_t pOutputPose,ref TrackedDevicePose_t pTrackedDevicePose,ref HmdMatrix34_t pTransform)
  1124. {
  1125. FnTable.ApplyTransform(ref pOutputPose,ref pTrackedDevicePose,ref pTransform);
  1126. }
  1127. public uint GetTrackedDeviceIndexForControllerRole(ETrackedControllerRole unDeviceType)
  1128. {
  1129. uint result = FnTable.GetTrackedDeviceIndexForControllerRole(unDeviceType);
  1130. return result;
  1131. }
  1132. public ETrackedControllerRole GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex)
  1133. {
  1134. ETrackedControllerRole result = FnTable.GetControllerRoleForTrackedDeviceIndex(unDeviceIndex);
  1135. return result;
  1136. }
  1137. public ETrackedDeviceClass GetTrackedDeviceClass(uint unDeviceIndex)
  1138. {
  1139. ETrackedDeviceClass result = FnTable.GetTrackedDeviceClass(unDeviceIndex);
  1140. return result;
  1141. }
  1142. public bool IsTrackedDeviceConnected(uint unDeviceIndex)
  1143. {
  1144. bool result = FnTable.IsTrackedDeviceConnected(unDeviceIndex);
  1145. return result;
  1146. }
  1147. public bool GetBoolTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError)
  1148. {
  1149. bool result = FnTable.GetBoolTrackedDeviceProperty(unDeviceIndex,prop,ref pError);
  1150. return result;
  1151. }
  1152. public float GetFloatTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError)
  1153. {
  1154. float result = FnTable.GetFloatTrackedDeviceProperty(unDeviceIndex,prop,ref pError);
  1155. return result;
  1156. }
  1157. public int GetInt32TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError)
  1158. {
  1159. int result = FnTable.GetInt32TrackedDeviceProperty(unDeviceIndex,prop,ref pError);
  1160. return result;
  1161. }
  1162. public ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError)
  1163. {
  1164. ulong result = FnTable.GetUint64TrackedDeviceProperty(unDeviceIndex,prop,ref pError);
  1165. return result;
  1166. }
  1167. public HmdMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,ref ETrackedPropertyError pError)
  1168. {
  1169. HmdMatrix34_t result = FnTable.GetMatrix34TrackedDeviceProperty(unDeviceIndex,prop,ref pError);
  1170. return result;
  1171. }
  1172. public uint GetStringTrackedDeviceProperty(uint unDeviceIndex,ETrackedDeviceProperty prop,System.Text.StringBuilder pchValue,uint unBufferSize,ref ETrackedPropertyError pError)
  1173. {
  1174. uint result = FnTable.GetStringTrackedDeviceProperty(unDeviceIndex,prop,pchValue,unBufferSize,ref pError);
  1175. return result;
  1176. }
  1177. public string GetPropErrorNameFromEnum(ETrackedPropertyError error)
  1178. {
  1179. IntPtr result = FnTable.GetPropErrorNameFromEnum(error);
  1180. return Marshal.PtrToStringAnsi(result);
  1181. }
  1182. public bool PollNextEvent(ref VREvent_t pEvent,uint uncbVREvent)
  1183. {
  1184. bool result = FnTable.PollNextEvent(ref pEvent,uncbVREvent);
  1185. return result;
  1186. }
  1187. public bool PollNextEventWithPose(ETrackingUniverseOrigin eOrigin,ref VREvent_t pEvent,uint uncbVREvent,ref TrackedDevicePose_t pTrackedDevicePose)
  1188. {
  1189. bool result = FnTable.PollNextEventWithPose(eOrigin,ref pEvent,uncbVREvent,ref pTrackedDevicePose);
  1190. return result;
  1191. }
  1192. public string GetEventTypeNameFromEnum(EVREventType eType)
  1193. {
  1194. IntPtr result = FnTable.GetEventTypeNameFromEnum(eType);
  1195. return Marshal.PtrToStringAnsi(result);
  1196. }
  1197. public HiddenAreaMesh_t GetHiddenAreaMesh(EVREye eEye)
  1198. {
  1199. HiddenAreaMesh_t result = FnTable.GetHiddenAreaMesh(eEye);
  1200. return result;
  1201. }
  1202. public bool GetControllerState(uint unControllerDeviceIndex,ref VRControllerState_t pControllerState)
  1203. {
  1204. bool result = FnTable.GetControllerState(unControllerDeviceIndex,ref pControllerState);
  1205. return result;
  1206. }
  1207. public bool GetControllerStateWithPose(ETrackingUniverseOrigin eOrigin,uint unControllerDeviceIndex,ref VRControllerState_t pControllerState,ref TrackedDevicePose_t pTrackedDevicePose)
  1208. {
  1209. bool result = FnTable.GetControllerStateWithPose(eOrigin,unControllerDeviceIndex,ref pControllerState,ref pTrackedDevicePose);
  1210. return result;
  1211. }
  1212. public void TriggerHapticPulse(uint unControllerDeviceIndex,uint unAxisId,char usDurationMicroSec)
  1213. {
  1214. FnTable.TriggerHapticPulse(unControllerDeviceIndex,unAxisId,usDurationMicroSec);
  1215. }
  1216. public string GetButtonIdNameFromEnum(EVRButtonId eButtonId)
  1217. {
  1218. IntPtr result = FnTable.GetButtonIdNameFromEnum(eButtonId);
  1219. return Marshal.PtrToStringAnsi(result);
  1220. }
  1221. public string GetControllerAxisTypeNameFromEnum(EVRControllerAxisType eAxisType)
  1222. {
  1223. IntPtr result = FnTable.GetControllerAxisTypeNameFromEnum(eAxisType);
  1224. return Marshal.PtrToStringAnsi(result);
  1225. }
  1226. public bool CaptureInputFocus()
  1227. {
  1228. bool result = FnTable.CaptureInputFocus();
  1229. return result;
  1230. }
  1231. public void ReleaseInputFocus()
  1232. {
  1233. FnTable.ReleaseInputFocus();
  1234. }
  1235. public bool IsInputFocusCapturedByAnotherProcess()
  1236. {
  1237. bool result = FnTable.IsInputFocusCapturedByAnotherProcess();
  1238. return result;
  1239. }
  1240. public uint DriverDebugRequest(uint unDeviceIndex,string pchRequest,string pchResponseBuffer,uint unResponseBufferSize)
  1241. {
  1242. uint result = FnTable.DriverDebugRequest(unDeviceIndex,pchRequest,pchResponseBuffer,unResponseBufferSize);
  1243. return result;
  1244. }
  1245. public EVRFirmwareError PerformFirmwareUpdate(uint unDeviceIndex)
  1246. {
  1247. EVRFirmwareError result = FnTable.PerformFirmwareUpdate(unDeviceIndex);
  1248. return result;
  1249. }
  1250. public void AcknowledgeQuit_Exiting()
  1251. {
  1252. FnTable.AcknowledgeQuit_Exiting();
  1253. }
  1254. public void AcknowledgeQuit_UserPrompt()
  1255. {
  1256. FnTable.AcknowledgeQuit_UserPrompt();
  1257. }
  1258. }
  1259. public class CVRExtendedDisplay
  1260. {
  1261. IVRExtendedDisplay FnTable;
  1262. internal CVRExtendedDisplay(IntPtr pInterface)
  1263. {
  1264. FnTable = (IVRExtendedDisplay)Marshal.PtrToStructure(pInterface, typeof(IVRExtendedDisplay));
  1265. }
  1266. public void GetWindowBounds(ref int pnX,ref int pnY,ref uint pnWidth,ref uint pnHeight)
  1267. {
  1268. pnX = 0;
  1269. pnY = 0;
  1270. pnWidth = 0;
  1271. pnHeight = 0;
  1272. FnTable.GetWindowBounds(ref pnX,ref pnY,ref pnWidth,ref pnHeight);
  1273. }
  1274. public void GetEyeOutputViewport(EVREye eEye,ref uint pnX,ref uint pnY,ref uint pnWidth,ref uint pnHeight)
  1275. {
  1276. pnX = 0;
  1277. pnY = 0;
  1278. pnWidth = 0;
  1279. pnHeight = 0;
  1280. FnTable.GetEyeOutputViewport(eEye,ref pnX,ref pnY,ref pnWidth,ref pnHeight);
  1281. }
  1282. public void GetDXGIOutputInfo(ref int pnAdapterIndex,ref int pnAdapterOutputIndex)
  1283. {
  1284. pnAdapterIndex = 0;
  1285. pnAdapterOutputIndex = 0;
  1286. FnTable.GetDXGIOutputInfo(ref pnAdapterIndex,ref pnAdapterOutputIndex);
  1287. }
  1288. }
  1289. public class CVRTrackedCamera
  1290. {
  1291. IVRTrackedCamera FnTable;
  1292. internal CVRTrackedCamera(IntPtr pInterface)
  1293. {
  1294. FnTable = (IVRTrackedCamera)Marshal.PtrToStructure(pInterface, typeof(IVRTrackedCamera));
  1295. }
  1296. public string GetCameraErrorNameFromEnum(EVRTrackedCameraError eCameraError)
  1297. {
  1298. IntPtr result = FnTable.GetCameraErrorNameFromEnum(eCameraError);
  1299. return Marshal.PtrToStringAnsi(result);
  1300. }
  1301. public EVRTrackedCameraError HasCamera(uint nDeviceIndex,ref bool pHasCamera)
  1302. {
  1303. pHasCamera = false;
  1304. EVRTrackedCameraError result = FnTable.HasCamera(nDeviceIndex,ref pHasCamera);
  1305. return result;
  1306. }
  1307. public EVRTrackedCameraError GetCameraFrameSize(uint nDeviceIndex,EVRTrackedCameraFrameType eFrameType,ref uint pnWidth,ref uint pnHeight,ref uint pnFrameBufferSize)
  1308. {
  1309. pnWidth = 0;
  1310. pnHeight = 0;
  1311. pnFrameBufferSize = 0;
  1312. EVRTrackedCameraError result = FnTable.GetCameraFrameSize(nDeviceIndex,eFrameType,ref pnWidth,ref pnHeight,ref pnFrameBufferSize);
  1313. return result;
  1314. }
  1315. public EVRTrackedCameraError GetCameraIntrinisics(uint nDeviceIndex,EVRTrackedCameraFrameType eFrameType,ref HmdVector2_t pFocalLength,ref HmdVector2_t pCenter)
  1316. {
  1317. EVRTrackedCameraError result = FnTable.GetCameraIntrinisics(nDeviceIndex,eFrameType,ref pFocalLength,ref pCenter);
  1318. return result;
  1319. }
  1320. public EVRTrackedCameraError GetCameraProjection(uint nDeviceIndex,EVRTrackedCameraFrameType eFrameType,float flZNear,float flZFar,ref HmdMatrix44_t pProjection)
  1321. {
  1322. EVRTrackedCameraError result = FnTable.GetCameraProjection(nDeviceIndex,eFrameType,flZNear,flZFar,ref pProjection);
  1323. return result;
  1324. }
  1325. public EVRTrackedCameraError AcquireVideoStreamingService(uint nDeviceIndex,IntPtr pHandle)
  1326. {
  1327. EVRTrackedCameraError result = FnTable.AcquireVideoStreamingService(nDeviceIndex,pHandle);
  1328. return result;
  1329. }
  1330. public EVRTrackedCameraError ReleaseVideoStreamingService(IntPtr hTrackedCamera)
  1331. {
  1332. EVRTrackedCameraError result = FnTable.ReleaseVideoStreamingService(hTrackedCamera);
  1333. return result;
  1334. }
  1335. public EVRTrackedCameraError GetVideoStreamFrameBuffer(IntPtr hTrackedCamera,EVRTrackedCameraFrameType eFrameType,IntPtr pFrameBuffer,uint nFrameBufferSize,ref CameraVideoStreamFrameHeader_t pFrameHeader,uint nFrameHeaderSize)
  1336. {
  1337. EVRTrackedCameraError result = FnTable.GetVideoStreamFrameBuffer(hTrackedCamera,eFrameType,pFrameBuffer,nFrameBufferSize,ref pFrameHeader,nFrameHeaderSize);
  1338. return result;
  1339. }
  1340. }
  1341. public class CVRApplications
  1342. {
  1343. IVRApplications FnTable;
  1344. internal CVRApplications(IntPtr pInterface)
  1345. {
  1346. FnTable = (IVRApplications)Marshal.PtrToStructure(pInterface, typeof(IVRApplications));
  1347. }
  1348. public EVRApplicationError AddApplicationManifest(string pchApplicationManifestFullPath,bool bTemporary)
  1349. {
  1350. EVRApplicationError result = FnTable.AddApplicationManifest(pchApplicationManifestFullPath,bTemporary);
  1351. return result;
  1352. }
  1353. public EVRApplicationError RemoveApplicationManifest(string pchApplicationManifestFullPath)
  1354. {
  1355. EVRApplicationError result = FnTable.RemoveApplicationManifest(pchApplicationManifestFullPath);
  1356. return result;
  1357. }
  1358. public bool IsApplicationInstalled(string pchAppKey)
  1359. {
  1360. bool result = FnTable.IsApplicationInstalled(pchAppKey);
  1361. return result;
  1362. }
  1363. public uint GetApplicationCount()
  1364. {
  1365. uint result = FnTable.GetApplicationCount();
  1366. return result;
  1367. }
  1368. public EVRApplicationError GetApplicationKeyByIndex(uint unApplicationIndex,string pchAppKeyBuffer,uint unAppKeyBufferLen)
  1369. {
  1370. EVRApplicationError result = FnTable.GetApplicationKeyByIndex(unApplicationIndex,pchAppKeyBuffer,unAppKeyBufferLen);
  1371. return result;
  1372. }
  1373. public EVRApplicationError GetApplicationKeyByProcessId(uint unProcessId,string pchAppKeyBuffer,uint unAppKeyBufferLen)
  1374. {
  1375. EVRApplicationError result = FnTable.GetApplicationKeyByProcessId(unProcessId,pchAppKeyBuffer,unAppKeyBufferLen);
  1376. return result;
  1377. }
  1378. public EVRApplicationError LaunchApplication(string pchAppKey)
  1379. {
  1380. EVRApplicationError result = FnTable.LaunchApplication(pchAppKey);
  1381. return result;
  1382. }
  1383. public EVRApplicationError LaunchTemplateApplication(string pchTemplateAppKey,string pchNewAppKey,AppOverrideKeys_t [] pKeys)
  1384. {
  1385. EVRApplicationError result = FnTable.LaunchTemplateApplication(pchTemplateAppKey,pchNewAppKey,pKeys,(uint) pKeys.Length);
  1386. return result;
  1387. }
  1388. public EVRApplicationError LaunchDashboardOverlay(string pchAppKey)
  1389. {
  1390. EVRApplicationError result = FnTable.LaunchDashboardOverlay(pchAppKey);
  1391. return result;
  1392. }
  1393. public bool CancelApplicationLaunch(string pchAppKey)
  1394. {
  1395. bool result = FnTable.CancelApplicationLaunch(pchAppKey);
  1396. return result;
  1397. }
  1398. public EVRApplicationError IdentifyApplication(uint unProcessId,string pchAppKey)
  1399. {
  1400. EVRApplicationError result = FnTable.IdentifyApplication(unProcessId,pchAppKey);
  1401. return result;
  1402. }
  1403. public uint GetApplicationProcessId(string pchAppKey)
  1404. {
  1405. uint result = FnTable.GetApplicationProcessId(pchAppKey);
  1406. return result;
  1407. }
  1408. public string GetApplicationsErrorNameFromEnum(EVRApplicationError error)
  1409. {
  1410. IntPtr result = FnTable.GetApplicationsErrorNameFromEnum(error);
  1411. return Marshal.PtrToStringAnsi(result);
  1412. }
  1413. public uint GetApplicationPropertyString(string pchAppKey,EVRApplicationProperty eProperty,string pchPropertyValueBuffer,uint unPropertyValueBufferLen,ref EVRApplicationError peError)
  1414. {
  1415. uint result = FnTable.GetApplicationPropertyString(pchAppKey,eProperty,pchPropertyValueBuffer,unPropertyValueBufferLen,ref peError);
  1416. return result;
  1417. }
  1418. public bool GetApplicationPropertyBool(string pchAppKey,EVRApplicationProperty eProperty,ref EVRApplicationError peError)
  1419. {
  1420. bool result = FnTable.GetApplicationPropertyBool(pchAppKey,eProperty,ref peError);
  1421. return result;
  1422. }
  1423. public ulong GetApplicationPropertyUint64(string pchAppKey,EVRApplicationProperty eProperty,ref EVRApplicationError peError)
  1424. {
  1425. ulong result = FnTable.GetApplicationPropertyUint64(pchAppKey,eProperty,ref peError);
  1426. return result;
  1427. }
  1428. public EVRApplicationError SetApplicationAutoLaunch(string pchAppKey,bool bAutoLaunch)
  1429. {
  1430. EVRApplicationError result = FnTable.SetApplicationAutoLaunch(pchAppKey,bAutoLaunch);
  1431. return result;
  1432. }
  1433. public bool GetApplicationAutoLaunch(string pchAppKey)
  1434. {
  1435. bool result = FnTable.GetApplicationAutoLaunch(pchAppKey);
  1436. return result;
  1437. }
  1438. public EVRApplicationError GetStartingApplication(string pchAppKeyBuffer,uint unAppKeyBufferLen)
  1439. {
  1440. EVRApplicationError result = FnTable.GetStartingApplication(pchAppKeyBuffer,unAppKeyBufferLen);
  1441. return result;
  1442. }
  1443. public EVRApplicationTransitionState GetTransitionState()
  1444. {
  1445. EVRApplicationTransitionState result = FnTable.GetTransitionState();
  1446. return result;
  1447. }
  1448. public EVRApplicationError PerformApplicationPrelaunchCheck(string pchAppKey)
  1449. {
  1450. EVRApplicationError result = FnTable.PerformApplicationPrelaunchCheck(pchAppKey);
  1451. return result;
  1452. }
  1453. public string GetApplicationsTransitionStateNameFromEnum(EVRApplicationTransitionState state)
  1454. {
  1455. IntPtr result = FnTable.GetApplicationsTransitionStateNameFromEnum(state);
  1456. return Marshal.PtrToStringAnsi(result);
  1457. }
  1458. public bool IsQuitUserPromptRequested()
  1459. {
  1460. bool result = FnTable.IsQuitUserPromptRequested();
  1461. return result;
  1462. }
  1463. public EVRApplicationError LaunchInternalProcess(string pchBinaryPath,string pchArguments,string pchWorkingDirectory)
  1464. {
  1465. EVRApplicationError result = FnTable.LaunchInternalProcess(pchBinaryPath,pchArguments,pchWorkingDirectory);
  1466. return result;
  1467. }
  1468. }
  1469. public class CVRChaperone
  1470. {
  1471. IVRChaperone FnTable;
  1472. internal CVRChaperone(IntPtr pInterface)
  1473. {
  1474. FnTable = (IVRChaperone)Marshal.PtrToStructure(pInterface, typeof(IVRChaperone));
  1475. }
  1476. public ChaperoneCalibrationState GetCalibrationState()
  1477. {
  1478. ChaperoneCalibrationState result = FnTable.GetCalibrationState();
  1479. return result;
  1480. }
  1481. public bool GetPlayAreaSize(ref float pSizeX,ref float pSizeZ)
  1482. {
  1483. pSizeX = 0;
  1484. pSizeZ = 0;
  1485. bool result = FnTable.GetPlayAreaSize(ref pSizeX,ref pSizeZ);
  1486. return result;
  1487. }
  1488. public bool GetPlayAreaRect(ref HmdQuad_t rect)
  1489. {
  1490. bool result = FnTable.GetPlayAreaRect(ref rect);
  1491. return result;
  1492. }
  1493. public void ReloadInfo()
  1494. {
  1495. FnTable.ReloadInfo();
  1496. }
  1497. public void SetSceneColor(HmdColor_t color)
  1498. {
  1499. FnTable.SetSceneColor(color);
  1500. }
  1501. public void GetBoundsColor(ref HmdColor_t pOutputColorArray,int nNumOutputColors,float flCollisionBoundsFadeDistance,ref HmdColor_t pOutputCameraColor)
  1502. {
  1503. FnTable.GetBoundsColor(ref pOutputColorArray,nNumOutputColors,flCollisionBoundsFadeDistance,ref pOutputCameraColor);
  1504. }
  1505. public bool AreBoundsVisible()
  1506. {
  1507. bool result = FnTable.AreBoundsVisible();
  1508. return result;
  1509. }
  1510. public void ForceBoundsVisible(bool bForce)
  1511. {
  1512. FnTable.ForceBoundsVisible(bForce);
  1513. }
  1514. }
  1515. public class CVRChaperoneSetup
  1516. {
  1517. IVRChaperoneSetup FnTable;
  1518. internal CVRChaperoneSetup(IntPtr pInterface)
  1519. {
  1520. FnTable = (IVRChaperoneSetup)Marshal.PtrToStructure(pInterface, typeof(IVRChaperoneSetup));
  1521. }
  1522. public bool CommitWorkingCopy(EChaperoneConfigFile configFile)
  1523. {
  1524. bool result = FnTable.CommitWorkingCopy(configFile);
  1525. return result;
  1526. }
  1527. public void RevertWorkingCopy()
  1528. {
  1529. FnTable.RevertWorkingCopy();
  1530. }
  1531. public bool GetWorkingPlayAreaSize(ref float pSizeX,ref float pSizeZ)
  1532. {
  1533. pSizeX = 0;
  1534. pSizeZ = 0;
  1535. bool result = FnTable.GetWorkingPlayAreaSize(ref pSizeX,ref pSizeZ);
  1536. return result;
  1537. }
  1538. public bool GetWorkingPlayAreaRect(ref HmdQuad_t rect)
  1539. {
  1540. bool result = FnTable.GetWorkingPlayAreaRect(ref rect);
  1541. return result;
  1542. }
  1543. public bool GetWorkingCollisionBoundsInfo(out HmdQuad_t [] pQuadsBuffer)
  1544. {
  1545. uint punQuadsCount = 0;
  1546. bool result = FnTable.GetWorkingCollisionBoundsInfo(null,ref punQuadsCount);
  1547. pQuadsBuffer= new HmdQuad_t[punQuadsCount];
  1548. result = FnTable.GetWorkingCollisionBoundsInfo(pQuadsBuffer,ref punQuadsCount);
  1549. return result;
  1550. }
  1551. public bool GetLiveCollisionBoundsInfo(out HmdQuad_t [] pQuadsBuffer)
  1552. {
  1553. uint punQuadsCount = 0;
  1554. bool result = FnTable.GetLiveCollisionBoundsInfo(null,ref punQuadsCount);
  1555. pQuadsBuffer= new HmdQuad_t[punQuadsCount];
  1556. result = FnTable.GetLiveCollisionBoundsInfo(pQuadsBuffer,ref punQuadsCount);
  1557. return result;
  1558. }
  1559. public bool GetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose)
  1560. {
  1561. bool result = FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose);
  1562. return result;
  1563. }
  1564. public bool GetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose)
  1565. {
  1566. bool result = FnTable.GetWorkingStandingZeroPoseToRawTrackingPose(ref pmatStandingZeroPoseToRawTrackingPose);
  1567. return result;
  1568. }
  1569. public void SetWorkingPlayAreaSize(float sizeX,float sizeZ)
  1570. {
  1571. FnTable.SetWorkingPlayAreaSize(sizeX,sizeZ);
  1572. }
  1573. public void SetWorkingCollisionBoundsInfo(HmdQuad_t [] pQuadsBuffer)
  1574. {
  1575. FnTable.SetWorkingCollisionBoundsInfo(pQuadsBuffer,(uint) pQuadsBuffer.Length);
  1576. }
  1577. public void SetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose)
  1578. {
  1579. FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose(ref pMatSeatedZeroPoseToRawTrackingPose);
  1580. }
  1581. public void SetWorkingStandingZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose)
  1582. {
  1583. FnTable.SetWorkingStandingZeroPoseToRawTrackingPose(ref pMatStandingZeroPoseToRawTrackingPose);
  1584. }
  1585. public void ReloadFromDisk(EChaperoneConfigFile configFile)
  1586. {
  1587. FnTable.ReloadFromDisk(configFile);
  1588. }
  1589. public bool GetLiveSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose)
  1590. {
  1591. bool result = FnTable.GetLiveSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose);
  1592. return result;
  1593. }
  1594. public void SetWorkingCollisionBoundsTagsInfo(byte [] pTagsBuffer)
  1595. {
  1596. FnTable.SetWorkingCollisionBoundsTagsInfo(pTagsBuffer,(uint) pTagsBuffer.Length);
  1597. }
  1598. public bool GetLiveCollisionBoundsTagsInfo(out byte [] pTagsBuffer)
  1599. {
  1600. uint punTagCount = 0;
  1601. bool result = FnTable.GetLiveCollisionBoundsTagsInfo(null,ref punTagCount);
  1602. pTagsBuffer= new byte[punTagCount];
  1603. result = FnTable.GetLiveCollisionBoundsTagsInfo(pTagsBuffer,ref punTagCount);
  1604. return result;
  1605. }
  1606. public bool SetWorkingPhysicalBoundsInfo(HmdQuad_t [] pQuadsBuffer)
  1607. {
  1608. bool result = FnTable.SetWorkingPhysicalBoundsInfo(pQuadsBuffer,(uint) pQuadsBuffer.Length);
  1609. return result;
  1610. }
  1611. public bool GetLivePhysicalBoundsInfo(out HmdQuad_t [] pQuadsBuffer)
  1612. {
  1613. uint punQuadsCount = 0;
  1614. bool result = FnTable.GetLivePhysicalBoundsInfo(null,ref punQuadsCount);
  1615. pQuadsBuffer= new HmdQuad_t[punQuadsCount];
  1616. result = FnTable.GetLivePhysicalBoundsInfo(pQuadsBuffer,ref punQuadsCount);
  1617. return result;
  1618. }
  1619. public bool ExportLiveToBuffer(System.Text.StringBuilder pBuffer,ref uint pnBufferLength)
  1620. {
  1621. pnBufferLength = 0;
  1622. bool result = FnTable.ExportLiveToBuffer(pBuffer,ref pnBufferLength);
  1623. return result;
  1624. }
  1625. public bool ImportFromBufferToWorking(string pBuffer,uint nImportFlags)
  1626. {
  1627. bool result = FnTable.ImportFromBufferToWorking(pBuffer,nImportFlags);
  1628. return result;
  1629. }
  1630. }
  1631. public class CVRCompositor
  1632. {
  1633. IVRCompositor FnTable;
  1634. internal CVRCompositor(IntPtr pInterface)
  1635. {
  1636. FnTable = (IVRCompositor)Marshal.PtrToStructure(pInterface, typeof(IVRCompositor));
  1637. }
  1638. public void SetTrackingSpace(ETrackingUniverseOrigin eOrigin)
  1639. {
  1640. FnTable.SetTrackingSpace(eOrigin);
  1641. }
  1642. public ETrackingUniverseOrigin GetTrackingSpace()
  1643. {
  1644. ETrackingUniverseOrigin result = FnTable.GetTrackingSpace();
  1645. return result;
  1646. }
  1647. public EVRCompositorError WaitGetPoses(TrackedDevicePose_t [] pRenderPoseArray,TrackedDevicePose_t [] pGamePoseArray)
  1648. {
  1649. EVRCompositorError result = FnTable.WaitGetPoses(pRenderPoseArray,(uint) pRenderPoseArray.Length,pGamePoseArray,(uint) pGamePoseArray.Length);
  1650. return result;
  1651. }
  1652. public EVRCompositorError GetLastPoses(TrackedDevicePose_t [] pRenderPoseArray,TrackedDevicePose_t [] pGamePoseArray)
  1653. {
  1654. EVRCompositorError result = FnTable.GetLastPoses(pRenderPoseArray,(uint) pRenderPoseArray.Length,pGamePoseArray,(uint) pGamePoseArray.Length);
  1655. return result;
  1656. }
  1657. public EVRCompositorError GetLastPoseForTrackedDeviceIndex(uint unDeviceIndex,ref TrackedDevicePose_t pOutputPose,ref TrackedDevicePose_t pOutputGamePose)
  1658. {
  1659. EVRCompositorError result = FnTable.GetLastPoseForTrackedDeviceIndex(unDeviceIndex,ref pOutputPose,ref pOutputGamePose);
  1660. return result;
  1661. }
  1662. public EVRCompositorError Submit(EVREye eEye,ref Texture_t pTexture,ref VRTextureBounds_t pBounds,EVRSubmitFlags nSubmitFlags)
  1663. {
  1664. EVRCompositorError result = FnTable.Submit(eEye,ref pTexture,ref pBounds,nSubmitFlags);
  1665. return result;
  1666. }
  1667. public void ClearLastSubmittedFrame()
  1668. {
  1669. FnTable.ClearLastSubmittedFrame();
  1670. }
  1671. public void PostPresentHandoff()
  1672. {
  1673. FnTable.PostPresentHandoff();
  1674. }
  1675. public bool GetFrameTiming(ref Compositor_FrameTiming pTiming,uint unFramesAgo)
  1676. {
  1677. bool result = FnTable.GetFrameTiming(ref pTiming,unFramesAgo);
  1678. return result;
  1679. }
  1680. public float GetFrameTimeRemaining()
  1681. {
  1682. float result = FnTable.GetFrameTimeRemaining();
  1683. return result;
  1684. }
  1685. public void GetCumulativeStats(ref Compositor_CumulativeStats pStats,uint nStatsSizeInBytes)
  1686. {
  1687. FnTable.GetCumulativeStats(ref pStats,nStatsSizeInBytes);
  1688. }
  1689. public void FadeToColor(float fSeconds,float fRed,float fGreen,float fBlue,float fAlpha,bool bBackground)
  1690. {
  1691. FnTable.FadeToColor(fSeconds,fRed,fGreen,fBlue,fAlpha,bBackground);
  1692. }
  1693. public void FadeGrid(float fSeconds,bool bFadeIn)
  1694. {
  1695. FnTable.FadeGrid(fSeconds,bFadeIn);
  1696. }
  1697. public EVRCompositorError SetSkyboxOverride(Texture_t [] pTextures)
  1698. {
  1699. EVRCompositorError result = FnTable.SetSkyboxOverride(pTextures,(uint) pTextures.Length);
  1700. return result;
  1701. }
  1702. public void ClearSkyboxOverride()
  1703. {
  1704. FnTable.ClearSkyboxOverride();
  1705. }
  1706. public void CompositorBringToFront()
  1707. {
  1708. FnTable.CompositorBringToFront();
  1709. }
  1710. public void CompositorGoToBack()
  1711. {
  1712. FnTable.CompositorGoToBack();
  1713. }
  1714. public void CompositorQuit()
  1715. {
  1716. FnTable.CompositorQuit();
  1717. }
  1718. public bool IsFullscreen()
  1719. {
  1720. bool result = FnTable.IsFullscreen();
  1721. return result;
  1722. }
  1723. public uint GetCurrentSceneFocusProcess()
  1724. {
  1725. uint result = FnTable.GetCurrentSceneFocusProcess();
  1726. return result;
  1727. }
  1728. public uint GetLastFrameRenderer()
  1729. {
  1730. uint result = FnTable.GetLastFrameRenderer();
  1731. return result;
  1732. }
  1733. public bool CanRenderScene()
  1734. {
  1735. bool result = FnTable.CanRenderScene();
  1736. return result;
  1737. }
  1738. public void ShowMirrorWindow()
  1739. {
  1740. FnTable.ShowMirrorWindow();
  1741. }
  1742. public void HideMirrorWindow()
  1743. {
  1744. FnTable.HideMirrorWindow();
  1745. }
  1746. public bool IsMirrorWindowVisible()
  1747. {
  1748. bool result = FnTable.IsMirrorWindowVisible();
  1749. return result;
  1750. }
  1751. public void CompositorDumpImages()
  1752. {
  1753. FnTable.CompositorDumpImages();
  1754. }
  1755. public bool ShouldAppRenderWithLowResources()
  1756. {
  1757. bool result = FnTable.ShouldAppRenderWithLowResources();
  1758. return result;
  1759. }
  1760. public void ForceInterleavedReprojectionOn(bool bOverride)
  1761. {
  1762. FnTable.ForceInterleavedReprojectionOn(bOverride);
  1763. }
  1764. public void ForceReconnectProcess()
  1765. {
  1766. FnTable.ForceReconnectProcess();
  1767. }
  1768. public void SuspendRendering(bool bSuspend)
  1769. {
  1770. FnTable.SuspendRendering(bSuspend);
  1771. }
  1772. public EVRCompositorError RequestScreenshot(EVRScreenshotType type,string pchDestinationFileName,string pchVRDestinationFileName)
  1773. {
  1774. EVRCompositorError result = FnTable.RequestScreenshot(type,pchDestinationFileName,pchVRDestinationFileName);
  1775. return result;
  1776. }
  1777. public EVRScreenshotType GetCurrentScreenshotType()
  1778. {
  1779. EVRScreenshotType result = FnTable.GetCurrentScreenshotType();
  1780. return result;
  1781. }
  1782. public EVRCompositorError GetMirrorTextureD3D11(EVREye eEye,IntPtr pD3D11DeviceOrResource,ref IntPtr ppD3D11ShaderResourceView)
  1783. {
  1784. EVRCompositorError result = FnTable.GetMirrorTextureD3D11(eEye,pD3D11DeviceOrResource,ref ppD3D11ShaderResourceView);
  1785. return result;
  1786. }
  1787. public EVRCompositorError GetMirrorTextureGL(EVREye eEye,ref uint pglTextureId,IntPtr pglSharedTextureHandle)
  1788. {
  1789. pglTextureId = 0;
  1790. EVRCompositorError result = FnTable.GetMirrorTextureGL(eEye,ref pglTextureId,pglSharedTextureHandle);
  1791. return result;
  1792. }
  1793. public bool ReleaseSharedGLTexture(uint glTextureId,IntPtr glSharedTextureHandle)
  1794. {
  1795. bool result = FnTable.ReleaseSharedGLTexture(glTextureId,glSharedTextureHandle);
  1796. return result;
  1797. }
  1798. public void LockGLSharedTextureForAccess(IntPtr glSharedTextureHandle)
  1799. {
  1800. FnTable.LockGLSharedTextureForAccess(glSharedTextureHandle);
  1801. }
  1802. public void UnlockGLSharedTextureForAccess(IntPtr glSharedTextureHandle)
  1803. {
  1804. FnTable.UnlockGLSharedTextureForAccess(glSharedTextureHandle);
  1805. }
  1806. }
  1807. public class CVROverlay
  1808. {
  1809. IVROverlay FnTable;
  1810. internal CVROverlay(IntPtr pInterface)
  1811. {
  1812. FnTable = (IVROverlay)Marshal.PtrToStructure(pInterface, typeof(IVROverlay));
  1813. }
  1814. public EVROverlayError FindOverlay(string pchOverlayKey,ref ulong pOverlayHandle)
  1815. {
  1816. pOverlayHandle = 0;
  1817. EVROverlayError result = FnTable.FindOverlay(pchOverlayKey,ref pOverlayHandle);
  1818. return result;
  1819. }
  1820. public EVROverlayError CreateOverlay(string pchOverlayKey,string pchOverlayFriendlyName,ref ulong pOverlayHandle)
  1821. {
  1822. pOverlayHandle = 0;
  1823. EVROverlayError result = FnTable.CreateOverlay(pchOverlayKey,pchOverlayFriendlyName,ref pOverlayHandle);
  1824. return result;
  1825. }
  1826. public EVROverlayError DestroyOverlay(ulong ulOverlayHandle)
  1827. {
  1828. EVROverlayError result = FnTable.DestroyOverlay(ulOverlayHandle);
  1829. return result;
  1830. }
  1831. public EVROverlayError SetHighQualityOverlay(ulong ulOverlayHandle)
  1832. {
  1833. EVROverlayError result = FnTable.SetHighQualityOverlay(ulOverlayHandle);
  1834. return result;
  1835. }
  1836. public ulong GetHighQualityOverlay()
  1837. {
  1838. ulong result = FnTable.GetHighQualityOverlay();
  1839. return result;
  1840. }
  1841. public uint GetOverlayKey(ulong ulOverlayHandle,System.Text.StringBuilder pchValue,uint unBufferSize,ref EVROverlayError pError)
  1842. {
  1843. uint result = FnTable.GetOverlayKey(ulOverlayHandle,pchValue,unBufferSize,ref pError);
  1844. return result;
  1845. }
  1846. public uint GetOverlayName(ulong ulOverlayHandle,System.Text.StringBuilder pchValue,uint unBufferSize,ref EVROverlayError pError)
  1847. {
  1848. uint result = FnTable.GetOverlayName(ulOverlayHandle,pchValue,unBufferSize,ref pError);
  1849. return result;
  1850. }
  1851. public EVROverlayError GetOverlayImageData(ulong ulOverlayHandle,IntPtr pvBuffer,uint unBufferSize,ref uint punWidth,ref uint punHeight)
  1852. {
  1853. punWidth = 0;
  1854. punHeight = 0;
  1855. EVROverlayError result = FnTable.GetOverlayImageData(ulOverlayHandle,pvBuffer,unBufferSize,ref punWidth,ref punHeight);
  1856. return result;
  1857. }
  1858. public string GetOverlayErrorNameFromEnum(EVROverlayError error)
  1859. {
  1860. IntPtr result = FnTable.GetOverlayErrorNameFromEnum(error);
  1861. return Marshal.PtrToStringAnsi(result);
  1862. }
  1863. public EVROverlayError SetOverlayRenderingPid(ulong ulOverlayHandle,uint unPID)
  1864. {
  1865. EVROverlayError result = FnTable.SetOverlayRenderingPid(ulOverlayHandle,unPID);
  1866. return result;
  1867. }
  1868. public uint GetOverlayRenderingPid(ulong ulOverlayHandle)
  1869. {
  1870. uint result = FnTable.GetOverlayRenderingPid(ulOverlayHandle);
  1871. return result;
  1872. }
  1873. public EVROverlayError SetOverlayFlag(ulong ulOverlayHandle,VROverlayFlags eOverlayFlag,bool bEnabled)
  1874. {
  1875. EVROverlayError result = FnTable.SetOverlayFlag(ulOverlayHandle,eOverlayFlag,bEnabled);
  1876. return result;
  1877. }
  1878. public EVROverlayError GetOverlayFlag(ulong ulOverlayHandle,VROverlayFlags eOverlayFlag,ref bool pbEnabled)
  1879. {
  1880. pbEnabled = false;
  1881. EVROverlayError result = FnTable.GetOverlayFlag(ulOverlayHandle,eOverlayFlag,ref pbEnabled);
  1882. return result;
  1883. }
  1884. public EVROverlayError SetOverlayColor(ulong ulOverlayHandle,float fRed,float fGreen,float fBlue)
  1885. {
  1886. EVROverlayError result = FnTable.SetOverlayColor(ulOverlayHandle,fRed,fGreen,fBlue);
  1887. return result;
  1888. }
  1889. public EVROverlayError GetOverlayColor(ulong ulOverlayHandle,ref float pfRed,ref float pfGreen,ref float pfBlue)
  1890. {
  1891. pfRed = 0;
  1892. pfGreen = 0;
  1893. pfBlue = 0;
  1894. EVROverlayError result = FnTable.GetOverlayColor(ulOverlayHandle,ref pfRed,ref pfGreen,ref pfBlue);
  1895. return result;
  1896. }
  1897. public EVROverlayError SetOverlayAlpha(ulong ulOverlayHandle,float fAlpha)
  1898. {
  1899. EVROverlayError result = FnTable.SetOverlayAlpha(ulOverlayHandle,fAlpha);
  1900. return result;
  1901. }
  1902. public EVROverlayError GetOverlayAlpha(ulong ulOverlayHandle,ref float pfAlpha)
  1903. {
  1904. pfAlpha = 0;
  1905. EVROverlayError result = FnTable.GetOverlayAlpha(ulOverlayHandle,ref pfAlpha);
  1906. return result;
  1907. }
  1908. public EVROverlayError SetOverlayWidthInMeters(ulong ulOverlayHandle,float fWidthInMeters)
  1909. {
  1910. EVROverlayError result = FnTable.SetOverlayWidthInMeters(ulOverlayHandle,fWidthInMeters);
  1911. return result;
  1912. }
  1913. public EVROverlayError GetOverlayWidthInMeters(ulong ulOverlayHandle,ref float pfWidthInMeters)
  1914. {
  1915. pfWidthInMeters = 0;
  1916. EVROverlayError result = FnTable.GetOverlayWidthInMeters(ulOverlayHandle,ref pfWidthInMeters);
  1917. return result;
  1918. }
  1919. public EVROverlayError SetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle,float fMinDistanceInMeters,float fMaxDistanceInMeters)
  1920. {
  1921. EVROverlayError result = FnTable.SetOverlayAutoCurveDistanceRangeInMeters(ulOverlayHandle,fMinDistanceInMeters,fMaxDistanceInMeters);
  1922. return result;
  1923. }
  1924. public EVROverlayError GetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle,ref float pfMinDistanceInMeters,ref float pfMaxDistanceInMeters)
  1925. {
  1926. pfMinDistanceInMeters = 0;
  1927. pfMaxDistanceInMeters = 0;
  1928. EVROverlayError result = FnTable.GetOverlayAutoCurveDistanceRangeInMeters(ulOverlayHandle,ref pfMinDistanceInMeters,ref pfMaxDistanceInMeters);
  1929. return result;
  1930. }
  1931. public EVROverlayError SetOverlayTextureColorSpace(ulong ulOverlayHandle,EColorSpace eTextureColorSpace)
  1932. {
  1933. EVROverlayError result = FnTable.SetOverlayTextureColorSpace(ulOverlayHandle,eTextureColorSpace);
  1934. return result;
  1935. }
  1936. public EVROverlayError GetOverlayTextureColorSpace(ulong ulOverlayHandle,ref EColorSpace peTextureColorSpace)
  1937. {
  1938. EVROverlayError result = FnTable.GetOverlayTextureColorSpace(ulOverlayHandle,ref peTextureColorSpace);
  1939. return result;
  1940. }
  1941. public EVROverlayError SetOverlayTextureBounds(ulong ulOverlayHandle,ref VRTextureBounds_t pOverlayTextureBounds)
  1942. {
  1943. EVROverlayError result = FnTable.SetOverlayTextureBounds(ulOverlayHandle,ref pOverlayTextureBounds);
  1944. return result;
  1945. }
  1946. public EVROverlayError GetOverlayTextureBounds(ulong ulOverlayHandle,ref VRTextureBounds_t pOverlayTextureBounds)
  1947. {
  1948. EVROverlayError result = FnTable.GetOverlayTextureBounds(ulOverlayHandle,ref pOverlayTextureBounds);
  1949. return result;
  1950. }
  1951. public EVROverlayError GetOverlayTransformType(ulong ulOverlayHandle,ref VROverlayTransformType peTransformType)
  1952. {
  1953. EVROverlayError result = FnTable.GetOverlayTransformType(ulOverlayHandle,ref peTransformType);
  1954. return result;
  1955. }
  1956. public EVROverlayError SetOverlayTransformAbsolute(ulong ulOverlayHandle,ETrackingUniverseOrigin eTrackingOrigin,ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform)
  1957. {
  1958. EVROverlayError result = FnTable.SetOverlayTransformAbsolute(ulOverlayHandle,eTrackingOrigin,ref pmatTrackingOriginToOverlayTransform);
  1959. return result;
  1960. }
  1961. public EVROverlayError GetOverlayTransformAbsolute(ulong ulOverlayHandle,ref ETrackingUniverseOrigin peTrackingOrigin,ref HmdMatrix34_t pmatTrackingOriginToOverlayTransform)
  1962. {
  1963. EVROverlayError result = FnTable.GetOverlayTransformAbsolute(ulOverlayHandle,ref peTrackingOrigin,ref pmatTrackingOriginToOverlayTransform);
  1964. return result;
  1965. }
  1966. public EVROverlayError SetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle,uint unTrackedDevice,ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform)
  1967. {
  1968. EVROverlayError result = FnTable.SetOverlayTransformTrackedDeviceRelative(ulOverlayHandle,unTrackedDevice,ref pmatTrackedDeviceToOverlayTransform);
  1969. return result;
  1970. }
  1971. public EVROverlayError GetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle,ref uint punTrackedDevice,ref HmdMatrix34_t pmatTrackedDeviceToOverlayTransform)
  1972. {
  1973. punTrackedDevice = 0;
  1974. EVROverlayError result = FnTable.GetOverlayTransformTrackedDeviceRelative(ulOverlayHandle,ref punTrackedDevice,ref pmatTrackedDeviceToOverlayTransform);
  1975. return result;
  1976. }
  1977. public EVROverlayError SetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle,uint unDeviceIndex,string pchComponentName)
  1978. {
  1979. EVROverlayError result = FnTable.SetOverlayTransformTrackedDeviceComponent(ulOverlayHandle,unDeviceIndex,pchComponentName);
  1980. return result;
  1981. }
  1982. public EVROverlayError GetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle,ref uint punDeviceIndex,string pchComponentName,uint unComponentNameSize)
  1983. {
  1984. punDeviceIndex = 0;
  1985. EVROverlayError result = FnTable.GetOverlayTransformTrackedDeviceComponent(ulOverlayHandle,ref punDeviceIndex,pchComponentName,unComponentNameSize);
  1986. return result;
  1987. }
  1988. public EVROverlayError ShowOverlay(ulong ulOverlayHandle)
  1989. {
  1990. EVROverlayError result = FnTable.ShowOverlay(ulOverlayHandle);
  1991. return result;
  1992. }
  1993. public EVROverlayError HideOverlay(ulong ulOverlayHandle)
  1994. {
  1995. EVROverlayError result = FnTable.HideOverlay(ulOverlayHandle);
  1996. return result;
  1997. }
  1998. public bool IsOverlayVisible(ulong ulOverlayHandle)
  1999. {
  2000. bool result = FnTable.IsOverlayVisible(ulOverlayHandle);
  2001. return result;
  2002. }
  2003. public EVROverlayError GetTransformForOverlayCoordinates(ulong ulOverlayHandle,ETrackingUniverseOrigin eTrackingOrigin,HmdVector2_t coordinatesInOverlay,ref HmdMatrix34_t pmatTransform)
  2004. {
  2005. EVROverlayError result = FnTable.GetTransformForOverlayCoordinates(ulOverlayHandle,eTrackingOrigin,coordinatesInOverlay,ref pmatTransform);
  2006. return result;
  2007. }
  2008. public bool PollNextOverlayEvent(ulong ulOverlayHandle,ref VREvent_t pEvent,uint uncbVREvent)
  2009. {
  2010. bool result = FnTable.PollNextOverlayEvent(ulOverlayHandle,ref pEvent,uncbVREvent);
  2011. return result;
  2012. }
  2013. public EVROverlayError GetOverlayInputMethod(ulong ulOverlayHandle,ref VROverlayInputMethod peInputMethod)
  2014. {
  2015. EVROverlayError result = FnTable.GetOverlayInputMethod(ulOverlayHandle,ref peInputMethod);
  2016. return result;
  2017. }
  2018. public EVROverlayError SetOverlayInputMethod(ulong ulOverlayHandle,VROverlayInputMethod eInputMethod)
  2019. {
  2020. EVROverlayError result = FnTable.SetOverlayInputMethod(ulOverlayHandle,eInputMethod);
  2021. return result;
  2022. }
  2023. public EVROverlayError GetOverlayMouseScale(ulong ulOverlayHandle,ref HmdVector2_t pvecMouseScale)
  2024. {
  2025. EVROverlayError result = FnTable.GetOverlayMouseScale(ulOverlayHandle,ref pvecMouseScale);
  2026. return result;
  2027. }
  2028. public EVROverlayError SetOverlayMouseScale(ulong ulOverlayHandle,ref HmdVector2_t pvecMouseScale)
  2029. {
  2030. EVROverlayError result = FnTable.SetOverlayMouseScale(ulOverlayHandle,ref pvecMouseScale);
  2031. return result;
  2032. }
  2033. public bool ComputeOverlayIntersection(ulong ulOverlayHandle,ref VROverlayIntersectionParams_t pParams,ref VROverlayIntersectionResults_t pResults)
  2034. {
  2035. bool result = FnTable.ComputeOverlayIntersection(ulOverlayHandle,ref pParams,ref pResults);
  2036. return result;
  2037. }
  2038. public bool HandleControllerOverlayInteractionAsMouse(ulong ulOverlayHandle,uint unControllerDeviceIndex)
  2039. {
  2040. bool result = FnTable.HandleControllerOverlayInteractionAsMouse(ulOverlayHandle,unControllerDeviceIndex);
  2041. return result;
  2042. }
  2043. public bool IsHoverTargetOverlay(ulong ulOverlayHandle)
  2044. {
  2045. bool result = FnTable.IsHoverTargetOverlay(ulOverlayHandle);
  2046. return result;
  2047. }
  2048. public ulong GetGamepadFocusOverlay()
  2049. {
  2050. ulong result = FnTable.GetGamepadFocusOverlay();
  2051. return result;
  2052. }
  2053. public EVROverlayError SetGamepadFocusOverlay(ulong ulNewFocusOverlay)
  2054. {
  2055. EVROverlayError result = FnTable.SetGamepadFocusOverlay(ulNewFocusOverlay);
  2056. return result;
  2057. }
  2058. public EVROverlayError SetOverlayNeighbor(EOverlayDirection eDirection,ulong ulFrom,ulong ulTo)
  2059. {
  2060. EVROverlayError result = FnTable.SetOverlayNeighbor(eDirection,ulFrom,ulTo);
  2061. return result;
  2062. }
  2063. public EVROverlayError MoveGamepadFocusToNeighbor(EOverlayDirection eDirection,ulong ulFrom)
  2064. {
  2065. EVROverlayError result = FnTable.MoveGamepadFocusToNeighbor(eDirection,ulFrom);
  2066. return result;
  2067. }
  2068. public EVROverlayError SetOverlayTexture(ulong ulOverlayHandle,ref Texture_t pTexture)
  2069. {
  2070. EVROverlayError result = FnTable.SetOverlayTexture(ulOverlayHandle,ref pTexture);
  2071. return result;
  2072. }
  2073. public EVROverlayError ClearOverlayTexture(ulong ulOverlayHandle)
  2074. {
  2075. EVROverlayError result = FnTable.ClearOverlayTexture(ulOverlayHandle);
  2076. return result;
  2077. }
  2078. public EVROverlayError SetOverlayRaw(ulong ulOverlayHandle,IntPtr pvBuffer,uint unWidth,uint unHeight,uint unDepth)
  2079. {
  2080. EVROverlayError result = FnTable.SetOverlayRaw(ulOverlayHandle,pvBuffer,unWidth,unHeight,unDepth);
  2081. return result;
  2082. }
  2083. public EVROverlayError SetOverlayFromFile(ulong ulOverlayHandle,string pchFilePath)
  2084. {
  2085. EVROverlayError result = FnTable.SetOverlayFromFile(ulOverlayHandle,pchFilePath);
  2086. return result;
  2087. }
  2088. public EVROverlayError GetOverlayTexture(ulong ulOverlayHandle,ref IntPtr pNativeTextureHandle,IntPtr pNativeTextureRef,ref uint pWidth,ref uint pHeight,ref uint pNativeFormat,ref EGraphicsAPIConvention pAPI,ref EColorSpace pColorSpace)
  2089. {
  2090. pWidth = 0;
  2091. pHeight = 0;
  2092. pNativeFormat = 0;
  2093. EVROverlayError result = FnTable.GetOverlayTexture(ulOverlayHandle,ref pNativeTextureHandle,pNativeTextureRef,ref pWidth,ref pHeight,ref pNativeFormat,ref pAPI,ref pColorSpace);
  2094. return result;
  2095. }
  2096. public EVROverlayError ReleaseNativeOverlayHandle(ulong ulOverlayHandle,IntPtr pNativeTextureHandle)
  2097. {
  2098. EVROverlayError result = FnTable.ReleaseNativeOverlayHandle(ulOverlayHandle,pNativeTextureHandle);
  2099. return result;
  2100. }
  2101. public EVROverlayError GetOverlayTextureSize(ulong ulOverlayHandle,ref uint pWidth,ref uint pHeight)
  2102. {
  2103. pWidth = 0;
  2104. pHeight = 0;
  2105. EVROverlayError result = FnTable.GetOverlayTextureSize(ulOverlayHandle,ref pWidth,ref pHeight);
  2106. return result;
  2107. }
  2108. public EVROverlayError CreateDashboardOverlay(string pchOverlayKey,string pchOverlayFriendlyName,ref ulong pMainHandle,ref ulong pThumbnailHandle)
  2109. {
  2110. pMainHandle = 0;
  2111. pThumbnailHandle = 0;
  2112. EVROverlayError result = FnTable.CreateDashboardOverlay(pchOverlayKey,pchOverlayFriendlyName,ref pMainHandle,ref pThumbnailHandle);
  2113. return result;
  2114. }
  2115. public bool IsDashboardVisible()
  2116. {
  2117. bool result = FnTable.IsDashboardVisible();
  2118. return result;
  2119. }
  2120. public bool IsActiveDashboardOverlay(ulong ulOverlayHandle)
  2121. {
  2122. bool result = FnTable.IsActiveDashboardOverlay(ulOverlayHandle);
  2123. return result;
  2124. }
  2125. public EVROverlayError SetDashboardOverlaySceneProcess(ulong ulOverlayHandle,uint unProcessId)
  2126. {
  2127. EVROverlayError result = FnTable.SetDashboardOverlaySceneProcess(ulOverlayHandle,unProcessId);
  2128. return result;
  2129. }
  2130. public EVROverlayError GetDashboardOverlaySceneProcess(ulong ulOverlayHandle,ref uint punProcessId)
  2131. {
  2132. punProcessId = 0;
  2133. EVROverlayError result = FnTable.GetDashboardOverlaySceneProcess(ulOverlayHandle,ref punProcessId);
  2134. return result;
  2135. }
  2136. public void ShowDashboard(string pchOverlayToShow)
  2137. {
  2138. FnTable.ShowDashboard(pchOverlayToShow);
  2139. }
  2140. public uint GetPrimaryDashboardDevice()
  2141. {
  2142. uint result = FnTable.GetPrimaryDashboardDevice();
  2143. return result;
  2144. }
  2145. public EVROverlayError ShowKeyboard(int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText,bool bUseMinimalMode,ulong uUserValue)
  2146. {
  2147. EVROverlayError result = FnTable.ShowKeyboard(eInputMode,eLineInputMode,pchDescription,unCharMax,pchExistingText,bUseMinimalMode,uUserValue);
  2148. return result;
  2149. }
  2150. public EVROverlayError ShowKeyboardForOverlay(ulong ulOverlayHandle,int eInputMode,int eLineInputMode,string pchDescription,uint unCharMax,string pchExistingText,bool bUseMinimalMode,ulong uUserValue)
  2151. {
  2152. EVROverlayError result = FnTable.ShowKeyboardForOverlay(ulOverlayHandle,eInputMode,eLineInputMode,pchDescription,unCharMax,pchExistingText,bUseMinimalMode,uUserValue);
  2153. return result;
  2154. }
  2155. public uint GetKeyboardText(System.Text.StringBuilder pchText,uint cchText)
  2156. {
  2157. uint result = FnTable.GetKeyboardText(pchText,cchText);
  2158. return result;
  2159. }
  2160. public void HideKeyboard()
  2161. {
  2162. FnTable.HideKeyboard();
  2163. }
  2164. public void SetKeyboardTransformAbsolute(ETrackingUniverseOrigin eTrackingOrigin,ref HmdMatrix34_t pmatTrackingOriginToKeyboardTransform)
  2165. {
  2166. FnTable.SetKeyboardTransformAbsolute(eTrackingOrigin,ref pmatTrackingOriginToKeyboardTransform);
  2167. }
  2168. public void SetKeyboardPositionForOverlay(ulong ulOverlayHandle,HmdRect2_t avoidRect)
  2169. {
  2170. FnTable.SetKeyboardPositionForOverlay(ulOverlayHandle,avoidRect);
  2171. }
  2172. }
  2173. public class CVRRenderModels
  2174. {
  2175. IVRRenderModels FnTable;
  2176. internal CVRRenderModels(IntPtr pInterface)
  2177. {
  2178. FnTable = (IVRRenderModels)Marshal.PtrToStructure(pInterface, typeof(IVRRenderModels));
  2179. }
  2180. public EVRRenderModelError LoadRenderModel_Async(string pchRenderModelName,ref IntPtr ppRenderModel)
  2181. {
  2182. EVRRenderModelError result = FnTable.LoadRenderModel_Async(pchRenderModelName,ref ppRenderModel);
  2183. return result;
  2184. }
  2185. public void FreeRenderModel(IntPtr pRenderModel)
  2186. {
  2187. FnTable.FreeRenderModel(pRenderModel);
  2188. }
  2189. public EVRRenderModelError LoadTexture_Async(int textureId,ref IntPtr ppTexture)
  2190. {
  2191. EVRRenderModelError result = FnTable.LoadTexture_Async(textureId,ref ppTexture);
  2192. return result;
  2193. }
  2194. public void FreeTexture(IntPtr pTexture)
  2195. {
  2196. FnTable.FreeTexture(pTexture);
  2197. }
  2198. public EVRRenderModelError LoadTextureD3D11_Async(int textureId,IntPtr pD3D11Device,ref IntPtr ppD3D11Texture2D)
  2199. {
  2200. EVRRenderModelError result = FnTable.LoadTextureD3D11_Async(textureId,pD3D11Device,ref ppD3D11Texture2D);
  2201. return result;
  2202. }
  2203. public EVRRenderModelError LoadIntoTextureD3D11_Async(int textureId,IntPtr pDstTexture)
  2204. {
  2205. EVRRenderModelError result = FnTable.LoadIntoTextureD3D11_Async(textureId,pDstTexture);
  2206. return result;
  2207. }
  2208. public void FreeTextureD3D11(IntPtr pD3D11Texture2D)
  2209. {
  2210. FnTable.FreeTextureD3D11(pD3D11Texture2D);
  2211. }
  2212. public uint GetRenderModelName(uint unRenderModelIndex,System.Text.StringBuilder pchRenderModelName,uint unRenderModelNameLen)
  2213. {
  2214. uint result = FnTable.GetRenderModelName(unRenderModelIndex,pchRenderModelName,unRenderModelNameLen);
  2215. return result;
  2216. }
  2217. public uint GetRenderModelCount()
  2218. {
  2219. uint result = FnTable.GetRenderModelCount();
  2220. return result;
  2221. }
  2222. public uint GetComponentCount(string pchRenderModelName)
  2223. {
  2224. uint result = FnTable.GetComponentCount(pchRenderModelName);
  2225. return result;
  2226. }
  2227. public uint GetComponentName(string pchRenderModelName,uint unComponentIndex,System.Text.StringBuilder pchComponentName,uint unComponentNameLen)
  2228. {
  2229. uint result = FnTable.GetComponentName(pchRenderModelName,unComponentIndex,pchComponentName,unComponentNameLen);
  2230. return result;
  2231. }
  2232. public ulong GetComponentButtonMask(string pchRenderModelName,string pchComponentName)
  2233. {
  2234. ulong result = FnTable.GetComponentButtonMask(pchRenderModelName,pchComponentName);
  2235. return result;
  2236. }
  2237. public uint GetComponentRenderModelName(string pchRenderModelName,string pchComponentName,System.Text.StringBuilder pchComponentRenderModelName,uint unComponentRenderModelNameLen)
  2238. {
  2239. uint result = FnTable.GetComponentRenderModelName(pchRenderModelName,pchComponentName,pchComponentRenderModelName,unComponentRenderModelNameLen);
  2240. return result;
  2241. }
  2242. public bool GetComponentState(string pchRenderModelName,string pchComponentName,ref VRControllerState_t pControllerState,ref RenderModel_ControllerMode_State_t pState,ref RenderModel_ComponentState_t pComponentState)
  2243. {
  2244. bool result = FnTable.GetComponentState(pchRenderModelName,pchComponentName,ref pControllerState,ref pState,ref pComponentState);
  2245. return result;
  2246. }
  2247. public bool RenderModelHasComponent(string pchRenderModelName,string pchComponentName)
  2248. {
  2249. bool result = FnTable.RenderModelHasComponent(pchRenderModelName,pchComponentName);
  2250. return result;
  2251. }
  2252. public uint GetRenderModelThumbnailURL(string pchRenderModelName,System.Text.StringBuilder pchThumbnailURL,uint unThumbnailURLLen,ref EVRRenderModelError peError)
  2253. {
  2254. uint result = FnTable.GetRenderModelThumbnailURL(pchRenderModelName,pchThumbnailURL,unThumbnailURLLen,ref peError);
  2255. return result;
  2256. }
  2257. public uint GetRenderModelOriginalPath(string pchRenderModelName,System.Text.StringBuilder pchOriginalPath,uint unOriginalPathLen,ref EVRRenderModelError peError)
  2258. {
  2259. uint result = FnTable.GetRenderModelOriginalPath(pchRenderModelName,pchOriginalPath,unOriginalPathLen,ref peError);
  2260. return result;
  2261. }
  2262. public string GetRenderModelErrorNameFromEnum(EVRRenderModelError error)
  2263. {
  2264. IntPtr result = FnTable.GetRenderModelErrorNameFromEnum(error);
  2265. return Marshal.PtrToStringAnsi(result);
  2266. }
  2267. }
  2268. public class CVRNotifications
  2269. {
  2270. IVRNotifications FnTable;
  2271. internal CVRNotifications(IntPtr pInterface)
  2272. {
  2273. FnTable = (IVRNotifications)Marshal.PtrToStructure(pInterface, typeof(IVRNotifications));
  2274. }
  2275. public EVRNotificationError CreateNotification(ulong ulOverlayHandle,ulong ulUserValue,EVRNotificationType type,string pchText,EVRNotificationStyle style,ref NotificationBitmap_t pImage,ref uint pNotificationId)
  2276. {
  2277. pNotificationId = 0;
  2278. EVRNotificationError result = FnTable.CreateNotification(ulOverlayHandle,ulUserValue,type,pchText,style,ref pImage,ref pNotificationId);
  2279. return result;
  2280. }
  2281. public EVRNotificationError RemoveNotification(uint notificationId)
  2282. {
  2283. EVRNotificationError result = FnTable.RemoveNotification(notificationId);
  2284. return result;
  2285. }
  2286. }
  2287. public class CVRSettings
  2288. {
  2289. IVRSettings FnTable;
  2290. internal CVRSettings(IntPtr pInterface)
  2291. {
  2292. FnTable = (IVRSettings)Marshal.PtrToStructure(pInterface, typeof(IVRSettings));
  2293. }
  2294. public string GetSettingsErrorNameFromEnum(EVRSettingsError eError)
  2295. {
  2296. IntPtr result = FnTable.GetSettingsErrorNameFromEnum(eError);
  2297. return Marshal.PtrToStringAnsi(result);
  2298. }
  2299. public bool Sync(bool bForce,ref EVRSettingsError peError)
  2300. {
  2301. bool result = FnTable.Sync(bForce,ref peError);
  2302. return result;
  2303. }
  2304. public bool GetBool(string pchSection,string pchSettingsKey,bool bDefaultValue,ref EVRSettingsError peError)
  2305. {
  2306. bool result = FnTable.GetBool(pchSection,pchSettingsKey,bDefaultValue,ref peError);
  2307. return result;
  2308. }
  2309. public void SetBool(string pchSection,string pchSettingsKey,bool bValue,ref EVRSettingsError peError)
  2310. {
  2311. FnTable.SetBool(pchSection,pchSettingsKey,bValue,ref peError);
  2312. }
  2313. public int GetInt32(string pchSection,string pchSettingsKey,int nDefaultValue,ref EVRSettingsError peError)
  2314. {
  2315. int result = FnTable.GetInt32(pchSection,pchSettingsKey,nDefaultValue,ref peError);
  2316. return result;
  2317. }
  2318. public void SetInt32(string pchSection,string pchSettingsKey,int nValue,ref EVRSettingsError peError)
  2319. {
  2320. FnTable.SetInt32(pchSection,pchSettingsKey,nValue,ref peError);
  2321. }
  2322. public float GetFloat(string pchSection,string pchSettingsKey,float flDefaultValue,ref EVRSettingsError peError)
  2323. {
  2324. float result = FnTable.GetFloat(pchSection,pchSettingsKey,flDefaultValue,ref peError);
  2325. return result;
  2326. }
  2327. public void SetFloat(string pchSection,string pchSettingsKey,float flValue,ref EVRSettingsError peError)
  2328. {
  2329. FnTable.SetFloat(pchSection,pchSettingsKey,flValue,ref peError);
  2330. }
  2331. public void GetString(string pchSection,string pchSettingsKey,string pchValue,uint unValueLen,string pchDefaultValue,ref EVRSettingsError peError)
  2332. {
  2333. FnTable.GetString(pchSection,pchSettingsKey,pchValue,unValueLen,pchDefaultValue,ref peError);
  2334. }
  2335. public void SetString(string pchSection,string pchSettingsKey,string pchValue,ref EVRSettingsError peError)
  2336. {
  2337. FnTable.SetString(pchSection,pchSettingsKey,pchValue,ref peError);
  2338. }
  2339. public void RemoveSection(string pchSection,ref EVRSettingsError peError)
  2340. {
  2341. FnTable.RemoveSection(pchSection,ref peError);
  2342. }
  2343. public void RemoveKeyInSection(string pchSection,string pchSettingsKey,ref EVRSettingsError peError)
  2344. {
  2345. FnTable.RemoveKeyInSection(pchSection,pchSettingsKey,ref peError);
  2346. }
  2347. }
  2348. public class OpenVRInterop
  2349. {
  2350. [DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal")]
  2351. internal static extern uint InitInternal(ref EVRInitError peError, EVRApplicationType eApplicationType);
  2352. [DllImportAttribute("openvr_api", EntryPoint = "VR_ShutdownInternal")]
  2353. internal static extern void ShutdownInternal();
  2354. [DllImportAttribute("openvr_api", EntryPoint = "VR_IsHmdPresent")]
  2355. internal static extern bool IsHmdPresent();
  2356. [DllImportAttribute("openvr_api", EntryPoint = "VR_IsRuntimeInstalled")]
  2357. internal static extern bool IsRuntimeInstalled();
  2358. [DllImportAttribute("openvr_api", EntryPoint = "VR_GetStringForHmdError")]
  2359. internal static extern IntPtr GetStringForHmdError(EVRInitError error);
  2360. [DllImportAttribute("openvr_api", EntryPoint = "VR_GetGenericInterface")]
  2361. internal static extern IntPtr GetGenericInterface([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion, ref EVRInitError peError);
  2362. [DllImportAttribute("openvr_api", EntryPoint = "VR_IsInterfaceVersionValid")]
  2363. internal static extern bool IsInterfaceVersionValid([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion);
  2364. [DllImportAttribute("openvr_api", EntryPoint = "VR_GetInitToken")]
  2365. internal static extern uint GetInitToken();
  2366. }
  2367. public enum EVREye
  2368. {
  2369. Eye_Left = 0,
  2370. Eye_Right = 1,
  2371. }
  2372. public enum EGraphicsAPIConvention
  2373. {
  2374. API_DirectX = 0,
  2375. API_OpenGL = 1,
  2376. }
  2377. public enum EColorSpace
  2378. {
  2379. Auto = 0,
  2380. Gamma = 1,
  2381. Linear = 2,
  2382. }
  2383. public enum ETrackingResult
  2384. {
  2385. Uninitialized = 1,
  2386. Calibrating_InProgress = 100,
  2387. Calibrating_OutOfRange = 101,
  2388. Running_OK = 200,
  2389. Running_OutOfRange = 201,
  2390. }
  2391. public enum ETrackedDeviceClass
  2392. {
  2393. Invalid = 0,
  2394. HMD = 1,
  2395. Controller = 2,
  2396. TrackingReference = 4,
  2397. Other = 1000,
  2398. }
  2399. public enum ETrackedControllerRole
  2400. {
  2401. Invalid = 0,
  2402. LeftHand = 1,
  2403. RightHand = 2,
  2404. }
  2405. public enum ETrackingUniverseOrigin
  2406. {
  2407. TrackingUniverseSeated = 0,
  2408. TrackingUniverseStanding = 1,
  2409. TrackingUniverseRawAndUncalibrated = 2,
  2410. }
  2411. public enum ETrackedDeviceProperty
  2412. {
  2413. Prop_TrackingSystemName_String = 1000,
  2414. Prop_ModelNumber_String = 1001,
  2415. Prop_SerialNumber_String = 1002,
  2416. Prop_RenderModelName_String = 1003,
  2417. Prop_WillDriftInYaw_Bool = 1004,
  2418. Prop_ManufacturerName_String = 1005,
  2419. Prop_TrackingFirmwareVersion_String = 1006,
  2420. Prop_HardwareRevision_String = 1007,
  2421. Prop_AllWirelessDongleDescriptions_String = 1008,
  2422. Prop_ConnectedWirelessDongle_String = 1009,
  2423. Prop_DeviceIsWireless_Bool = 1010,
  2424. Prop_DeviceIsCharging_Bool = 1011,
  2425. Prop_DeviceBatteryPercentage_Float = 1012,
  2426. Prop_StatusDisplayTransform_Matrix34 = 1013,
  2427. Prop_Firmware_UpdateAvailable_Bool = 1014,
  2428. Prop_Firmware_ManualUpdate_Bool = 1015,
  2429. Prop_Firmware_ManualUpdateURL_String = 1016,
  2430. Prop_HardwareRevision_Uint64 = 1017,
  2431. Prop_FirmwareVersion_Uint64 = 1018,
  2432. Prop_FPGAVersion_Uint64 = 1019,
  2433. Prop_VRCVersion_Uint64 = 1020,
  2434. Prop_RadioVersion_Uint64 = 1021,
  2435. Prop_DongleVersion_Uint64 = 1022,
  2436. Prop_BlockServerShutdown_Bool = 1023,
  2437. Prop_CanUnifyCoordinateSystemWithHmd_Bool = 1024,
  2438. Prop_ContainsProximitySensor_Bool = 1025,
  2439. Prop_DeviceProvidesBatteryStatus_Bool = 1026,
  2440. Prop_DeviceCanPowerOff_Bool = 1027,
  2441. Prop_Firmware_ProgrammingTarget_String = 1028,
  2442. Prop_DeviceClass_Int32 = 1029,
  2443. Prop_HasCamera_Bool = 1030,
  2444. Prop_DriverVersion_String = 1031,
  2445. Prop_Firmware_ForceUpdateRequired_Bool = 1032,
  2446. Prop_ReportsTimeSinceVSync_Bool = 2000,
  2447. Prop_SecondsFromVsyncToPhotons_Float = 2001,
  2448. Prop_DisplayFrequency_Float = 2002,
  2449. Prop_UserIpdMeters_Float = 2003,
  2450. Prop_CurrentUniverseId_Uint64 = 2004,
  2451. Prop_PreviousUniverseId_Uint64 = 2005,
  2452. Prop_DisplayFirmwareVersion_Uint64 = 2006,
  2453. Prop_IsOnDesktop_Bool = 2007,
  2454. Prop_DisplayMCType_Int32 = 2008,
  2455. Prop_DisplayMCOffset_Float = 2009,
  2456. Prop_DisplayMCScale_Float = 2010,
  2457. Prop_EdidVendorID_Int32 = 2011,
  2458. Prop_DisplayMCImageLeft_String = 2012,
  2459. Prop_DisplayMCImageRight_String = 2013,
  2460. Prop_DisplayGCBlackClamp_Float = 2014,
  2461. Prop_EdidProductID_Int32 = 2015,
  2462. Prop_CameraToHeadTransform_Matrix34 = 2016,
  2463. Prop_DisplayGCType_Int32 = 2017,
  2464. Prop_DisplayGCOffset_Float = 2018,
  2465. Prop_DisplayGCScale_Float = 2019,
  2466. Prop_DisplayGCPrescale_Float = 2020,
  2467. Prop_DisplayGCImage_String = 2021,
  2468. Prop_LensCenterLeftU_Float = 2022,
  2469. Prop_LensCenterLeftV_Float = 2023,
  2470. Prop_LensCenterRightU_Float = 2024,
  2471. Prop_LensCenterRightV_Float = 2025,
  2472. Prop_UserHeadToEyeDepthMeters_Float = 2026,
  2473. Prop_CameraFirmwareVersion_Uint64 = 2027,
  2474. Prop_CameraFirmwareDescription_String = 2028,
  2475. Prop_DisplayFPGAVersion_Uint64 = 2029,
  2476. Prop_DisplayBootloaderVersion_Uint64 = 2030,
  2477. Prop_DisplayHardwareVersion_Uint64 = 2031,
  2478. Prop_AudioFirmwareVersion_Uint64 = 2032,
  2479. Prop_CameraCompatibilityMode_Int32 = 2033,
  2480. Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034,
  2481. Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035,
  2482. Prop_AttachedDeviceId_String = 3000,
  2483. Prop_SupportedButtons_Uint64 = 3001,
  2484. Prop_Axis0Type_Int32 = 3002,
  2485. Prop_Axis1Type_Int32 = 3003,
  2486. Prop_Axis2Type_Int32 = 3004,
  2487. Prop_Axis3Type_Int32 = 3005,
  2488. Prop_Axis4Type_Int32 = 3006,
  2489. Prop_FieldOfViewLeftDegrees_Float = 4000,
  2490. Prop_FieldOfViewRightDegrees_Float = 4001,
  2491. Prop_FieldOfViewTopDegrees_Float = 4002,
  2492. Prop_FieldOfViewBottomDegrees_Float = 4003,
  2493. Prop_TrackingRangeMinimumMeters_Float = 4004,
  2494. Prop_TrackingRangeMaximumMeters_Float = 4005,
  2495. Prop_ModeLabel_String = 4006,
  2496. Prop_VendorSpecific_Reserved_Start = 10000,
  2497. Prop_VendorSpecific_Reserved_End = 10999,
  2498. }
  2499. public enum ETrackedPropertyError
  2500. {
  2501. TrackedProp_Success = 0,
  2502. TrackedProp_WrongDataType = 1,
  2503. TrackedProp_WrongDeviceClass = 2,
  2504. TrackedProp_BufferTooSmall = 3,
  2505. TrackedProp_UnknownProperty = 4,
  2506. TrackedProp_InvalidDevice = 5,
  2507. TrackedProp_CouldNotContactServer = 6,
  2508. TrackedProp_ValueNotProvidedByDevice = 7,
  2509. TrackedProp_StringExceedsMaximumLength = 8,
  2510. TrackedProp_NotYetAvailable = 9,
  2511. }
  2512. public enum EVRSubmitFlags
  2513. {
  2514. Submit_Default = 0,
  2515. Submit_LensDistortionAlreadyApplied = 1,
  2516. Submit_GlRenderBuffer = 2,
  2517. Submit_Screenshot = 4,
  2518. }
  2519. public enum EVRState
  2520. {
  2521. Undefined = -1,
  2522. Off = 0,
  2523. Searching = 1,
  2524. Searching_Alert = 2,
  2525. Ready = 3,
  2526. Ready_Alert = 4,
  2527. NotReady = 5,
  2528. Standby = 6,
  2529. }
  2530. public enum EVREventType
  2531. {
  2532. VREvent_None = 0,
  2533. VREvent_TrackedDeviceActivated = 100,
  2534. VREvent_TrackedDeviceDeactivated = 101,
  2535. VREvent_TrackedDeviceUpdated = 102,
  2536. VREvent_TrackedDeviceUserInteractionStarted = 103,
  2537. VREvent_TrackedDeviceUserInteractionEnded = 104,
  2538. VREvent_IpdChanged = 105,
  2539. VREvent_EnterStandbyMode = 106,
  2540. VREvent_LeaveStandbyMode = 107,
  2541. VREvent_TrackedDeviceRoleChanged = 108,
  2542. VREvent_ButtonPress = 200,
  2543. VREvent_ButtonUnpress = 201,
  2544. VREvent_ButtonTouch = 202,
  2545. VREvent_ButtonUntouch = 203,
  2546. VREvent_MouseMove = 300,
  2547. VREvent_MouseButtonDown = 301,
  2548. VREvent_MouseButtonUp = 302,
  2549. VREvent_FocusEnter = 303,
  2550. VREvent_FocusLeave = 304,
  2551. VREvent_Scroll = 305,
  2552. VREvent_TouchPadMove = 306,
  2553. VREvent_InputFocusCaptured = 400,
  2554. VREvent_InputFocusReleased = 401,
  2555. VREvent_SceneFocusLost = 402,
  2556. VREvent_SceneFocusGained = 403,
  2557. VREvent_SceneApplicationChanged = 404,
  2558. VREvent_SceneFocusChanged = 405,
  2559. VREvent_InputFocusChanged = 406,
  2560. VREvent_HideRenderModels = 410,
  2561. VREvent_ShowRenderModels = 411,
  2562. VREvent_OverlayShown = 500,
  2563. VREvent_OverlayHidden = 501,
  2564. VREvent_DashboardActivated = 502,
  2565. VREvent_DashboardDeactivated = 503,
  2566. VREvent_DashboardThumbSelected = 504,
  2567. VREvent_DashboardRequested = 505,
  2568. VREvent_ResetDashboard = 506,
  2569. VREvent_RenderToast = 507,
  2570. VREvent_ImageLoaded = 508,
  2571. VREvent_ShowKeyboard = 509,
  2572. VREvent_HideKeyboard = 510,
  2573. VREvent_OverlayGamepadFocusGained = 511,
  2574. VREvent_OverlayGamepadFocusLost = 512,
  2575. VREvent_OverlaySharedTextureChanged = 513,
  2576. VREvent_DashboardGuideButtonDown = 514,
  2577. VREvent_DashboardGuideButtonUp = 515,
  2578. VREvent_ScreenshotTriggered = 516,
  2579. VREvent_RequestScreenshot = 520,
  2580. VREvent_ScreenshotTaken = 521,
  2581. VREvent_ScreenshotFailed = 522,
  2582. VREvent_Notification_Shown = 600,
  2583. VREvent_Notification_Hidden = 601,
  2584. VREvent_Notification_BeginInteraction = 602,
  2585. VREvent_Notification_Destroyed = 603,
  2586. VREvent_Quit = 700,
  2587. VREvent_ProcessQuit = 701,
  2588. VREvent_QuitAborted_UserPrompt = 702,
  2589. VREvent_QuitAcknowledged = 703,
  2590. VREvent_DriverRequestedQuit = 704,
  2591. VREvent_ChaperoneDataHasChanged = 800,
  2592. VREvent_ChaperoneUniverseHasChanged = 801,
  2593. VREvent_ChaperoneTempDataHasChanged = 802,
  2594. VREvent_ChaperoneSettingsHaveChanged = 803,
  2595. VREvent_SeatedZeroPoseReset = 804,
  2596. VREvent_AudioSettingsHaveChanged = 820,
  2597. VREvent_BackgroundSettingHasChanged = 850,
  2598. VREvent_CameraSettingsHaveChanged = 851,
  2599. VREvent_ReprojectionSettingHasChanged = 852,
  2600. VREvent_ModelSkinSettingsHaveChanged = 853,
  2601. VREvent_EnvironmentSettingsHaveChanged = 854,
  2602. VREvent_StatusUpdate = 900,
  2603. VREvent_MCImageUpdated = 1000,
  2604. VREvent_FirmwareUpdateStarted = 1100,
  2605. VREvent_FirmwareUpdateFinished = 1101,
  2606. VREvent_KeyboardClosed = 1200,
  2607. VREvent_KeyboardCharInput = 1201,
  2608. VREvent_KeyboardDone = 1202,
  2609. VREvent_ApplicationTransitionStarted = 1300,
  2610. VREvent_ApplicationTransitionAborted = 1301,
  2611. VREvent_ApplicationTransitionNewAppStarted = 1302,
  2612. VREvent_ApplicationListUpdated = 1303,
  2613. VREvent_Compositor_MirrorWindowShown = 1400,
  2614. VREvent_Compositor_MirrorWindowHidden = 1401,
  2615. VREvent_Compositor_ChaperoneBoundsShown = 1410,
  2616. VREvent_Compositor_ChaperoneBoundsHidden = 1411,
  2617. VREvent_TrackedCamera_StartVideoStream = 1500,
  2618. VREvent_TrackedCamera_StopVideoStream = 1501,
  2619. VREvent_TrackedCamera_PauseVideoStream = 1502,
  2620. VREvent_TrackedCamera_ResumeVideoStream = 1503,
  2621. VREvent_PerformanceTest_EnableCapture = 1600,
  2622. VREvent_PerformanceTest_DisableCapture = 1601,
  2623. VREvent_PerformanceTest_FidelityLevel = 1602,
  2624. VREvent_VendorSpecific_Reserved_Start = 10000,
  2625. VREvent_VendorSpecific_Reserved_End = 19999,
  2626. }
  2627. public enum EDeviceActivityLevel
  2628. {
  2629. k_EDeviceActivityLevel_Unknown = -1,
  2630. k_EDeviceActivityLevel_Idle = 0,
  2631. k_EDeviceActivityLevel_UserInteraction = 1,
  2632. k_EDeviceActivityLevel_UserInteraction_Timeout = 2,
  2633. k_EDeviceActivityLevel_Standby = 3,
  2634. }
  2635. public enum EVRButtonId
  2636. {
  2637. k_EButton_System = 0,
  2638. k_EButton_ApplicationMenu = 1,
  2639. k_EButton_Grip = 2,
  2640. k_EButton_DPad_Left = 3,
  2641. k_EButton_DPad_Up = 4,
  2642. k_EButton_DPad_Right = 5,
  2643. k_EButton_DPad_Down = 6,
  2644. k_EButton_A = 7,
  2645. k_EButton_Axis0 = 32,
  2646. k_EButton_Axis1 = 33,
  2647. k_EButton_Axis2 = 34,
  2648. k_EButton_Axis3 = 35,
  2649. k_EButton_Axis4 = 36,
  2650. k_EButton_SteamVR_Touchpad = 32,
  2651. k_EButton_SteamVR_Trigger = 33,
  2652. k_EButton_Dashboard_Back = 2,
  2653. k_EButton_Max = 64,
  2654. }
  2655. public enum EVRMouseButton
  2656. {
  2657. Left = 1,
  2658. Right = 2,
  2659. Middle = 4,
  2660. }
  2661. public enum EVRControllerAxisType
  2662. {
  2663. k_eControllerAxis_None = 0,
  2664. k_eControllerAxis_TrackPad = 1,
  2665. k_eControllerAxis_Joystick = 2,
  2666. k_eControllerAxis_Trigger = 3,
  2667. }
  2668. public enum EVRControllerEventOutputType
  2669. {
  2670. ControllerEventOutput_OSEvents = 0,
  2671. ControllerEventOutput_VREvents = 1,
  2672. }
  2673. public enum ECollisionBoundsStyle
  2674. {
  2675. COLLISION_BOUNDS_STYLE_BEGINNER = 0,
  2676. COLLISION_BOUNDS_STYLE_INTERMEDIATE = 1,
  2677. COLLISION_BOUNDS_STYLE_SQUARES = 2,
  2678. COLLISION_BOUNDS_STYLE_ADVANCED = 3,
  2679. COLLISION_BOUNDS_STYLE_NONE = 4,
  2680. COLLISION_BOUNDS_STYLE_COUNT = 5,
  2681. }
  2682. public enum EVROverlayError
  2683. {
  2684. None = 0,
  2685. UnknownOverlay = 10,
  2686. InvalidHandle = 11,
  2687. PermissionDenied = 12,
  2688. OverlayLimitExceeded = 13,
  2689. WrongVisibilityType = 14,
  2690. KeyTooLong = 15,
  2691. NameTooLong = 16,
  2692. KeyInUse = 17,
  2693. WrongTransformType = 18,
  2694. InvalidTrackedDevice = 19,
  2695. InvalidParameter = 20,
  2696. ThumbnailCantBeDestroyed = 21,
  2697. ArrayTooSmall = 22,
  2698. RequestFailed = 23,
  2699. InvalidTexture = 24,
  2700. UnableToLoadFile = 25,
  2701. VROVerlayError_KeyboardAlreadyInUse = 26,
  2702. NoNeighbor = 27,
  2703. }
  2704. public enum EVRApplicationType
  2705. {
  2706. VRApplication_Other = 0,
  2707. VRApplication_Scene = 1,
  2708. VRApplication_Overlay = 2,
  2709. VRApplication_Background = 3,
  2710. VRApplication_Utility = 4,
  2711. VRApplication_VRMonitor = 5,
  2712. }
  2713. public enum EVRFirmwareError
  2714. {
  2715. None = 0,
  2716. Success = 1,
  2717. Fail = 2,
  2718. }
  2719. public enum EVRNotificationError
  2720. {
  2721. OK = 0,
  2722. InvalidNotificationId = 100,
  2723. NotificationQueueFull = 101,
  2724. InvalidOverlayHandle = 102,
  2725. SystemWithUserValueAlreadyExists = 103,
  2726. }
  2727. public enum EVRInitError
  2728. {
  2729. None = 0,
  2730. Unknown = 1,
  2731. Init_InstallationNotFound = 100,
  2732. Init_InstallationCorrupt = 101,
  2733. Init_VRClientDLLNotFound = 102,
  2734. Init_FileNotFound = 103,
  2735. Init_FactoryNotFound = 104,
  2736. Init_InterfaceNotFound = 105,
  2737. Init_InvalidInterface = 106,
  2738. Init_UserConfigDirectoryInvalid = 107,
  2739. Init_HmdNotFound = 108,
  2740. Init_NotInitialized = 109,
  2741. Init_PathRegistryNotFound = 110,
  2742. Init_NoConfigPath = 111,
  2743. Init_NoLogPath = 112,
  2744. Init_PathRegistryNotWritable = 113,
  2745. Init_AppInfoInitFailed = 114,
  2746. Init_Retry = 115,
  2747. Init_InitCanceledByUser = 116,
  2748. Init_AnotherAppLaunching = 117,
  2749. Init_SettingsInitFailed = 118,
  2750. Init_ShuttingDown = 119,
  2751. Init_TooManyObjects = 120,
  2752. Init_NoServerForBackgroundApp = 121,
  2753. Init_NotSupportedWithCompositor = 122,
  2754. Init_NotAvailableToUtilityApps = 123,
  2755. Init_Internal = 124,
  2756. Driver_Failed = 200,
  2757. Driver_Unknown = 201,
  2758. Driver_HmdUnknown = 202,
  2759. Driver_NotLoaded = 203,
  2760. Driver_RuntimeOutOfDate = 204,
  2761. Driver_HmdInUse = 205,
  2762. Driver_NotCalibrated = 206,
  2763. Driver_CalibrationInvalid = 207,
  2764. Driver_HmdDisplayNotFound = 208,
  2765. IPC_ServerInitFailed = 300,
  2766. IPC_ConnectFailed = 301,
  2767. IPC_SharedStateInitFailed = 302,
  2768. IPC_CompositorInitFailed = 303,
  2769. IPC_MutexInitFailed = 304,
  2770. IPC_Failed = 305,
  2771. Compositor_Failed = 400,
  2772. Compositor_D3D11HardwareRequired = 401,
  2773. Compositor_FirmwareRequiresUpdate = 402,
  2774. VendorSpecific_UnableToConnectToOculusRuntime = 1000,
  2775. VendorSpecific_HmdFound_CantOpenDevice = 1101,
  2776. VendorSpecific_HmdFound_UnableToRequestConfigStart = 1102,
  2777. VendorSpecific_HmdFound_NoStoredConfig = 1103,
  2778. VendorSpecific_HmdFound_ConfigTooBig = 1104,
  2779. VendorSpecific_HmdFound_ConfigTooSmall = 1105,
  2780. VendorSpecific_HmdFound_UnableToInitZLib = 1106,
  2781. VendorSpecific_HmdFound_CantReadFirmwareVersion = 1107,
  2782. VendorSpecific_HmdFound_UnableToSendUserDataStart = 1108,
  2783. VendorSpecific_HmdFound_UnableToGetUserDataStart = 1109,
  2784. VendorSpecific_HmdFound_UnableToGetUserDataNext = 1110,
  2785. VendorSpecific_HmdFound_UserDataAddressRange = 1111,
  2786. VendorSpecific_HmdFound_UserDataError = 1112,
  2787. VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
  2788. Steam_SteamInstallationNotFound = 2000,
  2789. }
  2790. public enum EVRScreenshotType
  2791. {
  2792. None = 0,
  2793. Mono = 1,
  2794. Stereo = 2,
  2795. Cubemap = 3,
  2796. StereoPanorama = 4,
  2797. }
  2798. public enum EVRTrackedCameraError
  2799. {
  2800. None = 0,
  2801. OperationFailed = 100,
  2802. InvalidHandle = 101,
  2803. InvalidFrameHeaderVersion = 102,
  2804. OutOfHandles = 103,
  2805. IPCFailure = 104,
  2806. NotSupportedForThisDevice = 105,
  2807. SharedMemoryFailure = 106,
  2808. FrameBufferingFailure = 107,
  2809. StreamSetupFailure = 108,
  2810. InvalidGLTextureId = 109,
  2811. InvalidSharedTextureHandle = 110,
  2812. FailedToGetGLTextureId = 111,
  2813. SharedTextureFailure = 112,
  2814. NoFrameAvailable = 113,
  2815. InvalidArgument = 114,
  2816. InvalidFrameBufferSize = 115,
  2817. }
  2818. public enum EVRTrackedCameraFrameType
  2819. {
  2820. Distorted = 0,
  2821. Undistorted = 1,
  2822. MaximumUndistorted = 2,
  2823. MAX_CAMERA_FRAME_TYPES = 3,
  2824. }
  2825. public enum EVRApplicationError
  2826. {
  2827. None = 0,
  2828. AppKeyAlreadyExists = 100,
  2829. NoManifest = 101,
  2830. NoApplication = 102,
  2831. InvalidIndex = 103,
  2832. UnknownApplication = 104,
  2833. IPCFailed = 105,
  2834. ApplicationAlreadyRunning = 106,
  2835. InvalidManifest = 107,
  2836. InvalidApplication = 108,
  2837. LaunchFailed = 109,
  2838. ApplicationAlreadyStarting = 110,
  2839. LaunchInProgress = 111,
  2840. OldApplicationQuitting = 112,
  2841. TransitionAborted = 113,
  2842. IsTemplate = 114,
  2843. BufferTooSmall = 200,
  2844. PropertyNotSet = 201,
  2845. UnknownProperty = 202,
  2846. InvalidParameter = 203,
  2847. }
  2848. public enum EVRApplicationProperty
  2849. {
  2850. Name_String = 0,
  2851. LaunchType_String = 11,
  2852. WorkingDirectory_String = 12,
  2853. BinaryPath_String = 13,
  2854. Arguments_String = 14,
  2855. URL_String = 15,
  2856. Description_String = 50,
  2857. NewsURL_String = 51,
  2858. ImagePath_String = 52,
  2859. Source_String = 53,
  2860. IsDashboardOverlay_Bool = 60,
  2861. IsTemplate_Bool = 61,
  2862. IsInstanced_Bool = 62,
  2863. LastLaunchTime_Uint64 = 70,
  2864. }
  2865. public enum EVRApplicationTransitionState
  2866. {
  2867. VRApplicationTransition_None = 0,
  2868. VRApplicationTransition_OldAppQuitSent = 10,
  2869. VRApplicationTransition_WaitingForExternalLaunch = 11,
  2870. VRApplicationTransition_NewAppLaunched = 20,
  2871. }
  2872. public enum ChaperoneCalibrationState
  2873. {
  2874. OK = 1,
  2875. Warning = 100,
  2876. Warning_BaseStationMayHaveMoved = 101,
  2877. Warning_BaseStationRemoved = 102,
  2878. Warning_SeatedBoundsInvalid = 103,
  2879. Error = 200,
  2880. Error_BaseStationUninitalized = 201,
  2881. Error_BaseStationConflict = 202,
  2882. Error_PlayAreaInvalid = 203,
  2883. Error_CollisionBoundsInvalid = 204,
  2884. }
  2885. public enum EChaperoneConfigFile
  2886. {
  2887. Live = 1,
  2888. Temp = 2,
  2889. }
  2890. public enum EChaperoneImportFlags
  2891. {
  2892. EChaperoneImport_BoundsOnly = 1,
  2893. }
  2894. public enum EVRCompositorError
  2895. {
  2896. None = 0,
  2897. RequestFailed = 1,
  2898. IncompatibleVersion = 100,
  2899. DoNotHaveFocus = 101,
  2900. InvalidTexture = 102,
  2901. IsNotSceneApplication = 103,
  2902. TextureIsOnWrongDevice = 104,
  2903. TextureUsesUnsupportedFormat = 105,
  2904. SharedTexturesNotSupported = 106,
  2905. IndexOutOfRange = 107,
  2906. ScreenshotAlreadyInProgress = 108,
  2907. }
  2908. public enum VROverlayInputMethod
  2909. {
  2910. None = 0,
  2911. Mouse = 1,
  2912. }
  2913. public enum VROverlayTransformType
  2914. {
  2915. VROverlayTransform_Absolute = 0,
  2916. VROverlayTransform_TrackedDeviceRelative = 1,
  2917. VROverlayTransform_SystemOverlay = 2,
  2918. VROverlayTransform_TrackedComponent = 3,
  2919. }
  2920. public enum VROverlayFlags
  2921. {
  2922. None = 0,
  2923. Curved = 1,
  2924. RGSS4X = 2,
  2925. NoDashboardTab = 3,
  2926. AcceptsGamepadEvents = 4,
  2927. ShowGamepadFocus = 5,
  2928. SendVRScrollEvents = 6,
  2929. SendVRTouchpadEvents = 7,
  2930. ShowTouchPadScrollWheel = 8,
  2931. TransferOwnershipToInternalProcess = 9,
  2932. SideBySide_Parallel = 10,
  2933. SideBySide_Crossed = 11,
  2934. Panorama = 12,
  2935. StereoPanorama = 13,
  2936. }
  2937. public enum EGamepadTextInputMode
  2938. {
  2939. k_EGamepadTextInputModeNormal = 0,
  2940. k_EGamepadTextInputModePassword = 1,
  2941. k_EGamepadTextInputModeSubmit = 2,
  2942. }
  2943. public enum EGamepadTextInputLineMode
  2944. {
  2945. k_EGamepadTextInputLineModeSingleLine = 0,
  2946. k_EGamepadTextInputLineModeMultipleLines = 1,
  2947. }
  2948. public enum EOverlayDirection
  2949. {
  2950. Up = 0,
  2951. Down = 1,
  2952. Left = 2,
  2953. Right = 3,
  2954. Count = 4,
  2955. }
  2956. public enum EVRRenderModelError
  2957. {
  2958. None = 0,
  2959. Loading = 100,
  2960. NotSupported = 200,
  2961. InvalidArg = 300,
  2962. InvalidModel = 301,
  2963. NoShapes = 302,
  2964. MultipleShapes = 303,
  2965. TooManyVertices = 304,
  2966. MultipleTextures = 305,
  2967. BufferTooSmall = 306,
  2968. NotEnoughNormals = 307,
  2969. NotEnoughTexCoords = 308,
  2970. InvalidTexture = 400,
  2971. }
  2972. public enum EVRComponentProperty
  2973. {
  2974. IsStatic = 1,
  2975. IsVisible = 2,
  2976. IsTouched = 4,
  2977. IsPressed = 8,
  2978. IsScrolled = 16,
  2979. }
  2980. public enum EVRNotificationType
  2981. {
  2982. Transient = 0,
  2983. Persistent = 1,
  2984. Transient_SystemWithUserValue = 2,
  2985. }
  2986. public enum EVRNotificationStyle
  2987. {
  2988. None = 0,
  2989. Application = 100,
  2990. Contact_Disabled = 200,
  2991. Contact_Enabled = 201,
  2992. Contact_Active = 202,
  2993. }
  2994. public enum EVRSettingsError
  2995. {
  2996. None = 0,
  2997. IPCFailed = 1,
  2998. WriteFailed = 2,
  2999. ReadFailed = 3,
  3000. }
  3001. [StructLayout(LayoutKind.Explicit)] public struct VREvent_Data_t
  3002. {
  3003. [FieldOffset(0)] public VREvent_Reserved_t reserved;
  3004. [FieldOffset(0)] public VREvent_Controller_t controller;
  3005. [FieldOffset(0)] public VREvent_Mouse_t mouse;
  3006. [FieldOffset(0)] public VREvent_Scroll_t scroll;
  3007. [FieldOffset(0)] public VREvent_Process_t process;
  3008. [FieldOffset(0)] public VREvent_Notification_t notification;
  3009. [FieldOffset(0)] public VREvent_Overlay_t overlay;
  3010. [FieldOffset(0)] public VREvent_Status_t status;
  3011. [FieldOffset(0)] public VREvent_Ipd_t ipd;
  3012. [FieldOffset(0)] public VREvent_Chaperone_t chaperone;
  3013. [FieldOffset(0)] public VREvent_PerformanceTest_t performanceTest;
  3014. [FieldOffset(0)] public VREvent_TouchPadMove_t touchPadMove;
  3015. [FieldOffset(0)] public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset;
  3016. [FieldOffset(0)] public VREvent_Keyboard_t keyboard; // This has to be at the end due to a mono bug
  3017. }
  3018. [StructLayout(LayoutKind.Sequential)] public struct HmdMatrix34_t
  3019. {
  3020. public float m0; //float[3][4]
  3021. public float m1;
  3022. public float m2;
  3023. public float m3;
  3024. public float m4;
  3025. public float m5;
  3026. public float m6;
  3027. public float m7;
  3028. public float m8;
  3029. public float m9;
  3030. public float m10;
  3031. public float m11;
  3032. }
  3033. [StructLayout(LayoutKind.Sequential)] public struct HmdMatrix44_t
  3034. {
  3035. public float m0; //float[4][4]
  3036. public float m1;
  3037. public float m2;
  3038. public float m3;
  3039. public float m4;
  3040. public float m5;
  3041. public float m6;
  3042. public float m7;
  3043. public float m8;
  3044. public float m9;
  3045. public float m10;
  3046. public float m11;
  3047. public float m12;
  3048. public float m13;
  3049. public float m14;
  3050. public float m15;
  3051. }
  3052. [StructLayout(LayoutKind.Sequential)] public struct HmdVector3_t
  3053. {
  3054. public float v0; //float[3]
  3055. public float v1;
  3056. public float v2;
  3057. }
  3058. [StructLayout(LayoutKind.Sequential)] public struct HmdVector4_t
  3059. {
  3060. public float v0; //float[4]
  3061. public float v1;
  3062. public float v2;
  3063. public float v3;
  3064. }
  3065. [StructLayout(LayoutKind.Sequential)] public struct HmdVector3d_t
  3066. {
  3067. public double v0; //double[3]
  3068. public double v1;
  3069. public double v2;
  3070. }
  3071. [StructLayout(LayoutKind.Sequential)] public struct HmdVector2_t
  3072. {
  3073. public float v0; //float[2]
  3074. public float v1;
  3075. }
  3076. [StructLayout(LayoutKind.Sequential)] public struct HmdQuaternion_t
  3077. {
  3078. public double w;
  3079. public double x;
  3080. public double y;
  3081. public double z;
  3082. }
  3083. [StructLayout(LayoutKind.Sequential)] public struct HmdColor_t
  3084. {
  3085. public float r;
  3086. public float g;
  3087. public float b;
  3088. public float a;
  3089. }
  3090. [StructLayout(LayoutKind.Sequential)] public struct HmdQuad_t
  3091. {
  3092. public HmdVector3_t vCorners0; //HmdVector3_t[4]
  3093. public HmdVector3_t vCorners1;
  3094. public HmdVector3_t vCorners2;
  3095. public HmdVector3_t vCorners3;
  3096. }
  3097. [StructLayout(LayoutKind.Sequential)] public struct HmdRect2_t
  3098. {
  3099. public HmdVector2_t vTopLeft;
  3100. public HmdVector2_t vBottomRight;
  3101. }
  3102. [StructLayout(LayoutKind.Sequential)] public struct DistortionCoordinates_t
  3103. {
  3104. public float rfRed0; //float[2]
  3105. public float rfRed1;
  3106. public float rfGreen0; //float[2]
  3107. public float rfGreen1;
  3108. public float rfBlue0; //float[2]
  3109. public float rfBlue1;
  3110. }
  3111. [StructLayout(LayoutKind.Sequential)] public struct Texture_t
  3112. {
  3113. public IntPtr handle; // void *
  3114. public EGraphicsAPIConvention eType;
  3115. public EColorSpace eColorSpace;
  3116. }
  3117. [StructLayout(LayoutKind.Sequential)] public struct TrackedDevicePose_t
  3118. {
  3119. public HmdMatrix34_t mDeviceToAbsoluteTracking;
  3120. public HmdVector3_t vVelocity;
  3121. public HmdVector3_t vAngularVelocity;
  3122. public ETrackingResult eTrackingResult;
  3123. [MarshalAs(UnmanagedType.I1)]
  3124. public bool bPoseIsValid;
  3125. [MarshalAs(UnmanagedType.I1)]
  3126. public bool bDeviceIsConnected;
  3127. }
  3128. [StructLayout(LayoutKind.Sequential)] public struct VRTextureBounds_t
  3129. {
  3130. public float uMin;
  3131. public float vMin;
  3132. public float uMax;
  3133. public float vMax;
  3134. }
  3135. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Controller_t
  3136. {
  3137. public uint button;
  3138. }
  3139. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Mouse_t
  3140. {
  3141. public float x;
  3142. public float y;
  3143. public uint button;
  3144. }
  3145. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Scroll_t
  3146. {
  3147. public float xdelta;
  3148. public float ydelta;
  3149. public uint repeatCount;
  3150. }
  3151. [StructLayout(LayoutKind.Sequential)] public struct VREvent_TouchPadMove_t
  3152. {
  3153. [MarshalAs(UnmanagedType.I1)]
  3154. public bool bFingerDown;
  3155. public float flSecondsFingerDown;
  3156. public float fValueXFirst;
  3157. public float fValueYFirst;
  3158. public float fValueXRaw;
  3159. public float fValueYRaw;
  3160. }
  3161. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Notification_t
  3162. {
  3163. public ulong ulUserValue;
  3164. public uint notificationId;
  3165. }
  3166. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Process_t
  3167. {
  3168. public uint pid;
  3169. public uint oldPid;
  3170. [MarshalAs(UnmanagedType.I1)]
  3171. public bool bForced;
  3172. }
  3173. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Overlay_t
  3174. {
  3175. public ulong overlayHandle;
  3176. }
  3177. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Status_t
  3178. {
  3179. public uint statusState;
  3180. }
  3181. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Keyboard_t
  3182. {
  3183. public byte cNewInput0,cNewInput1,cNewInput2,cNewInput3,cNewInput4,cNewInput5,cNewInput6,cNewInput7;
  3184. public ulong uUserValue;
  3185. }
  3186. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Ipd_t
  3187. {
  3188. public float ipdMeters;
  3189. }
  3190. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Chaperone_t
  3191. {
  3192. public ulong m_nPreviousUniverse;
  3193. public ulong m_nCurrentUniverse;
  3194. }
  3195. [StructLayout(LayoutKind.Sequential)] public struct VREvent_Reserved_t
  3196. {
  3197. public ulong reserved0;
  3198. public ulong reserved1;
  3199. }
  3200. [StructLayout(LayoutKind.Sequential)] public struct VREvent_PerformanceTest_t
  3201. {
  3202. public uint m_nFidelityLevel;
  3203. }
  3204. [StructLayout(LayoutKind.Sequential)] public struct VREvent_SeatedZeroPoseReset_t
  3205. {
  3206. [MarshalAs(UnmanagedType.I1)]
  3207. public bool bResetBySystemMenu;
  3208. }
  3209. [StructLayout(LayoutKind.Sequential)] public struct VREvent_t
  3210. {
  3211. public uint eventType;
  3212. public uint trackedDeviceIndex;
  3213. public float eventAgeSeconds;
  3214. public VREvent_Data_t data;
  3215. }
  3216. [StructLayout(LayoutKind.Sequential)] public struct HiddenAreaMesh_t
  3217. {
  3218. public IntPtr pVertexData; // const struct vr::HmdVector2_t *
  3219. public uint unTriangleCount;
  3220. }
  3221. [StructLayout(LayoutKind.Sequential)] public struct VRControllerAxis_t
  3222. {
  3223. public float x;
  3224. public float y;
  3225. }
  3226. [StructLayout(LayoutKind.Sequential)] public struct VRControllerState_t
  3227. {
  3228. public uint unPacketNum;
  3229. public ulong ulButtonPressed;
  3230. public ulong ulButtonTouched;
  3231. public VRControllerAxis_t rAxis0; //VRControllerAxis_t[5]
  3232. public VRControllerAxis_t rAxis1;
  3233. public VRControllerAxis_t rAxis2;
  3234. public VRControllerAxis_t rAxis3;
  3235. public VRControllerAxis_t rAxis4;
  3236. }
  3237. [StructLayout(LayoutKind.Sequential)] public struct Compositor_OverlaySettings
  3238. {
  3239. public uint size;
  3240. [MarshalAs(UnmanagedType.I1)]
  3241. public bool curved;
  3242. [MarshalAs(UnmanagedType.I1)]
  3243. public bool antialias;
  3244. public float scale;
  3245. public float distance;
  3246. public float alpha;
  3247. public float uOffset;
  3248. public float vOffset;
  3249. public float uScale;
  3250. public float vScale;
  3251. public float gridDivs;
  3252. public float gridWidth;
  3253. public float gridScale;
  3254. public HmdMatrix44_t transform;
  3255. }
  3256. [StructLayout(LayoutKind.Sequential)] public struct CameraVideoStreamFrameHeader_t
  3257. {
  3258. public EVRTrackedCameraFrameType eFrameType;
  3259. public uint nWidth;
  3260. public uint nHeight;
  3261. public uint nBytesPerPixel;
  3262. public uint nFrameSequence;
  3263. public TrackedDevicePose_t standingTrackedDevicePose;
  3264. }
  3265. [StructLayout(LayoutKind.Sequential)] public struct AppOverrideKeys_t
  3266. {
  3267. public IntPtr pchKey; // const char *
  3268. public IntPtr pchValue; // const char *
  3269. }
  3270. [StructLayout(LayoutKind.Sequential)] public struct Compositor_FrameTiming
  3271. {
  3272. public uint m_nSize;
  3273. public uint m_nFrameIndex;
  3274. public uint m_nNumFramePresents;
  3275. public uint m_nNumDroppedFrames;
  3276. public double m_flSystemTimeInSeconds;
  3277. public float m_flSceneRenderGpuMs;
  3278. public float m_flTotalRenderGpuMs;
  3279. public float m_flCompositorRenderGpuMs;
  3280. public float m_flCompositorRenderCpuMs;
  3281. public float m_flCompositorIdleCpuMs;
  3282. public float m_flClientFrameIntervalMs;
  3283. public float m_flPresentCallCpuMs;
  3284. public float m_flWaitForPresentCpuMs;
  3285. public float m_flSubmitFrameMs;
  3286. public float m_flWaitGetPosesCalledMs;
  3287. public float m_flNewPosesReadyMs;
  3288. public float m_flNewFrameReadyMs;
  3289. public float m_flCompositorUpdateStartMs;
  3290. public float m_flCompositorUpdateEndMs;
  3291. public float m_flCompositorRenderStartMs;
  3292. public TrackedDevicePose_t m_HmdPose;
  3293. public int m_nFidelityLevel;
  3294. public uint m_nReprojectionFlags;
  3295. }
  3296. [StructLayout(LayoutKind.Sequential)] public struct Compositor_CumulativeStats
  3297. {
  3298. public uint m_nPid;
  3299. public uint m_nNumFramePresents;
  3300. public uint m_nNumDroppedFrames;
  3301. public uint m_nNumReprojectedFrames;
  3302. public uint m_nNumFramePresentsOnStartup;
  3303. public uint m_nNumDroppedFramesOnStartup;
  3304. public uint m_nNumReprojectedFramesOnStartup;
  3305. public uint m_nNumLoading;
  3306. public uint m_nNumFramePresentsLoading;
  3307. public uint m_nNumDroppedFramesLoading;
  3308. public uint m_nNumReprojectedFramesLoading;
  3309. public uint m_nNumTimedOut;
  3310. public uint m_nNumFramePresentsTimedOut;
  3311. public uint m_nNumDroppedFramesTimedOut;
  3312. public uint m_nNumReprojectedFramesTimedOut;
  3313. }
  3314. [StructLayout(LayoutKind.Sequential)] public struct VROverlayIntersectionParams_t
  3315. {
  3316. public HmdVector3_t vSource;
  3317. public HmdVector3_t vDirection;
  3318. public ETrackingUniverseOrigin eOrigin;
  3319. }
  3320. [StructLayout(LayoutKind.Sequential)] public struct VROverlayIntersectionResults_t
  3321. {
  3322. public HmdVector3_t vPoint;
  3323. public HmdVector3_t vNormal;
  3324. public HmdVector2_t vUVs;
  3325. public float fDistance;
  3326. }
  3327. [StructLayout(LayoutKind.Sequential)] public struct RenderModel_ComponentState_t
  3328. {
  3329. public HmdMatrix34_t mTrackingToComponentRenderModel;
  3330. public HmdMatrix34_t mTrackingToComponentLocal;
  3331. public uint uProperties;
  3332. }
  3333. [StructLayout(LayoutKind.Sequential)] public struct RenderModel_Vertex_t
  3334. {
  3335. public HmdVector3_t vPosition;
  3336. public HmdVector3_t vNormal;
  3337. public float rfTextureCoord0; //float[2]
  3338. public float rfTextureCoord1;
  3339. }
  3340. [StructLayout(LayoutKind.Sequential)] public struct RenderModel_TextureMap_t
  3341. {
  3342. public char unWidth;
  3343. public char unHeight;
  3344. public IntPtr rubTextureMapData; // const uint8_t *
  3345. }
  3346. [StructLayout(LayoutKind.Sequential)] public struct RenderModel_t
  3347. {
  3348. public IntPtr rVertexData; // const struct vr::RenderModel_Vertex_t *
  3349. public uint unVertexCount;
  3350. public IntPtr rIndexData; // const uint16_t *
  3351. public uint unTriangleCount;
  3352. public int diffuseTextureId;
  3353. }
  3354. [StructLayout(LayoutKind.Sequential)] public struct RenderModel_ControllerMode_State_t
  3355. {
  3356. [MarshalAs(UnmanagedType.I1)]
  3357. public bool bScrollWheelVisible;
  3358. }
  3359. [StructLayout(LayoutKind.Sequential)] public struct NotificationBitmap_t
  3360. {
  3361. public IntPtr m_pImageData; // void *
  3362. public int m_nWidth;
  3363. public int m_nHeight;
  3364. public int m_nBytesPerPixel;
  3365. }
  3366. [StructLayout(LayoutKind.Sequential)] public struct COpenVRContext
  3367. {
  3368. public IntPtr m_pVRSystem; // class vr::IVRSystem *
  3369. public IntPtr m_pVRChaperone; // class vr::IVRChaperone *
  3370. public IntPtr m_pVRChaperoneSetup; // class vr::IVRChaperoneSetup *
  3371. public IntPtr m_pVRCompositor; // class vr::IVRCompositor *
  3372. public IntPtr m_pVROverlay; // class vr::IVROverlay *
  3373. public IntPtr m_pVRRenderModels; // class vr::IVRRenderModels *
  3374. public IntPtr m_pVRExtendedDisplay; // class vr::IVRExtendedDisplay *
  3375. public IntPtr m_pVRSettings; // class vr::IVRSettings *
  3376. public IntPtr m_pVRApplications; // class vr::IVRApplications *
  3377. public IntPtr m_pVRTrackedCamera; // class vr::IVRTrackedCamera *
  3378. }
  3379. public class OpenVR
  3380. {
  3381. public static uint InitInternal(ref EVRInitError peError, EVRApplicationType eApplicationType)
  3382. {
  3383. return OpenVRInterop.InitInternal(ref peError, eApplicationType);
  3384. }
  3385. public static void ShutdownInternal()
  3386. {
  3387. OpenVRInterop.ShutdownInternal();
  3388. }
  3389. public static bool IsHmdPresent()
  3390. {
  3391. return OpenVRInterop.IsHmdPresent();
  3392. }
  3393. public static bool IsRuntimeInstalled()
  3394. {
  3395. return OpenVRInterop.IsRuntimeInstalled();
  3396. }
  3397. public static string GetStringForHmdError(EVRInitError error)
  3398. {
  3399. return Marshal.PtrToStringAnsi(OpenVRInterop.GetStringForHmdError(error));
  3400. }
  3401. public static IntPtr GetGenericInterface(string pchInterfaceVersion, ref EVRInitError peError)
  3402. {
  3403. return OpenVRInterop.GetGenericInterface(pchInterfaceVersion, ref peError);
  3404. }
  3405. public static bool IsInterfaceVersionValid(string pchInterfaceVersion)
  3406. {
  3407. return OpenVRInterop.IsInterfaceVersionValid(pchInterfaceVersion);
  3408. }
  3409. public static uint GetInitToken()
  3410. {
  3411. return OpenVRInterop.GetInitToken();
  3412. }
  3413. public const uint k_unTrackingStringSize = 32;
  3414. public const uint k_unMaxDriverDebugResponseSize = 32768;
  3415. public const uint k_unTrackedDeviceIndex_Hmd = 0;
  3416. public const uint k_unMaxTrackedDeviceCount = 16;
  3417. public const uint k_unTrackedDeviceIndexOther = 4294967294;
  3418. public const uint k_unTrackedDeviceIndexInvalid = 4294967295;
  3419. public const uint k_unMaxPropertyStringSize = 32768;
  3420. public const uint k_unControllerStateAxisCount = 5;
  3421. public const ulong k_ulOverlayHandleInvalid = 0;
  3422. public const string IVRSystem_Version = "IVRSystem_012";
  3423. public const string IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
  3424. public const string IVRTrackedCamera_Version = "IVRTrackedCamera_002";
  3425. public const uint k_unMaxApplicationKeyLength = 128;
  3426. public const string IVRApplications_Version = "IVRApplications_005";
  3427. public const string IVRChaperone_Version = "IVRChaperone_003";
  3428. public const string IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
  3429. public const string IVRCompositor_Version = "IVRCompositor_015";
  3430. public const uint k_unVROverlayMaxKeyLength = 128;
  3431. public const uint k_unVROverlayMaxNameLength = 128;
  3432. public const uint k_unMaxOverlayCount = 32;
  3433. public const string IVROverlay_Version = "IVROverlay_012";
  3434. public const string k_pch_Controller_Component_GDC2015 = "gdc2015";
  3435. public const string k_pch_Controller_Component_Base = "base";
  3436. public const string k_pch_Controller_Component_Tip = "tip";
  3437. public const string k_pch_Controller_Component_HandGrip = "handgrip";
  3438. public const string k_pch_Controller_Component_Status = "status";
  3439. public const string IVRRenderModels_Version = "IVRRenderModels_005";
  3440. public const uint k_unNotificationTextMaxSize = 256;
  3441. public const string IVRNotifications_Version = "IVRNotifications_002";
  3442. public const uint k_unMaxSettingsKeyLength = 128;
  3443. public const string IVRSettings_Version = "IVRSettings_001";
  3444. public const string k_pch_SteamVR_Section = "steamvr";
  3445. public const string k_pch_SteamVR_RequireHmd_String = "requireHmd";
  3446. public const string k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver";
  3447. public const string k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd";
  3448. public const string k_pch_SteamVR_DisplayDebug_Bool = "displayDebug";
  3449. public const string k_pch_SteamVR_DebugProcessPipe_String = "debugProcessPipe";
  3450. public const string k_pch_SteamVR_EnableDistortion_Bool = "enableDistortion";
  3451. public const string k_pch_SteamVR_DisplayDebugX_Int32 = "displayDebugX";
  3452. public const string k_pch_SteamVR_DisplayDebugY_Int32 = "displayDebugY";
  3453. public const string k_pch_SteamVR_SendSystemButtonToAllApps_Bool = "sendSystemButtonToAllApps";
  3454. public const string k_pch_SteamVR_LogLevel_Int32 = "loglevel";
  3455. public const string k_pch_SteamVR_IPD_Float = "ipd";
  3456. public const string k_pch_SteamVR_Background_String = "background";
  3457. public const string k_pch_SteamVR_BackgroundCameraHeight_Float = "backgroundCameraHeight";
  3458. public const string k_pch_SteamVR_BackgroundDomeRadius_Float = "backgroundDomeRadius";
  3459. public const string k_pch_SteamVR_Environment_String = "environment";
  3460. public const string k_pch_SteamVR_GridColor_String = "gridColor";
  3461. public const string k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
  3462. public const string k_pch_SteamVR_ShowStage_Bool = "showStage";
  3463. public const string k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
  3464. public const string k_pch_SteamVR_PowerOffOnExit_Bool = "powerOffOnExit";
  3465. public const string k_pch_SteamVR_StandbyAppRunningTimeout_Float = "standbyAppRunningTimeout";
  3466. public const string k_pch_SteamVR_StandbyNoAppTimeout_Float = "standbyNoAppTimeout";
  3467. public const string k_pch_SteamVR_DirectMode_Bool = "directMode";
  3468. public const string k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
  3469. public const string k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
  3470. public const string k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
  3471. public const string k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
  3472. public const string k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
  3473. public const string k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
  3474. public const string k_pch_SteamVR_RenderTargetMultiplier_Float = "renderTargetMultiplier";
  3475. public const string k_pch_SteamVR_AllowReprojection_Bool = "allowReprojection";
  3476. public const string k_pch_Lighthouse_Section = "driver_lighthouse";
  3477. public const string k_pch_Lighthouse_DisableIMU_Bool = "disableimu";
  3478. public const string k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation";
  3479. public const string k_pch_Lighthouse_DisambiguationDebug_Int32 = "disambiguationdebug";
  3480. public const string k_pch_Lighthouse_PrimaryBasestation_Int32 = "primarybasestation";
  3481. public const string k_pch_Lighthouse_LighthouseName_String = "lighthousename";
  3482. public const string k_pch_Lighthouse_MaxIncidenceAngleDegrees_Float = "maxincidenceangledegrees";
  3483. public const string k_pch_Lighthouse_UseLighthouseDirect_Bool = "uselighthousedirect";
  3484. public const string k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
  3485. public const string k_pch_Null_Section = "driver_null";
  3486. public const string k_pch_Null_EnableNullDriver_Bool = "enable";
  3487. public const string k_pch_Null_SerialNumber_String = "serialNumber";
  3488. public const string k_pch_Null_ModelNumber_String = "modelNumber";
  3489. public const string k_pch_Null_WindowX_Int32 = "windowX";
  3490. public const string k_pch_Null_WindowY_Int32 = "windowY";
  3491. public const string k_pch_Null_WindowWidth_Int32 = "windowWidth";
  3492. public const string k_pch_Null_WindowHeight_Int32 = "windowHeight";
  3493. public const string k_pch_Null_RenderWidth_Int32 = "renderWidth";
  3494. public const string k_pch_Null_RenderHeight_Int32 = "renderHeight";
  3495. public const string k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
  3496. public const string k_pch_Null_DisplayFrequency_Float = "displayFrequency";
  3497. public const string k_pch_UserInterface_Section = "userinterface";
  3498. public const string k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop";
  3499. public const string k_pch_UserInterface_EnableScreenshots_Bool = "EnableScreenshots";
  3500. public const string k_pch_Notifications_Section = "notifications";
  3501. public const string k_pch_Notifications_DoNotDisturb_Bool = "DoNotDisturb";
  3502. public const string k_pch_Keyboard_Section = "keyboard";
  3503. public const string k_pch_Keyboard_TutorialCompletions = "TutorialCompletions";
  3504. public const string k_pch_Keyboard_ScaleX = "ScaleX";
  3505. public const string k_pch_Keyboard_ScaleY = "ScaleY";
  3506. public const string k_pch_Keyboard_OffsetLeftX = "OffsetLeftX";
  3507. public const string k_pch_Keyboard_OffsetRightX = "OffsetRightX";
  3508. public const string k_pch_Keyboard_OffsetY = "OffsetY";
  3509. public const string k_pch_Keyboard_Smoothing = "Smoothing";
  3510. public const string k_pch_Perf_Section = "perfcheck";
  3511. public const string k_pch_Perf_HeuristicActive_Bool = "heuristicActive";
  3512. public const string k_pch_Perf_NotifyInHMD_Bool = "warnInHMD";
  3513. public const string k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce";
  3514. public const string k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore";
  3515. public const string k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit";
  3516. public const string k_pch_Perf_TestData_Float = "perfTestData";
  3517. public const string k_pch_CollisionBounds_Section = "collisionBounds";
  3518. public const string k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle";
  3519. public const string k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn";
  3520. public const string k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
  3521. public const string k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
  3522. public const string k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
  3523. public const string k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
  3524. public const string k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
  3525. public const string k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
  3526. public const string k_pch_CollisionBounds_ColorGammaA_Int32 = "CollisionBoundsColorGammaA";
  3527. public const string k_pch_Camera_Section = "camera";
  3528. public const string k_pch_Camera_EnableCamera_Bool = "enableCamera";
  3529. public const string k_pch_Camera_EnableCameraInDashboard_Bool = "enableCameraInDashboard";
  3530. public const string k_pch_Camera_EnableCameraForCollisionBounds_Bool = "enableCameraForCollisionBounds";
  3531. public const string k_pch_Camera_EnableCameraForRoomView_Bool = "enableCameraForRoomView";
  3532. public const string k_pch_Camera_BoundsColorGammaR_Int32 = "cameraBoundsColorGammaR";
  3533. public const string k_pch_Camera_BoundsColorGammaG_Int32 = "cameraBoundsColorGammaG";
  3534. public const string k_pch_Camera_BoundsColorGammaB_Int32 = "cameraBoundsColorGammaB";
  3535. public const string k_pch_Camera_BoundsColorGammaA_Int32 = "cameraBoundsColorGammaA";
  3536. public const string k_pch_audio_Section = "audio";
  3537. public const string k_pch_audio_OnPlaybackDevice_String = "onPlaybackDevice";
  3538. public const string k_pch_audio_OnRecordDevice_String = "onRecordDevice";
  3539. public const string k_pch_audio_OnPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
  3540. public const string k_pch_audio_OffPlaybackDevice_String = "offPlaybackDevice";
  3541. public const string k_pch_audio_OffRecordDevice_String = "offRecordDevice";
  3542. public const string k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
  3543. public const string k_pch_modelskin_Section = "modelskins";
  3544. static uint VRToken { get; set; }
  3545. const string FnTable_Prefix = "FnTable:";
  3546. class COpenVRContext
  3547. {
  3548. public COpenVRContext() { Clear(); }
  3549. public void Clear()
  3550. {
  3551. m_pVRSystem = null;
  3552. m_pVRChaperone = null;
  3553. m_pVRChaperoneSetup = null;
  3554. m_pVRCompositor = null;
  3555. m_pVROverlay = null;
  3556. m_pVRRenderModels = null;
  3557. m_pVRExtendedDisplay = null;
  3558. m_pVRSettings = null;
  3559. m_pVRApplications = null;
  3560. }
  3561. void CheckClear()
  3562. {
  3563. if (VRToken != GetInitToken())
  3564. {
  3565. Clear();
  3566. VRToken = GetInitToken();
  3567. }
  3568. }
  3569. public CVRSystem VRSystem()
  3570. {
  3571. CheckClear();
  3572. if (m_pVRSystem == null)
  3573. {
  3574. var eError = EVRInitError.None;
  3575. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRSystem_Version, ref eError);
  3576. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3577. m_pVRSystem = new CVRSystem(pInterface);
  3578. }
  3579. return m_pVRSystem;
  3580. }
  3581. public CVRChaperone VRChaperone()
  3582. {
  3583. CheckClear();
  3584. if (m_pVRChaperone == null)
  3585. {
  3586. var eError = EVRInitError.None;
  3587. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRChaperone_Version, ref eError);
  3588. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3589. m_pVRChaperone = new CVRChaperone(pInterface);
  3590. }
  3591. return m_pVRChaperone;
  3592. }
  3593. public CVRChaperoneSetup VRChaperoneSetup()
  3594. {
  3595. CheckClear();
  3596. if (m_pVRChaperoneSetup == null)
  3597. {
  3598. var eError = EVRInitError.None;
  3599. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRChaperoneSetup_Version, ref eError);
  3600. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3601. m_pVRChaperoneSetup = new CVRChaperoneSetup(pInterface);
  3602. }
  3603. return m_pVRChaperoneSetup;
  3604. }
  3605. public CVRCompositor VRCompositor()
  3606. {
  3607. CheckClear();
  3608. if (m_pVRCompositor == null)
  3609. {
  3610. var eError = EVRInitError.None;
  3611. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRCompositor_Version, ref eError);
  3612. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3613. m_pVRCompositor = new CVRCompositor(pInterface);
  3614. }
  3615. return m_pVRCompositor;
  3616. }
  3617. public CVROverlay VROverlay()
  3618. {
  3619. CheckClear();
  3620. if (m_pVROverlay == null)
  3621. {
  3622. var eError = EVRInitError.None;
  3623. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVROverlay_Version, ref eError);
  3624. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3625. m_pVROverlay = new CVROverlay(pInterface);
  3626. }
  3627. return m_pVROverlay;
  3628. }
  3629. public CVRRenderModels VRRenderModels()
  3630. {
  3631. CheckClear();
  3632. if (m_pVRRenderModels == null)
  3633. {
  3634. var eError = EVRInitError.None;
  3635. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRRenderModels_Version, ref eError);
  3636. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3637. m_pVRRenderModels = new CVRRenderModels(pInterface);
  3638. }
  3639. return m_pVRRenderModels;
  3640. }
  3641. public CVRExtendedDisplay VRExtendedDisplay()
  3642. {
  3643. CheckClear();
  3644. if (m_pVRExtendedDisplay == null)
  3645. {
  3646. var eError = EVRInitError.None;
  3647. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRExtendedDisplay_Version, ref eError);
  3648. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3649. m_pVRExtendedDisplay = new CVRExtendedDisplay(pInterface);
  3650. }
  3651. return m_pVRExtendedDisplay;
  3652. }
  3653. public CVRSettings VRSettings()
  3654. {
  3655. CheckClear();
  3656. if (m_pVRSettings == null)
  3657. {
  3658. var eError = EVRInitError.None;
  3659. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRSettings_Version, ref eError);
  3660. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3661. m_pVRSettings = new CVRSettings(pInterface);
  3662. }
  3663. return m_pVRSettings;
  3664. }
  3665. public CVRApplications VRApplications()
  3666. {
  3667. CheckClear();
  3668. if (m_pVRApplications == null)
  3669. {
  3670. var eError = EVRInitError.None;
  3671. var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix+IVRApplications_Version, ref eError);
  3672. if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
  3673. m_pVRApplications = new CVRApplications(pInterface);
  3674. }
  3675. return m_pVRApplications;
  3676. }
  3677. private CVRSystem m_pVRSystem;
  3678. private CVRChaperone m_pVRChaperone;
  3679. private CVRChaperoneSetup m_pVRChaperoneSetup;
  3680. private CVRCompositor m_pVRCompositor;
  3681. private CVROverlay m_pVROverlay;
  3682. private CVRRenderModels m_pVRRenderModels;
  3683. private CVRExtendedDisplay m_pVRExtendedDisplay;
  3684. private CVRSettings m_pVRSettings;
  3685. private CVRApplications m_pVRApplications;
  3686. };
  3687. private static COpenVRContext _OpenVRInternal_ModuleContext = null;
  3688. static COpenVRContext OpenVRInternal_ModuleContext
  3689. {
  3690. get
  3691. {
  3692. if (_OpenVRInternal_ModuleContext == null)
  3693. _OpenVRInternal_ModuleContext = new COpenVRContext();
  3694. return _OpenVRInternal_ModuleContext;
  3695. }
  3696. }
  3697. public static CVRSystem System { get { return OpenVRInternal_ModuleContext.VRSystem(); } }
  3698. public static CVRChaperone Chaperone { get { return OpenVRInternal_ModuleContext.VRChaperone(); } }
  3699. public static CVRChaperoneSetup ChaperoneSetup { get { return OpenVRInternal_ModuleContext.VRChaperoneSetup(); } }
  3700. public static CVRCompositor Compositor { get { return OpenVRInternal_ModuleContext.VRCompositor(); } }
  3701. public static CVROverlay Overlay { get { return OpenVRInternal_ModuleContext.VROverlay(); } }
  3702. public static CVRRenderModels RenderModels { get { return OpenVRInternal_ModuleContext.VRRenderModels(); } }
  3703. public static CVRApplications Applications { get { return OpenVRInternal_ModuleContext.VRApplications(); } }
  3704. public static CVRSettings Settings { get { return OpenVRInternal_ModuleContext.VRSettings(); } }
  3705. public static CVRExtendedDisplay ExtendedDisplay { get { return OpenVRInternal_ModuleContext.VRExtendedDisplay(); } }
  3706. /** Finds the active installation of vrclient.dll and initializes it */
  3707. public static CVRSystem Init(ref EVRInitError peError, EVRApplicationType eApplicationType = EVRApplicationType.VRApplication_Scene)
  3708. {
  3709. VRToken = InitInternal(ref peError, eApplicationType);
  3710. OpenVRInternal_ModuleContext.Clear();
  3711. if (peError != EVRInitError.None)
  3712. return null;
  3713. bool bInterfaceValid = IsInterfaceVersionValid(IVRSystem_Version);
  3714. if (!bInterfaceValid)
  3715. {
  3716. ShutdownInternal();
  3717. peError = EVRInitError.Init_InterfaceNotFound;
  3718. return null;
  3719. }
  3720. return OpenVR.System;
  3721. }
  3722. /** unloads vrclient.dll. Any interface pointers from the interface are
  3723. * invalid after this point */
  3724. public static void Shutdown()
  3725. {
  3726. ShutdownInternal();
  3727. }
  3728. }
  3729. }