class_os.rst 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the OS.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_OS:
  5. OS
  6. ==
  7. **Inherits:** :ref:`Object<class_object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Operating System functions.
  12. Member Functions
  13. ----------------
  14. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | void | :ref:`alert<class_OS_alert>` **(** :ref:`String<class_string>` text, :ref:`String<class_string>` title="Alert!" **)** |
  16. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | :ref:`bool<class_bool>` | :ref:`can_draw<class_OS_can_draw>` **(** **)** const |
  18. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  19. | :ref:`bool<class_bool>` | :ref:`can_use_threads<class_OS_can_use_threads>` **(** **)** const |
  20. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  21. | void | :ref:`center_window<class_OS_center_window>` **(** **)** |
  22. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | void | :ref:`delay_msec<class_OS_delay_msec>` **(** :ref:`int<class_int>` msec **)** const |
  24. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | void | :ref:`delay_usec<class_OS_delay_usec>` **(** :ref:`int<class_int>` usec **)** const |
  26. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | void | :ref:`dump_memory_to_file<class_OS_dump_memory_to_file>` **(** :ref:`String<class_string>` file **)** |
  28. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | void | :ref:`dump_resources_to_file<class_OS_dump_resources_to_file>` **(** :ref:`String<class_string>` file **)** |
  30. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`int<class_int>` | :ref:`execute<class_OS_execute>` **(** :ref:`String<class_string>` path, :ref:`PoolStringArray<class_poolstringarray>` arguments, :ref:`bool<class_bool>` blocking, :ref:`Array<class_array>` output=[ ] **)** |
  32. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | :ref:`int<class_int>` | :ref:`find_scancode_from_string<class_OS_find_scancode_from_string>` **(** :ref:`String<class_string>` string **)** const |
  34. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | :ref:`PoolStringArray<class_poolstringarray>` | :ref:`get_cmdline_args<class_OS_get_cmdline_args>` **(** **)** |
  36. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | :ref:`Dictionary<class_dictionary>` | :ref:`get_date<class_OS_get_date>` **(** :ref:`bool<class_bool>` utc=false **)** const |
  38. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`Dictionary<class_dictionary>` | :ref:`get_datetime<class_OS_get_datetime>` **(** :ref:`bool<class_bool>` utc=false **)** const |
  40. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | :ref:`Dictionary<class_dictionary>` | :ref:`get_datetime_from_unix_time<class_OS_get_datetime_from_unix_time>` **(** :ref:`int<class_int>` unix_time_val **)** const |
  42. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | :ref:`int<class_int>` | :ref:`get_dynamic_memory_usage<class_OS_get_dynamic_memory_usage>` **(** **)** const |
  44. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | :ref:`String<class_string>` | :ref:`get_environment<class_OS_get_environment>` **(** :ref:`String<class_string>` environment **)** const |
  46. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | :ref:`String<class_string>` | :ref:`get_executable_path<class_OS_get_executable_path>` **(** **)** const |
  48. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | :ref:`String<class_string>` | :ref:`get_latin_keyboard_variant<class_OS_get_latin_keyboard_variant>` **(** **)** const |
  50. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`String<class_string>` | :ref:`get_locale<class_OS_get_locale>` **(** **)** const |
  52. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`String<class_string>` | :ref:`get_model_name<class_OS_get_model_name>` **(** **)** const |
  54. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`String<class_string>` | :ref:`get_name<class_OS_get_name>` **(** **)** const |
  56. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`int<class_int>` | :ref:`get_power_percent_left<class_OS_get_power_percent_left>` **(** **)** |
  58. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`int<class_int>` | :ref:`get_power_seconds_left<class_OS_get_power_seconds_left>` **(** **)** |
  60. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | :ref:`int<class_int>` | :ref:`get_power_state<class_OS_get_power_state>` **(** **)** |
  62. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | :ref:`int<class_int>` | :ref:`get_process_id<class_OS_get_process_id>` **(** **)** const |
  64. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | :ref:`int<class_int>` | :ref:`get_processor_count<class_OS_get_processor_count>` **(** **)** const |
  66. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | :ref:`Vector2<class_vector2>` | :ref:`get_real_window_size<class_OS_get_real_window_size>` **(** **)** const |
  68. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | :ref:`String<class_string>` | :ref:`get_scancode_string<class_OS_get_scancode_string>` **(** :ref:`int<class_int>` code **)** const |
  70. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | :ref:`int<class_int>` | :ref:`get_screen_count<class_OS_get_screen_count>` **(** **)** const |
  72. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. | :ref:`int<class_int>` | :ref:`get_screen_dpi<class_OS_get_screen_dpi>` **(** :ref:`int<class_int>` screen=-1 **)** const |
  74. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  75. | :ref:`Vector2<class_vector2>` | :ref:`get_screen_position<class_OS_get_screen_position>` **(** :ref:`int<class_int>` screen=-1 **)** const |
  76. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | :ref:`Vector2<class_vector2>` | :ref:`get_screen_size<class_OS_get_screen_size>` **(** :ref:`int<class_int>` screen=-1 **)** const |
  78. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | :ref:`int<class_int>` | :ref:`get_splash_tick_msec<class_OS_get_splash_tick_msec>` **(** **)** const |
  80. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | :ref:`int<class_int>` | :ref:`get_static_memory_peak_usage<class_OS_get_static_memory_peak_usage>` **(** **)** const |
  82. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | :ref:`int<class_int>` | :ref:`get_static_memory_usage<class_OS_get_static_memory_usage>` **(** **)** const |
  84. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | :ref:`String<class_string>` | :ref:`get_system_dir<class_OS_get_system_dir>` **(** :ref:`int<class_int>` dir **)** const |
  86. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | :ref:`int<class_int>` | :ref:`get_system_time_secs<class_OS_get_system_time_secs>` **(** **)** const |
  88. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | :ref:`int<class_int>` | :ref:`get_ticks_msec<class_OS_get_ticks_msec>` **(** **)** const |
  90. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | :ref:`Dictionary<class_dictionary>` | :ref:`get_time<class_OS_get_time>` **(** :ref:`bool<class_bool>` utc=false **)** const |
  92. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | :ref:`Dictionary<class_dictionary>` | :ref:`get_time_zone_info<class_OS_get_time_zone_info>` **(** **)** const |
  94. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | :ref:`String<class_string>` | :ref:`get_unique_id<class_OS_get_unique_id>` **(** **)** const |
  96. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. | :ref:`int<class_int>` | :ref:`get_unix_time<class_OS_get_unix_time>` **(** **)** const |
  98. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  99. | :ref:`int<class_int>` | :ref:`get_unix_time_from_datetime<class_OS_get_unix_time_from_datetime>` **(** :ref:`Dictionary<class_dictionary>` datetime **)** const |
  100. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  101. | :ref:`String<class_string>` | :ref:`get_user_data_dir<class_OS_get_user_data_dir>` **(** **)** const |
  102. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  103. | :ref:`int<class_int>` | :ref:`get_virtual_keyboard_height<class_OS_get_virtual_keyboard_height>` **(** **)** |
  104. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  105. | :ref:`bool<class_bool>` | :ref:`has_environment<class_OS_has_environment>` **(** :ref:`String<class_string>` environment **)** const |
  106. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  107. | :ref:`bool<class_bool>` | :ref:`has_feature<class_OS_has_feature>` **(** :ref:`String<class_string>` tag_name **)** const |
  108. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  109. | :ref:`bool<class_bool>` | :ref:`has_touchscreen_ui_hint<class_OS_has_touchscreen_ui_hint>` **(** **)** const |
  110. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  111. | :ref:`bool<class_bool>` | :ref:`has_virtual_keyboard<class_OS_has_virtual_keyboard>` **(** **)** const |
  112. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. | void | :ref:`hide_virtual_keyboard<class_OS_hide_virtual_keyboard>` **(** **)** |
  114. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. | :ref:`bool<class_bool>` | :ref:`is_debug_build<class_OS_is_debug_build>` **(** **)** const |
  116. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  117. | :ref:`bool<class_bool>` | :ref:`is_ok_left_and_cancel_right<class_OS_is_ok_left_and_cancel_right>` **(** **)** const |
  118. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  119. | :ref:`bool<class_bool>` | :ref:`is_scancode_unicode<class_OS_is_scancode_unicode>` **(** :ref:`int<class_int>` code **)** const |
  120. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  121. | :ref:`bool<class_bool>` | :ref:`is_stdout_verbose<class_OS_is_stdout_verbose>` **(** **)** const |
  122. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | :ref:`bool<class_bool>` | :ref:`is_userfs_persistent<class_OS_is_userfs_persistent>` **(** **)** const |
  124. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | :ref:`bool<class_bool>` | :ref:`is_window_always_on_top<class_OS_is_window_always_on_top>` **(** **)** const |
  126. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  127. | :ref:`int<class_int>` | :ref:`kill<class_OS_kill>` **(** :ref:`int<class_int>` pid **)** |
  128. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  129. | :ref:`bool<class_bool>` | :ref:`native_video_is_playing<class_OS_native_video_is_playing>` **(** **)** |
  130. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  131. | void | :ref:`native_video_pause<class_OS_native_video_pause>` **(** **)** |
  132. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  133. | :ref:`int<class_int>` | :ref:`native_video_play<class_OS_native_video_play>` **(** :ref:`String<class_string>` path, :ref:`float<class_float>` volume, :ref:`String<class_string>` audio_track, :ref:`String<class_string>` subtitle_track **)** |
  134. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  135. | void | :ref:`native_video_stop<class_OS_native_video_stop>` **(** **)** |
  136. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  137. | void | :ref:`native_video_unpause<class_OS_native_video_unpause>` **(** **)** |
  138. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  139. | void | :ref:`print_all_resources<class_OS_print_all_resources>` **(** :ref:`String<class_string>` tofile="" **)** |
  140. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  141. | void | :ref:`print_all_textures_by_size<class_OS_print_all_textures_by_size>` **(** **)** |
  142. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  143. | void | :ref:`print_resources_by_type<class_OS_print_resources_by_type>` **(** :ref:`PoolStringArray<class_poolstringarray>` types **)** |
  144. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  145. | void | :ref:`print_resources_in_use<class_OS_print_resources_in_use>` **(** :ref:`bool<class_bool>` short=false **)** |
  146. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  147. | void | :ref:`request_attention<class_OS_request_attention>` **(** **)** |
  148. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  149. | void | :ref:`set_icon<class_OS_set_icon>` **(** :ref:`Image<class_image>` icon **)** |
  150. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. | void | :ref:`set_ime_position<class_OS_set_ime_position>` **(** :ref:`Vector2<class_vector2>` position **)** |
  152. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. | :ref:`int<class_int>` | :ref:`set_thread_name<class_OS_set_thread_name>` **(** :ref:`String<class_string>` name **)** |
  154. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  155. | void | :ref:`set_use_file_access_save_and_swap<class_OS_set_use_file_access_save_and_swap>` **(** :ref:`bool<class_bool>` enabled **)** |
  156. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  157. | void | :ref:`set_window_always_on_top<class_OS_set_window_always_on_top>` **(** :ref:`bool<class_bool>` enabled **)** |
  158. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  159. | void | :ref:`set_window_title<class_OS_set_window_title>` **(** :ref:`String<class_string>` title **)** |
  160. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  161. | :ref:`int<class_int>` | :ref:`shell_open<class_OS_shell_open>` **(** :ref:`String<class_string>` uri **)** |
  162. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  163. | void | :ref:`show_virtual_keyboard<class_OS_show_virtual_keyboard>` **(** :ref:`String<class_string>` existing_text="" **)** |
  164. +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  165. Member Variables
  166. ----------------
  167. .. _class_OS_clipboard:
  168. - :ref:`String<class_string>` **clipboard** - The clipboard from the host OS. Might be unavailable on some platforms.
  169. .. _class_OS_current_screen:
  170. - :ref:`int<class_int>` **current_screen** - The current screen index (starting from 0).
  171. .. _class_OS_exit_code:
  172. - :ref:`int<class_int>` **exit_code**
  173. .. _class_OS_keep_screen_on:
  174. - :ref:`bool<class_bool>` **keep_screen_on**
  175. .. _class_OS_low_processor_usage_mode:
  176. - :ref:`bool<class_bool>` **low_processor_usage_mode**
  177. .. _class_OS_screen_orientation:
  178. - _OS.ScreenOrientation **screen_orientation** - The current screen orientation.
  179. .. _class_OS_vsync_enabled:
  180. - :ref:`bool<class_bool>` **vsync_enabled**
  181. .. _class_OS_window_borderless:
  182. - :ref:`bool<class_bool>` **window_borderless** - If ``true``, removes the window frame.
  183. .. _class_OS_window_fullscreen:
  184. - :ref:`bool<class_bool>` **window_fullscreen** - If ``true``, the window is fullscreen.
  185. .. _class_OS_window_maximized:
  186. - :ref:`bool<class_bool>` **window_maximized** - If ``true``, the window is maximized.
  187. .. _class_OS_window_minimized:
  188. - :ref:`bool<class_bool>` **window_minimized** - If ``true``, the window is minimized.
  189. .. _class_OS_window_position:
  190. - :ref:`Vector2<class_vector2>` **window_position** - The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right.
  191. .. _class_OS_window_resizable:
  192. - :ref:`bool<class_bool>` **window_resizable** - If ``true``, the window is resizable by the user.
  193. .. _class_OS_window_size:
  194. - :ref:`Vector2<class_vector2>` **window_size** - The size of the window (without counting window manager decorations).
  195. Enums
  196. -----
  197. .. _enum_OS_SystemDir:
  198. enum **SystemDir**
  199. - **SYSTEM_DIR_DESKTOP** = **0**
  200. - **SYSTEM_DIR_DCIM** = **1**
  201. - **SYSTEM_DIR_DOCUMENTS** = **2**
  202. - **SYSTEM_DIR_DOWNLOADS** = **3**
  203. - **SYSTEM_DIR_MOVIES** = **4**
  204. - **SYSTEM_DIR_MUSIC** = **5**
  205. - **SYSTEM_DIR_PICTURES** = **6**
  206. - **SYSTEM_DIR_RINGTONES** = **7**
  207. .. _enum_OS_ScreenOrientation:
  208. enum **ScreenOrientation**
  209. - **SCREEN_ORIENTATION_LANDSCAPE** = **0**
  210. - **SCREEN_ORIENTATION_PORTRAIT** = **1**
  211. - **SCREEN_ORIENTATION_REVERSE_LANDSCAPE** = **2**
  212. - **SCREEN_ORIENTATION_REVERSE_PORTRAIT** = **3**
  213. - **SCREEN_ORIENTATION_SENSOR_LANDSCAPE** = **4**
  214. - **SCREEN_ORIENTATION_SENSOR_PORTRAIT** = **5**
  215. - **SCREEN_ORIENTATION_SENSOR** = **6**
  216. .. _enum_OS_PowerState:
  217. enum **PowerState**
  218. - **POWERSTATE_UNKNOWN** = **0**
  219. - **POWERSTATE_ON_BATTERY** = **1**
  220. - **POWERSTATE_NO_BATTERY** = **2**
  221. - **POWERSTATE_CHARGING** = **3**
  222. - **POWERSTATE_CHARGED** = **4**
  223. .. _enum_OS_Weekday:
  224. enum **Weekday**
  225. - **DAY_SUNDAY** = **0**
  226. - **DAY_MONDAY** = **1**
  227. - **DAY_TUESDAY** = **2**
  228. - **DAY_WEDNESDAY** = **3**
  229. - **DAY_THURSDAY** = **4**
  230. - **DAY_FRIDAY** = **5**
  231. - **DAY_SATURDAY** = **6**
  232. .. _enum_OS_Month:
  233. enum **Month**
  234. - **MONTH_JANUARY** = **1**
  235. - **MONTH_FEBRUARY** = **2**
  236. - **MONTH_MARCH** = **3**
  237. - **MONTH_APRIL** = **4**
  238. - **MONTH_MAY** = **5**
  239. - **MONTH_JUNE** = **6**
  240. - **MONTH_JULY** = **7**
  241. - **MONTH_AUGUST** = **8**
  242. - **MONTH_SEPTEMBER** = **9**
  243. - **MONTH_OCTOBER** = **10**
  244. - **MONTH_NOVEMBER** = **11**
  245. - **MONTH_DECEMBER** = **12**
  246. Description
  247. -----------
  248. Operating System functions. OS Wraps the most common functionality to communicate with the host Operating System, such as: mouse grabbing, mouse cursors, clipboard, video mode, date and time, timers, environment variables, execution of binaries, command line, etc.
  249. Member Function Description
  250. ---------------------------
  251. .. _class_OS_alert:
  252. - void **alert** **(** :ref:`String<class_string>` text, :ref:`String<class_string>` title="Alert!" **)**
  253. Displays a modal dialog box utilizing the host OS.
  254. .. _class_OS_can_draw:
  255. - :ref:`bool<class_bool>` **can_draw** **(** **)** const
  256. Returns ``true`` if the host OS allows drawing.
  257. .. _class_OS_can_use_threads:
  258. - :ref:`bool<class_bool>` **can_use_threads** **(** **)** const
  259. Returns ``true`` if the current host platform is using multiple threads.
  260. .. _class_OS_center_window:
  261. - void **center_window** **(** **)**
  262. .. _class_OS_delay_msec:
  263. - void **delay_msec** **(** :ref:`int<class_int>` msec **)** const
  264. Delay executing of the current thread by given milliseconds.
  265. .. _class_OS_delay_usec:
  266. - void **delay_usec** **(** :ref:`int<class_int>` usec **)** const
  267. Delay executing of the current thread by given microseconds.
  268. .. _class_OS_dump_memory_to_file:
  269. - void **dump_memory_to_file** **(** :ref:`String<class_string>` file **)**
  270. Dumps the memory allocation ringlist to a file (only works in debug).
  271. Entry format per line: "Address - Size - Description"
  272. .. _class_OS_dump_resources_to_file:
  273. - void **dump_resources_to_file** **(** :ref:`String<class_string>` file **)**
  274. Dumps all used resources to file (only works in debug).
  275. Entry format per line: "Resource Type : Resource Location"
  276. At the end of the file is a statistic of all used Resource Types.
  277. .. _class_OS_execute:
  278. - :ref:`int<class_int>` **execute** **(** :ref:`String<class_string>` path, :ref:`PoolStringArray<class_poolstringarray>` arguments, :ref:`bool<class_bool>` blocking, :ref:`Array<class_array>` output=[ ] **)**
  279. Execute the file at the given path, optionally blocking until it returns.
  280. Platform path resolution will take place. The resolved file must exist and be executable.
  281. Returns a process id.
  282. For example:
  283. ::
  284. var output = []
  285. var pid = OS.execute('ls', [], true, output)
  286. If you wish to access a shell built-in or perform a composite command, a platform specific shell can be invoked. For example:
  287. ::
  288. var pid = OS.execute('CMD.exe', ['/C', 'cd %TEMP% && dir'], true, output)
  289. .. _class_OS_find_scancode_from_string:
  290. - :ref:`int<class_int>` **find_scancode_from_string** **(** :ref:`String<class_string>` string **)** const
  291. Returns the scancode of the given string (e.g. "Escape")
  292. .. _class_OS_get_cmdline_args:
  293. - :ref:`PoolStringArray<class_poolstringarray>` **get_cmdline_args** **(** **)**
  294. Returns the command line arguments passed to the engine.
  295. .. _class_OS_get_date:
  296. - :ref:`Dictionary<class_dictionary>` **get_date** **(** :ref:`bool<class_bool>` utc=false **)** const
  297. Returns current date as a dictionary of keys: year, month, day, weekday, dst (daylight savings time).
  298. .. _class_OS_get_datetime:
  299. - :ref:`Dictionary<class_dictionary>` **get_datetime** **(** :ref:`bool<class_bool>` utc=false **)** const
  300. Returns current datetime as a dictionary of keys: year, month, day, weekday, dst (daylight savings time), hour, minute, second.
  301. .. _class_OS_get_datetime_from_unix_time:
  302. - :ref:`Dictionary<class_dictionary>` **get_datetime_from_unix_time** **(** :ref:`int<class_int>` unix_time_val **)** const
  303. Get a dictionary of time values when given epoch time.
  304. Dictionary Time values will be a union of values from :ref:`get_time<class_OS_get_time>` and :ref:`get_date<class_OS_get_date>` dictionaries (with the exception of dst = day light standard time, as it cannot be determined from epoch).
  305. .. _class_OS_get_dynamic_memory_usage:
  306. - :ref:`int<class_int>` **get_dynamic_memory_usage** **(** **)** const
  307. Returns the total amount of dynamic memory used (only works in debug).
  308. .. _class_OS_get_environment:
  309. - :ref:`String<class_string>` **get_environment** **(** :ref:`String<class_string>` environment **)** const
  310. Returns an environment variable.
  311. .. _class_OS_get_executable_path:
  312. - :ref:`String<class_string>` **get_executable_path** **(** **)** const
  313. Returns the path to the current engine executable.
  314. .. _class_OS_get_latin_keyboard_variant:
  315. - :ref:`String<class_string>` **get_latin_keyboard_variant** **(** **)** const
  316. Returns the current latin keyboard variant as a String.
  317. Possible return values are: "QWERTY", "AZERTY", "QZERTY", "DVORAK", "NEO", "COLEMAK" or "ERROR".
  318. .. _class_OS_get_locale:
  319. - :ref:`String<class_string>` **get_locale** **(** **)** const
  320. Returns the host OS locale.
  321. .. _class_OS_get_model_name:
  322. - :ref:`String<class_string>` **get_model_name** **(** **)** const
  323. Returns the model name of the current device.
  324. .. _class_OS_get_name:
  325. - :ref:`String<class_string>` **get_name** **(** **)** const
  326. Returns the name of the host OS. Possible values are: "Android", "Haiku", "iOS", "HTML5", "OSX", "Server", "Windows", "UWP", "X11".
  327. .. _class_OS_get_power_percent_left:
  328. - :ref:`int<class_int>` **get_power_percent_left** **(** **)**
  329. Returns the amount of battery left in the device as a percentage.
  330. .. _class_OS_get_power_seconds_left:
  331. - :ref:`int<class_int>` **get_power_seconds_left** **(** **)**
  332. Returns the time in seconds before the device runs out of battery.
  333. .. _class_OS_get_power_state:
  334. - :ref:`int<class_int>` **get_power_state** **(** **)**
  335. Returns the current state of the device regarding battery and power. See ``POWERSTATE_*`` constants.
  336. .. _class_OS_get_process_id:
  337. - :ref:`int<class_int>` **get_process_id** **(** **)** const
  338. Returns the game process ID
  339. .. _class_OS_get_processor_count:
  340. - :ref:`int<class_int>` **get_processor_count** **(** **)** const
  341. Returns the number of cores available in the host machine.
  342. .. _class_OS_get_real_window_size:
  343. - :ref:`Vector2<class_vector2>` **get_real_window_size** **(** **)** const
  344. .. _class_OS_get_scancode_string:
  345. - :ref:`String<class_string>` **get_scancode_string** **(** :ref:`int<class_int>` code **)** const
  346. Returns the given scancode as a string (e.g. Return values: "Escape", "Shift+Escape").
  347. .. _class_OS_get_screen_count:
  348. - :ref:`int<class_int>` **get_screen_count** **(** **)** const
  349. Returns the number of displays attached to the host machine.
  350. .. _class_OS_get_screen_dpi:
  351. - :ref:`int<class_int>` **get_screen_dpi** **(** :ref:`int<class_int>` screen=-1 **)** const
  352. Returns the dots per inch density of the specified screen.
  353. On Android Devices, the actual screen densities are grouped into six generalized densities:
  354. ldpi - 120 dpi
  355. mdpi - 160 dpi
  356. hdpi - 240 dpi
  357. xhdpi - 320 dpi
  358. xxhdpi - 480 dpi
  359. xxxhdpi - 640 dpi
  360. .. _class_OS_get_screen_position:
  361. - :ref:`Vector2<class_vector2>` **get_screen_position** **(** :ref:`int<class_int>` screen=-1 **)** const
  362. Returns the position of the specified screen by index. If no screen index is provided, the current screen will be used.
  363. .. _class_OS_get_screen_size:
  364. - :ref:`Vector2<class_vector2>` **get_screen_size** **(** :ref:`int<class_int>` screen=-1 **)** const
  365. Returns the dimensions in pixels of the specified screen.
  366. .. _class_OS_get_splash_tick_msec:
  367. - :ref:`int<class_int>` **get_splash_tick_msec** **(** **)** const
  368. .. _class_OS_get_static_memory_peak_usage:
  369. - :ref:`int<class_int>` **get_static_memory_peak_usage** **(** **)** const
  370. Returns the max amount of static memory used (only works in debug).
  371. .. _class_OS_get_static_memory_usage:
  372. - :ref:`int<class_int>` **get_static_memory_usage** **(** **)** const
  373. Returns the amount of static memory being used by the program in bytes.
  374. .. _class_OS_get_system_dir:
  375. - :ref:`String<class_string>` **get_system_dir** **(** :ref:`int<class_int>` dir **)** const
  376. Returns the actual path to commonly used folders across different platforms. Available locations are specified in OS.SystemDir.
  377. .. _class_OS_get_system_time_secs:
  378. - :ref:`int<class_int>` **get_system_time_secs** **(** **)** const
  379. Returns the epoch time of the operating system in seconds.
  380. .. _class_OS_get_ticks_msec:
  381. - :ref:`int<class_int>` **get_ticks_msec** **(** **)** const
  382. Returns the amount of time passed in milliseconds since the engine started.
  383. .. _class_OS_get_time:
  384. - :ref:`Dictionary<class_dictionary>` **get_time** **(** :ref:`bool<class_bool>` utc=false **)** const
  385. Returns current time as a dictionary of keys: hour, minute, second.
  386. .. _class_OS_get_time_zone_info:
  387. - :ref:`Dictionary<class_dictionary>` **get_time_zone_info** **(** **)** const
  388. Returns the current time zone as a dictionary with the keys: bias and name.
  389. .. _class_OS_get_unique_id:
  390. - :ref:`String<class_string>` **get_unique_id** **(** **)** const
  391. Returns a string that is unique to the device.
  392. Returns empty string on HTML5 and UWP which are not supported yet.
  393. .. _class_OS_get_unix_time:
  394. - :ref:`int<class_int>` **get_unix_time** **(** **)** const
  395. Return the current unix timestamp.
  396. .. _class_OS_get_unix_time_from_datetime:
  397. - :ref:`int<class_int>` **get_unix_time_from_datetime** **(** :ref:`Dictionary<class_dictionary>` datetime **)** const
  398. Get an epoch time value from a dictionary of time values.
  399. ``datetime`` must be populated with the following keys: year, month, day, hour, minute, second.
  400. You can pass the output from :ref:`get_datetime_from_unix_time<class_OS_get_datetime_from_unix_time>` directly into this function. Daylight savings time (dst), if present, is ignored.
  401. .. _class_OS_get_user_data_dir:
  402. - :ref:`String<class_string>` **get_user_data_dir** **(** **)** const
  403. Returns the absolute directory path where user data is written (``user://``).
  404. On Linux, this is ``~/.local/share/godot/app_userdata/[project_name]``, or ``~/.local/share/[custom_name]`` if ``use_custom_user_dir`` is set.
  405. On macOS, this is ``~/Library/Application Support/Godot/app_userdata/[project_name]``, or ``~/Library/Application Support/[custom_name]`` if ``use_custom_user_dir`` is set.
  406. On Windows, this is ``%APPDATA%/Godot/app_userdata/[project_name]``, or ``%APPDATA%/[custom_name]`` if ``use_custom_user_dir`` is set.
  407. If the project name is empty, ``user://`` falls back to ``res://``.
  408. .. _class_OS_get_virtual_keyboard_height:
  409. - :ref:`int<class_int>` **get_virtual_keyboard_height** **(** **)**
  410. .. _class_OS_has_environment:
  411. - :ref:`bool<class_bool>` **has_environment** **(** :ref:`String<class_string>` environment **)** const
  412. Returns ``true`` if an environment variable exists.
  413. .. _class_OS_has_feature:
  414. - :ref:`bool<class_bool>` **has_feature** **(** :ref:`String<class_string>` tag_name **)** const
  415. .. _class_OS_has_touchscreen_ui_hint:
  416. - :ref:`bool<class_bool>` **has_touchscreen_ui_hint** **(** **)** const
  417. Returns ``true`` if the device has a touchscreen or emulates one.
  418. .. _class_OS_has_virtual_keyboard:
  419. - :ref:`bool<class_bool>` **has_virtual_keyboard** **(** **)** const
  420. Returns ``true`` if the platform has a virtual keyboard, ``false`` otherwise.
  421. .. _class_OS_hide_virtual_keyboard:
  422. - void **hide_virtual_keyboard** **(** **)**
  423. Hides the virtual keyboard if it is shown, does nothing otherwise.
  424. .. _class_OS_is_debug_build:
  425. - :ref:`bool<class_bool>` **is_debug_build** **(** **)** const
  426. Returns ``true`` if the build is a debug build.
  427. Returns ``true`` when running in the editor.
  428. Returns ``false`` if the build is a release build.
  429. .. _class_OS_is_ok_left_and_cancel_right:
  430. - :ref:`bool<class_bool>` **is_ok_left_and_cancel_right** **(** **)** const
  431. Returns ``true`` if the "Okay" button should appear on the left and "Cancel" on the right.
  432. .. _class_OS_is_scancode_unicode:
  433. - :ref:`bool<class_bool>` **is_scancode_unicode** **(** :ref:`int<class_int>` code **)** const
  434. Returns ``true`` if the input code has a unicode character.
  435. .. _class_OS_is_stdout_verbose:
  436. - :ref:`bool<class_bool>` **is_stdout_verbose** **(** **)** const
  437. Returns ``true`` if the engine was executed with -v (verbose stdout).
  438. .. _class_OS_is_userfs_persistent:
  439. - :ref:`bool<class_bool>` **is_userfs_persistent** **(** **)** const
  440. If ``true``, the ``user://`` file system is persistent, so that its state is the same after a player quits and starts the game again. Relevant to the HTML5 platform, where this persistence may be unavailable.
  441. .. _class_OS_is_window_always_on_top:
  442. - :ref:`bool<class_bool>` **is_window_always_on_top** **(** **)** const
  443. .. _class_OS_kill:
  444. - :ref:`int<class_int>` **kill** **(** :ref:`int<class_int>` pid **)**
  445. Kill a process ID (this method can be used to kill processes that were not spawned by the game).
  446. .. _class_OS_native_video_is_playing:
  447. - :ref:`bool<class_bool>` **native_video_is_playing** **(** **)**
  448. Returns ``true`` if native video is playing.
  449. .. _class_OS_native_video_pause:
  450. - void **native_video_pause** **(** **)**
  451. Pauses native video playback.
  452. .. _class_OS_native_video_play:
  453. - :ref:`int<class_int>` **native_video_play** **(** :ref:`String<class_string>` path, :ref:`float<class_float>` volume, :ref:`String<class_string>` audio_track, :ref:`String<class_string>` subtitle_track **)**
  454. Plays native video from the specified path, at the given volume and with audio and subtitle tracks.
  455. .. _class_OS_native_video_stop:
  456. - void **native_video_stop** **(** **)**
  457. Stops native video playback.
  458. .. _class_OS_native_video_unpause:
  459. - void **native_video_unpause** **(** **)**
  460. Resumes native video playback.
  461. .. _class_OS_print_all_resources:
  462. - void **print_all_resources** **(** :ref:`String<class_string>` tofile="" **)**
  463. Shows all resources in the game. Optionally the list can be written to a file.
  464. .. _class_OS_print_all_textures_by_size:
  465. - void **print_all_textures_by_size** **(** **)**
  466. Shows the list of loaded textures sorted by size in memory.
  467. .. _class_OS_print_resources_by_type:
  468. - void **print_resources_by_type** **(** :ref:`PoolStringArray<class_poolstringarray>` types **)**
  469. Shows the number of resources loaded by the game of the given types.
  470. .. _class_OS_print_resources_in_use:
  471. - void **print_resources_in_use** **(** :ref:`bool<class_bool>` short=false **)**
  472. Shows all resources currently used by the game.
  473. .. _class_OS_request_attention:
  474. - void **request_attention** **(** **)**
  475. Request the user attention to the window. It'll flash the taskbar button on Windows or bounce the dock icon on OSX.
  476. .. _class_OS_set_icon:
  477. - void **set_icon** **(** :ref:`Image<class_image>` icon **)**
  478. Sets the game's icon.
  479. .. _class_OS_set_ime_position:
  480. - void **set_ime_position** **(** :ref:`Vector2<class_vector2>` position **)**
  481. .. _class_OS_set_thread_name:
  482. - :ref:`int<class_int>` **set_thread_name** **(** :ref:`String<class_string>` name **)**
  483. Sets the name of the current thread.
  484. .. _class_OS_set_use_file_access_save_and_swap:
  485. - void **set_use_file_access_save_and_swap** **(** :ref:`bool<class_bool>` enabled **)**
  486. Enables backup saves if ``enabled`` is ``true``.
  487. .. _class_OS_set_window_always_on_top:
  488. - void **set_window_always_on_top** **(** :ref:`bool<class_bool>` enabled **)**
  489. .. _class_OS_set_window_title:
  490. - void **set_window_title** **(** :ref:`String<class_string>` title **)**
  491. Sets the window title to the specified string.
  492. .. _class_OS_shell_open:
  493. - :ref:`int<class_int>` **shell_open** **(** :ref:`String<class_string>` uri **)**
  494. Requests the OS to open a resource with the most appropriate program. For example.
  495. ``OS.shell_open("C:\\Users\name\Downloads")`` on Windows opens the file explorer at the downloads folders of the user.
  496. ``OS.shell_open("http://godotengine.org")`` opens the default web browser on the official Godot website.
  497. .. _class_OS_show_virtual_keyboard:
  498. - void **show_virtual_keyboard** **(** :ref:`String<class_string>` existing_text="" **)**
  499. Shows the virtual keyboard if the platform has one. The *existing_text* parameter is useful for implementing your own LineEdit, as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions).