class_openxrinterface.rst 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/modules/openxr/doc_classes/OpenXRInterface.xml.
  6. .. _class_OpenXRInterface:
  7. OpenXRInterface
  8. ===============
  9. **Inherits:** :ref:`XRInterface<class_XRInterface>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. Our OpenXR interface.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. The OpenXR interface allows Godot to interact with OpenXR runtimes and make it possible to create XR experiences and games.
  15. Due to the needs of OpenXR this interface works slightly different than other plugin based XR interfaces. It needs to be initialized when Godot starts. You need to enable OpenXR, settings for this can be found in your games project settings under the XR heading. You do need to mark a viewport for use with XR in order for Godot to know which render result should be output to the headset.
  16. .. rst-class:: classref-introduction-group
  17. Tutorials
  18. ---------
  19. - :doc:`Setting up XR <../tutorials/xr/setting_up_xr>`
  20. .. rst-class:: classref-reftable-group
  21. Properties
  22. ----------
  23. .. table::
  24. :widths: auto
  25. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  26. | :ref:`float<class_float>` | :ref:`display_refresh_rate<class_OpenXRInterface_property_display_refresh_rate>` | ``0.0`` |
  27. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  28. | :ref:`bool<class_bool>` | :ref:`foveation_dynamic<class_OpenXRInterface_property_foveation_dynamic>` | ``false`` |
  29. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  30. | :ref:`int<class_int>` | :ref:`foveation_level<class_OpenXRInterface_property_foveation_level>` | ``0`` |
  31. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  32. | :ref:`float<class_float>` | :ref:`render_target_size_multiplier<class_OpenXRInterface_property_render_target_size_multiplier>` | ``1.0`` |
  33. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  34. | :ref:`float<class_float>` | :ref:`vrs_min_radius<class_OpenXRInterface_property_vrs_min_radius>` | ``20.0`` |
  35. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  36. | :ref:`float<class_float>` | :ref:`vrs_strength<class_OpenXRInterface_property_vrs_strength>` | ``1.0`` |
  37. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  38. .. rst-class:: classref-reftable-group
  39. Methods
  40. -------
  41. .. table::
  42. :widths: auto
  43. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`Array<class_Array>` | :ref:`get_action_sets<class_OpenXRInterface_method_get_action_sets>`\ (\ ) |const| |
  45. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`Array<class_Array>` | :ref:`get_available_display_refresh_rates<class_OpenXRInterface_method_get_available_display_refresh_rates>`\ (\ ) |const| |
  47. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`Vector3<class_Vector3>` | :ref:`get_hand_joint_angular_velocity<class_OpenXRInterface_method_get_hand_joint_angular_velocity>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| |
  49. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | |bitfield|\[:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>`\] | :ref:`get_hand_joint_flags<class_OpenXRInterface_method_get_hand_joint_flags>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| |
  51. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`Vector3<class_Vector3>` | :ref:`get_hand_joint_linear_velocity<class_OpenXRInterface_method_get_hand_joint_linear_velocity>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| |
  53. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`Vector3<class_Vector3>` | :ref:`get_hand_joint_position<class_OpenXRInterface_method_get_hand_joint_position>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| |
  55. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`float<class_float>` | :ref:`get_hand_joint_radius<class_OpenXRInterface_method_get_hand_joint_radius>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| |
  57. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`Quaternion<class_Quaternion>` | :ref:`get_hand_joint_rotation<class_OpenXRInterface_method_get_hand_joint_rotation>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| |
  59. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` | :ref:`get_hand_tracking_source<class_OpenXRInterface_method_get_hand_tracking_source>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`\ ) |const| |
  61. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` | :ref:`get_motion_range<class_OpenXRInterface_method_get_motion_range>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`\ ) |const| |
  63. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`SessionState<enum_OpenXRInterface_SessionState>` | :ref:`get_session_state<class_OpenXRInterface_method_get_session_state>`\ (\ ) |
  65. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`bool<class_bool>` | :ref:`is_action_set_active<class_OpenXRInterface_method_is_action_set_active>`\ (\ name\: :ref:`String<class_String>`\ ) |const| |
  67. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`bool<class_bool>` | :ref:`is_eye_gaze_interaction_supported<class_OpenXRInterface_method_is_eye_gaze_interaction_supported>`\ (\ ) |
  69. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`bool<class_bool>` | :ref:`is_foveation_supported<class_OpenXRInterface_method_is_foveation_supported>`\ (\ ) |const| |
  71. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`bool<class_bool>` | :ref:`is_hand_interaction_supported<class_OpenXRInterface_method_is_hand_interaction_supported>`\ (\ ) |const| |
  73. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`bool<class_bool>` | :ref:`is_hand_tracking_supported<class_OpenXRInterface_method_is_hand_tracking_supported>`\ (\ ) |
  75. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | |void| | :ref:`set_action_set_active<class_OpenXRInterface_method_set_action_set_active>`\ (\ name\: :ref:`String<class_String>`, active\: :ref:`bool<class_bool>`\ ) |
  77. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | |void| | :ref:`set_cpu_level<class_OpenXRInterface_method_set_cpu_level>`\ (\ level\: :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>`\ ) |
  79. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | |void| | :ref:`set_gpu_level<class_OpenXRInterface_method_set_gpu_level>`\ (\ level\: :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>`\ ) |
  81. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | |void| | :ref:`set_motion_range<class_OpenXRInterface_method_set_motion_range>`\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, motion_range\: :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>`\ ) |
  83. +--------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. .. rst-class:: classref-section-separator
  85. ----
  86. .. rst-class:: classref-descriptions-group
  87. Signals
  88. -------
  89. .. _class_OpenXRInterface_signal_cpu_level_changed:
  90. .. rst-class:: classref-signal
  91. **cpu_level_changed**\ (\ sub_domain\: :ref:`int<class_int>`, from_level\: :ref:`int<class_int>`, to_level\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_cpu_level_changed>`
  92. Informs the device CPU performance level has changed in the specified subdomain.
  93. .. rst-class:: classref-item-separator
  94. ----
  95. .. _class_OpenXRInterface_signal_gpu_level_changed:
  96. .. rst-class:: classref-signal
  97. **gpu_level_changed**\ (\ sub_domain\: :ref:`int<class_int>`, from_level\: :ref:`int<class_int>`, to_level\: :ref:`int<class_int>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_gpu_level_changed>`
  98. Informs the device GPU performance level has changed in the specified subdomain.
  99. .. rst-class:: classref-item-separator
  100. ----
  101. .. _class_OpenXRInterface_signal_instance_exiting:
  102. .. rst-class:: classref-signal
  103. **instance_exiting**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_instance_exiting>`
  104. Informs our OpenXR instance is exiting.
  105. .. rst-class:: classref-item-separator
  106. ----
  107. .. _class_OpenXRInterface_signal_pose_recentered:
  108. .. rst-class:: classref-signal
  109. **pose_recentered**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_pose_recentered>`
  110. Informs the user queued a recenter of the player position.
  111. .. rst-class:: classref-item-separator
  112. ----
  113. .. _class_OpenXRInterface_signal_refresh_rate_changed:
  114. .. rst-class:: classref-signal
  115. **refresh_rate_changed**\ (\ refresh_rate\: :ref:`float<class_float>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_refresh_rate_changed>`
  116. Informs the user the HMD refresh rate has changed.
  117. \ **Note:** Only emitted if XR runtime supports the refresh rate extension.
  118. .. rst-class:: classref-item-separator
  119. ----
  120. .. _class_OpenXRInterface_signal_session_begun:
  121. .. rst-class:: classref-signal
  122. **session_begun**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_session_begun>`
  123. Informs our OpenXR session has been started.
  124. .. rst-class:: classref-item-separator
  125. ----
  126. .. _class_OpenXRInterface_signal_session_focussed:
  127. .. rst-class:: classref-signal
  128. **session_focussed**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_session_focussed>`
  129. Informs our OpenXR session now has focus, for example output is sent to the HMD and we're receiving XR input.
  130. .. rst-class:: classref-item-separator
  131. ----
  132. .. _class_OpenXRInterface_signal_session_loss_pending:
  133. .. rst-class:: classref-signal
  134. **session_loss_pending**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_session_loss_pending>`
  135. Informs our OpenXR session is in the process of being lost.
  136. .. rst-class:: classref-item-separator
  137. ----
  138. .. _class_OpenXRInterface_signal_session_stopping:
  139. .. rst-class:: classref-signal
  140. **session_stopping**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_session_stopping>`
  141. Informs our OpenXR session is stopping.
  142. .. rst-class:: classref-item-separator
  143. ----
  144. .. _class_OpenXRInterface_signal_session_synchronized:
  145. .. rst-class:: classref-signal
  146. **session_synchronized**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_session_synchronized>`
  147. Informs our OpenXR session has been synchronized.
  148. .. rst-class:: classref-item-separator
  149. ----
  150. .. _class_OpenXRInterface_signal_session_visible:
  151. .. rst-class:: classref-signal
  152. **session_visible**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_signal_session_visible>`
  153. Informs our OpenXR session is now visible, for example output is sent to the HMD but we don't receive XR input.
  154. .. rst-class:: classref-section-separator
  155. ----
  156. .. rst-class:: classref-descriptions-group
  157. Enumerations
  158. ------------
  159. .. _enum_OpenXRInterface_SessionState:
  160. .. rst-class:: classref-enumeration
  161. enum **SessionState**: :ref:`๐Ÿ”—<enum_OpenXRInterface_SessionState>`
  162. .. _class_OpenXRInterface_constant_SESSION_STATE_UNKNOWN:
  163. .. rst-class:: classref-enumeration-constant
  164. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_UNKNOWN** = ``0``
  165. The state of the session is unknown, we haven't tried setting up OpenXR yet.
  166. .. _class_OpenXRInterface_constant_SESSION_STATE_IDLE:
  167. .. rst-class:: classref-enumeration-constant
  168. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_IDLE** = ``1``
  169. The initial state after the OpenXR session is created or after the session is destroyed.
  170. .. _class_OpenXRInterface_constant_SESSION_STATE_READY:
  171. .. rst-class:: classref-enumeration-constant
  172. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_READY** = ``2``
  173. OpenXR is ready to begin our session. :ref:`session_begun<class_OpenXRInterface_signal_session_begun>` is emitted when we change to this state.
  174. .. _class_OpenXRInterface_constant_SESSION_STATE_SYNCHRONIZED:
  175. .. rst-class:: classref-enumeration-constant
  176. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_SYNCHRONIZED** = ``3``
  177. The application has synched its frame loop with the runtime but we're not rendering anything. :ref:`session_synchronized<class_OpenXRInterface_signal_session_synchronized>` is emitted when we change to this state.
  178. .. _class_OpenXRInterface_constant_SESSION_STATE_VISIBLE:
  179. .. rst-class:: classref-enumeration-constant
  180. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_VISIBLE** = ``4``
  181. The application has synched its frame loop with the runtime and we're rendering output to the user, however we receive no user input. :ref:`session_visible<class_OpenXRInterface_signal_session_visible>` is emitted when we change to this state.
  182. \ **Note:** This is the current state just before we get the focused state, whenever the user opens a system menu, switches to another application, or takes off their headset.
  183. .. _class_OpenXRInterface_constant_SESSION_STATE_FOCUSED:
  184. .. rst-class:: classref-enumeration-constant
  185. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_FOCUSED** = ``5``
  186. The application has synched its frame loop with the runtime, we're rendering output to the user and we're receiving XR input. :ref:`session_focussed<class_OpenXRInterface_signal_session_focussed>` is emitted when we change to this state.
  187. \ **Note:** This is the state OpenXR will be in when the user can fully interact with your game.
  188. .. _class_OpenXRInterface_constant_SESSION_STATE_STOPPING:
  189. .. rst-class:: classref-enumeration-constant
  190. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_STOPPING** = ``6``
  191. Our session is being stopped. :ref:`session_stopping<class_OpenXRInterface_signal_session_stopping>` is emitted when we change to this state.
  192. .. _class_OpenXRInterface_constant_SESSION_STATE_LOSS_PENDING:
  193. .. rst-class:: classref-enumeration-constant
  194. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_LOSS_PENDING** = ``7``
  195. The session is about to be lost. :ref:`session_loss_pending<class_OpenXRInterface_signal_session_loss_pending>` is emitted when we change to this state.
  196. .. _class_OpenXRInterface_constant_SESSION_STATE_EXITING:
  197. .. rst-class:: classref-enumeration-constant
  198. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **SESSION_STATE_EXITING** = ``8``
  199. The OpenXR instance is about to be destroyed and we're existing. :ref:`instance_exiting<class_OpenXRInterface_signal_instance_exiting>` is emitted when we change to this state.
  200. .. rst-class:: classref-item-separator
  201. ----
  202. .. _enum_OpenXRInterface_Hand:
  203. .. rst-class:: classref-enumeration
  204. enum **Hand**: :ref:`๐Ÿ”—<enum_OpenXRInterface_Hand>`
  205. .. _class_OpenXRInterface_constant_HAND_LEFT:
  206. .. rst-class:: classref-enumeration-constant
  207. :ref:`Hand<enum_OpenXRInterface_Hand>` **HAND_LEFT** = ``0``
  208. Left hand.
  209. .. _class_OpenXRInterface_constant_HAND_RIGHT:
  210. .. rst-class:: classref-enumeration-constant
  211. :ref:`Hand<enum_OpenXRInterface_Hand>` **HAND_RIGHT** = ``1``
  212. Right hand.
  213. .. _class_OpenXRInterface_constant_HAND_MAX:
  214. .. rst-class:: classref-enumeration-constant
  215. :ref:`Hand<enum_OpenXRInterface_Hand>` **HAND_MAX** = ``2``
  216. Maximum value for the hand enum.
  217. .. rst-class:: classref-item-separator
  218. ----
  219. .. _enum_OpenXRInterface_HandMotionRange:
  220. .. rst-class:: classref-enumeration
  221. enum **HandMotionRange**: :ref:`๐Ÿ”—<enum_OpenXRInterface_HandMotionRange>`
  222. .. _class_OpenXRInterface_constant_HAND_MOTION_RANGE_UNOBSTRUCTED:
  223. .. rst-class:: classref-enumeration-constant
  224. :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **HAND_MOTION_RANGE_UNOBSTRUCTED** = ``0``
  225. Full hand range, if user closes their hands, we make a full fist.
  226. .. _class_OpenXRInterface_constant_HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER:
  227. .. rst-class:: classref-enumeration-constant
  228. :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER** = ``1``
  229. Conform to controller, if user closes their hands, the tracked data conforms to the shape of the controller.
  230. .. _class_OpenXRInterface_constant_HAND_MOTION_RANGE_MAX:
  231. .. rst-class:: classref-enumeration-constant
  232. :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **HAND_MOTION_RANGE_MAX** = ``2``
  233. Maximum value for the motion range enum.
  234. .. rst-class:: classref-item-separator
  235. ----
  236. .. _enum_OpenXRInterface_HandTrackedSource:
  237. .. rst-class:: classref-enumeration
  238. enum **HandTrackedSource**: :ref:`๐Ÿ”—<enum_OpenXRInterface_HandTrackedSource>`
  239. .. _class_OpenXRInterface_constant_HAND_TRACKED_SOURCE_UNKNOWN:
  240. .. rst-class:: classref-enumeration-constant
  241. :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` **HAND_TRACKED_SOURCE_UNKNOWN** = ``0``
  242. The source of hand tracking data is unknown (the extension is likely unsupported).
  243. .. _class_OpenXRInterface_constant_HAND_TRACKED_SOURCE_UNOBSTRUCTED:
  244. .. rst-class:: classref-enumeration-constant
  245. :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` **HAND_TRACKED_SOURCE_UNOBSTRUCTED** = ``1``
  246. The source of hand tracking is unobstructed, this means that an accurate method of hand tracking is used, e.g. optical hand tracking, data gloves, etc.
  247. .. _class_OpenXRInterface_constant_HAND_TRACKED_SOURCE_CONTROLLER:
  248. .. rst-class:: classref-enumeration-constant
  249. :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` **HAND_TRACKED_SOURCE_CONTROLLER** = ``2``
  250. The source of hand tracking is a controller, bone positions are inferred from controller inputs.
  251. .. _class_OpenXRInterface_constant_HAND_TRACKED_SOURCE_MAX:
  252. .. rst-class:: classref-enumeration-constant
  253. :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` **HAND_TRACKED_SOURCE_MAX** = ``3``
  254. Represents the size of the :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` enum.
  255. .. rst-class:: classref-item-separator
  256. ----
  257. .. _enum_OpenXRInterface_HandJoints:
  258. .. rst-class:: classref-enumeration
  259. enum **HandJoints**: :ref:`๐Ÿ”—<enum_OpenXRInterface_HandJoints>`
  260. .. _class_OpenXRInterface_constant_HAND_JOINT_PALM:
  261. .. rst-class:: classref-enumeration-constant
  262. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_PALM** = ``0``
  263. Palm joint.
  264. .. _class_OpenXRInterface_constant_HAND_JOINT_WRIST:
  265. .. rst-class:: classref-enumeration-constant
  266. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_WRIST** = ``1``
  267. Wrist joint.
  268. .. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_METACARPAL:
  269. .. rst-class:: classref-enumeration-constant
  270. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_METACARPAL** = ``2``
  271. Thumb metacarpal joint.
  272. .. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_PROXIMAL:
  273. .. rst-class:: classref-enumeration-constant
  274. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_PROXIMAL** = ``3``
  275. Thumb proximal joint.
  276. .. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_DISTAL:
  277. .. rst-class:: classref-enumeration-constant
  278. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_DISTAL** = ``4``
  279. Thumb distal joint.
  280. .. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_TIP:
  281. .. rst-class:: classref-enumeration-constant
  282. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_TIP** = ``5``
  283. Thumb tip joint.
  284. .. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_METACARPAL:
  285. .. rst-class:: classref-enumeration-constant
  286. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_METACARPAL** = ``6``
  287. Index finger metacarpal joint.
  288. .. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_PROXIMAL:
  289. .. rst-class:: classref-enumeration-constant
  290. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_PROXIMAL** = ``7``
  291. Index finger phalanx proximal joint.
  292. .. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_INTERMEDIATE:
  293. .. rst-class:: classref-enumeration-constant
  294. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_INTERMEDIATE** = ``8``
  295. Index finger phalanx intermediate joint.
  296. .. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_DISTAL:
  297. .. rst-class:: classref-enumeration-constant
  298. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_DISTAL** = ``9``
  299. Index finger phalanx distal joint.
  300. .. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_TIP:
  301. .. rst-class:: classref-enumeration-constant
  302. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_TIP** = ``10``
  303. Index finger tip joint.
  304. .. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_METACARPAL:
  305. .. rst-class:: classref-enumeration-constant
  306. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_METACARPAL** = ``11``
  307. Middle finger metacarpal joint.
  308. .. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_PROXIMAL:
  309. .. rst-class:: classref-enumeration-constant
  310. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_PROXIMAL** = ``12``
  311. Middle finger phalanx proximal joint.
  312. .. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_INTERMEDIATE:
  313. .. rst-class:: classref-enumeration-constant
  314. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_INTERMEDIATE** = ``13``
  315. Middle finger phalanx intermediate joint.
  316. .. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_DISTAL:
  317. .. rst-class:: classref-enumeration-constant
  318. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_DISTAL** = ``14``
  319. Middle finger phalanx distal joint.
  320. .. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_TIP:
  321. .. rst-class:: classref-enumeration-constant
  322. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_TIP** = ``15``
  323. Middle finger tip joint.
  324. .. _class_OpenXRInterface_constant_HAND_JOINT_RING_METACARPAL:
  325. .. rst-class:: classref-enumeration-constant
  326. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_METACARPAL** = ``16``
  327. Ring finger metacarpal joint.
  328. .. _class_OpenXRInterface_constant_HAND_JOINT_RING_PROXIMAL:
  329. .. rst-class:: classref-enumeration-constant
  330. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_PROXIMAL** = ``17``
  331. Ring finger phalanx proximal joint.
  332. .. _class_OpenXRInterface_constant_HAND_JOINT_RING_INTERMEDIATE:
  333. .. rst-class:: classref-enumeration-constant
  334. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_INTERMEDIATE** = ``18``
  335. Ring finger phalanx intermediate joint.
  336. .. _class_OpenXRInterface_constant_HAND_JOINT_RING_DISTAL:
  337. .. rst-class:: classref-enumeration-constant
  338. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_DISTAL** = ``19``
  339. Ring finger phalanx distal joint.
  340. .. _class_OpenXRInterface_constant_HAND_JOINT_RING_TIP:
  341. .. rst-class:: classref-enumeration-constant
  342. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_TIP** = ``20``
  343. Ring finger tip joint.
  344. .. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_METACARPAL:
  345. .. rst-class:: classref-enumeration-constant
  346. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_METACARPAL** = ``21``
  347. Pinky finger metacarpal joint.
  348. .. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_PROXIMAL:
  349. .. rst-class:: classref-enumeration-constant
  350. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_PROXIMAL** = ``22``
  351. Pinky finger phalanx proximal joint.
  352. .. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_INTERMEDIATE:
  353. .. rst-class:: classref-enumeration-constant
  354. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_INTERMEDIATE** = ``23``
  355. Pinky finger phalanx intermediate joint.
  356. .. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_DISTAL:
  357. .. rst-class:: classref-enumeration-constant
  358. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_DISTAL** = ``24``
  359. Pinky finger phalanx distal joint.
  360. .. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_TIP:
  361. .. rst-class:: classref-enumeration-constant
  362. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_TIP** = ``25``
  363. Pinky finger tip joint.
  364. .. _class_OpenXRInterface_constant_HAND_JOINT_MAX:
  365. .. rst-class:: classref-enumeration-constant
  366. :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MAX** = ``26``
  367. Represents the size of the :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` enum.
  368. .. rst-class:: classref-item-separator
  369. ----
  370. .. _enum_OpenXRInterface_PerfSettingsLevel:
  371. .. rst-class:: classref-enumeration
  372. enum **PerfSettingsLevel**: :ref:`๐Ÿ”—<enum_OpenXRInterface_PerfSettingsLevel>`
  373. .. _class_OpenXRInterface_constant_PERF_SETTINGS_LEVEL_POWER_SAVINGS:
  374. .. rst-class:: classref-enumeration-constant
  375. :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>` **PERF_SETTINGS_LEVEL_POWER_SAVINGS** = ``0``
  376. The application has entered a non-XR section (head-locked / static screen), during which power savings are to be prioritized.
  377. .. _class_OpenXRInterface_constant_PERF_SETTINGS_LEVEL_SUSTAINED_LOW:
  378. .. rst-class:: classref-enumeration-constant
  379. :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>` **PERF_SETTINGS_LEVEL_SUSTAINED_LOW** = ``1``
  380. The application has entered a low and stable complexity section, during which reducing power is more important than occasional late rendering frames.
  381. .. _class_OpenXRInterface_constant_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH:
  382. .. rst-class:: classref-enumeration-constant
  383. :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>` **PERF_SETTINGS_LEVEL_SUSTAINED_HIGH** = ``2``
  384. The application has entered a high or dynamic complexity section, during which the XR Runtime strives for consistent XR compositing and frame rendering within a thermally sustainable range.
  385. .. _class_OpenXRInterface_constant_PERF_SETTINGS_LEVEL_BOOST:
  386. .. rst-class:: classref-enumeration-constant
  387. :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>` **PERF_SETTINGS_LEVEL_BOOST** = ``3``
  388. The application has entered a section with very high complexity, during which the XR Runtime is allowed to step up beyond the thermally sustainable range.
  389. .. rst-class:: classref-item-separator
  390. ----
  391. .. _enum_OpenXRInterface_PerfSettingsSubDomain:
  392. .. rst-class:: classref-enumeration
  393. enum **PerfSettingsSubDomain**: :ref:`๐Ÿ”—<enum_OpenXRInterface_PerfSettingsSubDomain>`
  394. .. _class_OpenXRInterface_constant_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING:
  395. .. rst-class:: classref-enumeration-constant
  396. :ref:`PerfSettingsSubDomain<enum_OpenXRInterface_PerfSettingsSubDomain>` **PERF_SETTINGS_SUB_DOMAIN_COMPOSITING** = ``0``
  397. The compositing performance within the runtime has reached a new level.
  398. .. _class_OpenXRInterface_constant_PERF_SETTINGS_SUB_DOMAIN_RENDERING:
  399. .. rst-class:: classref-enumeration-constant
  400. :ref:`PerfSettingsSubDomain<enum_OpenXRInterface_PerfSettingsSubDomain>` **PERF_SETTINGS_SUB_DOMAIN_RENDERING** = ``1``
  401. The application rendering performance has reached a new level.
  402. .. _class_OpenXRInterface_constant_PERF_SETTINGS_SUB_DOMAIN_THERMAL:
  403. .. rst-class:: classref-enumeration-constant
  404. :ref:`PerfSettingsSubDomain<enum_OpenXRInterface_PerfSettingsSubDomain>` **PERF_SETTINGS_SUB_DOMAIN_THERMAL** = ``2``
  405. The temperature of the device has reached a new level.
  406. .. rst-class:: classref-item-separator
  407. ----
  408. .. _enum_OpenXRInterface_PerfSettingsNotificationLevel:
  409. .. rst-class:: classref-enumeration
  410. enum **PerfSettingsNotificationLevel**: :ref:`๐Ÿ”—<enum_OpenXRInterface_PerfSettingsNotificationLevel>`
  411. .. _class_OpenXRInterface_constant_PERF_SETTINGS_NOTIF_LEVEL_NORMAL:
  412. .. rst-class:: classref-enumeration-constant
  413. :ref:`PerfSettingsNotificationLevel<enum_OpenXRInterface_PerfSettingsNotificationLevel>` **PERF_SETTINGS_NOTIF_LEVEL_NORMAL** = ``0``
  414. The sub-domain has reached a level where no further actions other than currently applied are necessary.
  415. .. _class_OpenXRInterface_constant_PERF_SETTINGS_NOTIF_LEVEL_WARNING:
  416. .. rst-class:: classref-enumeration-constant
  417. :ref:`PerfSettingsNotificationLevel<enum_OpenXRInterface_PerfSettingsNotificationLevel>` **PERF_SETTINGS_NOTIF_LEVEL_WARNING** = ``1``
  418. The sub-domain has reached an early warning level where the application should start proactive mitigation actions.
  419. .. _class_OpenXRInterface_constant_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED:
  420. .. rst-class:: classref-enumeration-constant
  421. :ref:`PerfSettingsNotificationLevel<enum_OpenXRInterface_PerfSettingsNotificationLevel>` **PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED** = ``2``
  422. The sub-domain has reached a critical level where the application should start drastic mitigation actions.
  423. .. rst-class:: classref-item-separator
  424. ----
  425. .. _enum_OpenXRInterface_HandJointFlags:
  426. .. rst-class:: classref-enumeration
  427. flags **HandJointFlags**: :ref:`๐Ÿ”—<enum_OpenXRInterface_HandJointFlags>`
  428. .. _class_OpenXRInterface_constant_HAND_JOINT_NONE:
  429. .. rst-class:: classref-enumeration-constant
  430. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_NONE** = ``0``
  431. No flags are set.
  432. .. _class_OpenXRInterface_constant_HAND_JOINT_ORIENTATION_VALID:
  433. .. rst-class:: classref-enumeration-constant
  434. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_ORIENTATION_VALID** = ``1``
  435. If set, the orientation data is valid, otherwise, the orientation data is unreliable and should not be used.
  436. .. _class_OpenXRInterface_constant_HAND_JOINT_ORIENTATION_TRACKED:
  437. .. rst-class:: classref-enumeration-constant
  438. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_ORIENTATION_TRACKED** = ``2``
  439. If set, the orientation data comes from tracking data, otherwise, the orientation data contains predicted data.
  440. .. _class_OpenXRInterface_constant_HAND_JOINT_POSITION_VALID:
  441. .. rst-class:: classref-enumeration-constant
  442. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_POSITION_VALID** = ``4``
  443. If set, the positional data is valid, otherwise, the positional data is unreliable and should not be used.
  444. .. _class_OpenXRInterface_constant_HAND_JOINT_POSITION_TRACKED:
  445. .. rst-class:: classref-enumeration-constant
  446. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_POSITION_TRACKED** = ``8``
  447. If set, the positional data comes from tracking data, otherwise, the positional data contains predicted data.
  448. .. _class_OpenXRInterface_constant_HAND_JOINT_LINEAR_VELOCITY_VALID:
  449. .. rst-class:: classref-enumeration-constant
  450. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_LINEAR_VELOCITY_VALID** = ``16``
  451. If set, our linear velocity data is valid, otherwise, the linear velocity data is unreliable and should not be used.
  452. .. _class_OpenXRInterface_constant_HAND_JOINT_ANGULAR_VELOCITY_VALID:
  453. .. rst-class:: classref-enumeration-constant
  454. :ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>` **HAND_JOINT_ANGULAR_VELOCITY_VALID** = ``32``
  455. If set, our angular velocity data is valid, otherwise, the angular velocity data is unreliable and should not be used.
  456. .. rst-class:: classref-section-separator
  457. ----
  458. .. rst-class:: classref-descriptions-group
  459. Property Descriptions
  460. ---------------------
  461. .. _class_OpenXRInterface_property_display_refresh_rate:
  462. .. rst-class:: classref-property
  463. :ref:`float<class_float>` **display_refresh_rate** = ``0.0`` :ref:`๐Ÿ”—<class_OpenXRInterface_property_display_refresh_rate>`
  464. .. rst-class:: classref-property-setget
  465. - |void| **set_display_refresh_rate**\ (\ value\: :ref:`float<class_float>`\ )
  466. - :ref:`float<class_float>` **get_display_refresh_rate**\ (\ )
  467. The display refresh rate for the current HMD. Only functional if this feature is supported by the OpenXR runtime and after the interface has been initialized.
  468. .. rst-class:: classref-item-separator
  469. ----
  470. .. _class_OpenXRInterface_property_foveation_dynamic:
  471. .. rst-class:: classref-property
  472. :ref:`bool<class_bool>` **foveation_dynamic** = ``false`` :ref:`๐Ÿ”—<class_OpenXRInterface_property_foveation_dynamic>`
  473. .. rst-class:: classref-property-setget
  474. - |void| **set_foveation_dynamic**\ (\ value\: :ref:`bool<class_bool>`\ )
  475. - :ref:`bool<class_bool>` **get_foveation_dynamic**\ (\ )
  476. Enable dynamic foveation adjustment, the interface must be initialized before this is accessible. If enabled foveation will automatically adjusted between low and :ref:`foveation_level<class_OpenXRInterface_property_foveation_level>`.
  477. \ **Note:** Only works on the Compatibility renderer.
  478. .. rst-class:: classref-item-separator
  479. ----
  480. .. _class_OpenXRInterface_property_foveation_level:
  481. .. rst-class:: classref-property
  482. :ref:`int<class_int>` **foveation_level** = ``0`` :ref:`๐Ÿ”—<class_OpenXRInterface_property_foveation_level>`
  483. .. rst-class:: classref-property-setget
  484. - |void| **set_foveation_level**\ (\ value\: :ref:`int<class_int>`\ )
  485. - :ref:`int<class_int>` **get_foveation_level**\ (\ )
  486. Set foveation level from 0 (off) to 3 (high), the interface must be initialized before this is accessible.
  487. \ **Note:** Only works on the Compatibility renderer.
  488. .. rst-class:: classref-item-separator
  489. ----
  490. .. _class_OpenXRInterface_property_render_target_size_multiplier:
  491. .. rst-class:: classref-property
  492. :ref:`float<class_float>` **render_target_size_multiplier** = ``1.0`` :ref:`๐Ÿ”—<class_OpenXRInterface_property_render_target_size_multiplier>`
  493. .. rst-class:: classref-property-setget
  494. - |void| **set_render_target_size_multiplier**\ (\ value\: :ref:`float<class_float>`\ )
  495. - :ref:`float<class_float>` **get_render_target_size_multiplier**\ (\ )
  496. The render size multiplier for the current HMD. Must be set before the interface has been initialized.
  497. .. rst-class:: classref-item-separator
  498. ----
  499. .. _class_OpenXRInterface_property_vrs_min_radius:
  500. .. rst-class:: classref-property
  501. :ref:`float<class_float>` **vrs_min_radius** = ``20.0`` :ref:`๐Ÿ”—<class_OpenXRInterface_property_vrs_min_radius>`
  502. .. rst-class:: classref-property-setget
  503. - |void| **set_vrs_min_radius**\ (\ value\: :ref:`float<class_float>`\ )
  504. - :ref:`float<class_float>` **get_vrs_min_radius**\ (\ )
  505. The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size.
  506. \ **Note:** Mobile and Forward+ renderers only. Requires :ref:`Viewport.vrs_mode<class_Viewport_property_vrs_mode>` to be set to :ref:`Viewport.VRS_XR<class_Viewport_constant_VRS_XR>`.
  507. .. rst-class:: classref-item-separator
  508. ----
  509. .. _class_OpenXRInterface_property_vrs_strength:
  510. .. rst-class:: classref-property
  511. :ref:`float<class_float>` **vrs_strength** = ``1.0`` :ref:`๐Ÿ”—<class_OpenXRInterface_property_vrs_strength>`
  512. .. rst-class:: classref-property-setget
  513. - |void| **set_vrs_strength**\ (\ value\: :ref:`float<class_float>`\ )
  514. - :ref:`float<class_float>` **get_vrs_strength**\ (\ )
  515. The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. This improves performance at the cost of quality.
  516. \ **Note:** Mobile and Forward+ renderers only. Requires :ref:`Viewport.vrs_mode<class_Viewport_property_vrs_mode>` to be set to :ref:`Viewport.VRS_XR<class_Viewport_constant_VRS_XR>`.
  517. .. rst-class:: classref-section-separator
  518. ----
  519. .. rst-class:: classref-descriptions-group
  520. Method Descriptions
  521. -------------------
  522. .. _class_OpenXRInterface_method_get_action_sets:
  523. .. rst-class:: classref-method
  524. :ref:`Array<class_Array>` **get_action_sets**\ (\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_action_sets>`
  525. Returns a list of action sets registered with Godot (loaded from the action map at runtime).
  526. .. rst-class:: classref-item-separator
  527. ----
  528. .. _class_OpenXRInterface_method_get_available_display_refresh_rates:
  529. .. rst-class:: classref-method
  530. :ref:`Array<class_Array>` **get_available_display_refresh_rates**\ (\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_available_display_refresh_rates>`
  531. Returns display refresh rates supported by the current HMD. Only returned if this feature is supported by the OpenXR runtime and after the interface has been initialized.
  532. .. rst-class:: classref-item-separator
  533. ----
  534. .. _class_OpenXRInterface_method_get_hand_joint_angular_velocity:
  535. .. rst-class:: classref-method
  536. :ref:`Vector3<class_Vector3>` **get_hand_joint_angular_velocity**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_joint_angular_velocity>`
  537. **Deprecated:** Use :ref:`XRHandTracker.get_hand_joint_angular_velocity()<class_XRHandTracker_method_get_hand_joint_angular_velocity>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  538. If handtracking is enabled, returns the angular velocity of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is relative to :ref:`XROrigin3D<class_XROrigin3D>`!
  539. .. rst-class:: classref-item-separator
  540. ----
  541. .. _class_OpenXRInterface_method_get_hand_joint_flags:
  542. .. rst-class:: classref-method
  543. |bitfield|\[:ref:`HandJointFlags<enum_OpenXRInterface_HandJointFlags>`\] **get_hand_joint_flags**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_joint_flags>`
  544. **Deprecated:** Use :ref:`XRHandTracker.get_hand_joint_flags()<class_XRHandTracker_method_get_hand_joint_flags>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  545. If handtracking is enabled, returns flags that inform us of the validity of the tracking data.
  546. .. rst-class:: classref-item-separator
  547. ----
  548. .. _class_OpenXRInterface_method_get_hand_joint_linear_velocity:
  549. .. rst-class:: classref-method
  550. :ref:`Vector3<class_Vector3>` **get_hand_joint_linear_velocity**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_joint_linear_velocity>`
  551. **Deprecated:** Use :ref:`XRHandTracker.get_hand_joint_linear_velocity()<class_XRHandTracker_method_get_hand_joint_linear_velocity>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  552. If handtracking is enabled, returns the linear velocity of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is relative to :ref:`XROrigin3D<class_XROrigin3D>` without worldscale applied!
  553. .. rst-class:: classref-item-separator
  554. ----
  555. .. _class_OpenXRInterface_method_get_hand_joint_position:
  556. .. rst-class:: classref-method
  557. :ref:`Vector3<class_Vector3>` **get_hand_joint_position**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_joint_position>`
  558. **Deprecated:** Use :ref:`XRHandTracker.get_hand_joint_transform()<class_XRHandTracker_method_get_hand_joint_transform>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  559. If handtracking is enabled, returns the position of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is relative to :ref:`XROrigin3D<class_XROrigin3D>` without worldscale applied!
  560. .. rst-class:: classref-item-separator
  561. ----
  562. .. _class_OpenXRInterface_method_get_hand_joint_radius:
  563. .. rst-class:: classref-method
  564. :ref:`float<class_float>` **get_hand_joint_radius**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_joint_radius>`
  565. **Deprecated:** Use :ref:`XRHandTracker.get_hand_joint_radius()<class_XRHandTracker_method_get_hand_joint_radius>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  566. If handtracking is enabled, returns the radius of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is without worldscale applied!
  567. .. rst-class:: classref-item-separator
  568. ----
  569. .. _class_OpenXRInterface_method_get_hand_joint_rotation:
  570. .. rst-class:: classref-method
  571. :ref:`Quaternion<class_Quaternion>` **get_hand_joint_rotation**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, joint\: :ref:`HandJoints<enum_OpenXRInterface_HandJoints>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_joint_rotation>`
  572. **Deprecated:** Use :ref:`XRHandTracker.get_hand_joint_transform()<class_XRHandTracker_method_get_hand_joint_transform>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  573. If handtracking is enabled, returns the rotation of a joint (``joint``) of a hand (``hand``) as provided by OpenXR.
  574. .. rst-class:: classref-item-separator
  575. ----
  576. .. _class_OpenXRInterface_method_get_hand_tracking_source:
  577. .. rst-class:: classref-method
  578. :ref:`HandTrackedSource<enum_OpenXRInterface_HandTrackedSource>` **get_hand_tracking_source**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_hand_tracking_source>`
  579. **Deprecated:** Use :ref:`XRHandTracker.hand_tracking_source<class_XRHandTracker_property_hand_tracking_source>` obtained from :ref:`XRServer.get_tracker()<class_XRServer_method_get_tracker>` instead.
  580. If handtracking is enabled and hand tracking source is supported, gets the source of the hand tracking data for ``hand``.
  581. .. rst-class:: classref-item-separator
  582. ----
  583. .. _class_OpenXRInterface_method_get_motion_range:
  584. .. rst-class:: classref-method
  585. :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **get_motion_range**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_motion_range>`
  586. If handtracking is enabled and motion range is supported, gets the currently configured motion range for ``hand``.
  587. .. rst-class:: classref-item-separator
  588. ----
  589. .. _class_OpenXRInterface_method_get_session_state:
  590. .. rst-class:: classref-method
  591. :ref:`SessionState<enum_OpenXRInterface_SessionState>` **get_session_state**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_get_session_state>`
  592. Returns the current state of our OpenXR session.
  593. .. rst-class:: classref-item-separator
  594. ----
  595. .. _class_OpenXRInterface_method_is_action_set_active:
  596. .. rst-class:: classref-method
  597. :ref:`bool<class_bool>` **is_action_set_active**\ (\ name\: :ref:`String<class_String>`\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_is_action_set_active>`
  598. Returns ``true`` if the given action set is active.
  599. .. rst-class:: classref-item-separator
  600. ----
  601. .. _class_OpenXRInterface_method_is_eye_gaze_interaction_supported:
  602. .. rst-class:: classref-method
  603. :ref:`bool<class_bool>` **is_eye_gaze_interaction_supported**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_is_eye_gaze_interaction_supported>`
  604. Returns the capabilities of the eye gaze interaction extension.
  605. \ **Note:** This only returns a valid value after OpenXR has been initialized.
  606. .. rst-class:: classref-item-separator
  607. ----
  608. .. _class_OpenXRInterface_method_is_foveation_supported:
  609. .. rst-class:: classref-method
  610. :ref:`bool<class_bool>` **is_foveation_supported**\ (\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_is_foveation_supported>`
  611. Returns ``true`` if OpenXR's foveation extension is supported, the interface must be initialized before this returns a valid value.
  612. \ **Note:** This feature is only available on the Compatibility renderer and currently only available on some stand alone headsets. For Vulkan set :ref:`Viewport.vrs_mode<class_Viewport_property_vrs_mode>` to ``VRS_XR`` on desktop.
  613. .. rst-class:: classref-item-separator
  614. ----
  615. .. _class_OpenXRInterface_method_is_hand_interaction_supported:
  616. .. rst-class:: classref-method
  617. :ref:`bool<class_bool>` **is_hand_interaction_supported**\ (\ ) |const| :ref:`๐Ÿ”—<class_OpenXRInterface_method_is_hand_interaction_supported>`
  618. Returns ``true`` if OpenXR's hand interaction profile is supported and enabled.
  619. \ **Note:** This only returns a valid value after OpenXR has been initialized.
  620. .. rst-class:: classref-item-separator
  621. ----
  622. .. _class_OpenXRInterface_method_is_hand_tracking_supported:
  623. .. rst-class:: classref-method
  624. :ref:`bool<class_bool>` **is_hand_tracking_supported**\ (\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_is_hand_tracking_supported>`
  625. Returns ``true`` if OpenXR's hand tracking is supported and enabled.
  626. \ **Note:** This only returns a valid value after OpenXR has been initialized.
  627. .. rst-class:: classref-item-separator
  628. ----
  629. .. _class_OpenXRInterface_method_set_action_set_active:
  630. .. rst-class:: classref-method
  631. |void| **set_action_set_active**\ (\ name\: :ref:`String<class_String>`, active\: :ref:`bool<class_bool>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_set_action_set_active>`
  632. Sets the given action set as active or inactive.
  633. .. rst-class:: classref-item-separator
  634. ----
  635. .. _class_OpenXRInterface_method_set_cpu_level:
  636. .. rst-class:: classref-method
  637. |void| **set_cpu_level**\ (\ level\: :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_set_cpu_level>`
  638. Sets the CPU performance level of the OpenXR device.
  639. .. rst-class:: classref-item-separator
  640. ----
  641. .. _class_OpenXRInterface_method_set_gpu_level:
  642. .. rst-class:: classref-method
  643. |void| **set_gpu_level**\ (\ level\: :ref:`PerfSettingsLevel<enum_OpenXRInterface_PerfSettingsLevel>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_set_gpu_level>`
  644. Sets the GPU performance level of the OpenXR device.
  645. .. rst-class:: classref-item-separator
  646. ----
  647. .. _class_OpenXRInterface_method_set_motion_range:
  648. .. rst-class:: classref-method
  649. |void| **set_motion_range**\ (\ hand\: :ref:`Hand<enum_OpenXRInterface_Hand>`, motion_range\: :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>`\ ) :ref:`๐Ÿ”—<class_OpenXRInterface_method_set_motion_range>`
  650. If handtracking is enabled and motion range is supported, sets the currently configured motion range for ``hand`` to ``motion_range``.
  651. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  652. .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
  653. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  654. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  655. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  656. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  657. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  658. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  659. .. |void| replace:: :abbr:`void (No return value.)`