koffi 0.9.6 → 0.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (997) hide show
  1. package/LICENSE.txt +661 -0
  2. package/README.md +195 -162
  3. package/package.json +36 -19
  4. package/src/call.hh +28 -27
  5. package/src/call_arm32.cc +498 -514
  6. package/src/call_arm32_fwd.S +108 -108
  7. package/src/call_arm64.cc +482 -497
  8. package/src/call_arm64_fwd.S +110 -110
  9. package/src/call_x64_sysv.cc +463 -477
  10. package/src/call_x64_sysv_fwd.S +131 -131
  11. package/src/call_x64_win.cc +240 -243
  12. package/src/call_x64_win_fwd.asm +105 -105
  13. package/src/call_x86.cc +246 -259
  14. package/src/call_x86_fwd.S +48 -48
  15. package/src/call_x86_fwd.asm +50 -50
  16. package/src/ffi.cc +506 -504
  17. package/src/ffi.hh +142 -136
  18. package/src/util.cc +330 -297
  19. package/src/util.hh +164 -80
  20. package/test/qemu/.gitkeep +0 -0
  21. package/test/registry/machines.json +112 -0
  22. package/test/registry/sha256sum.txt +21 -0
  23. package/test/test.js +493 -0
  24. package/vendor/dragonbox/include/dragonbox/dragonbox.h +2674 -2674
  25. package/vendor/dragonbox/subproject/test/results/binary32.csv +255 -255
  26. package/vendor/dragonbox/subproject/test/results/binary64.csv +2047 -2047
  27. package/vendor/libcc/libcc.cc +7669 -7651
  28. package/vendor/libcc/libcc.hh +4334 -4312
  29. package/vendor/node-addon-api/CHANGELOG.md +859 -859
  30. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +4 -4
  31. package/vendor/node-addon-api/CONTRIBUTING.md +93 -93
  32. package/vendor/node-addon-api/LICENSE.md +12 -12
  33. package/vendor/node-addon-api/README.md +293 -293
  34. package/vendor/node-addon-api/appveyor.yml +37 -37
  35. package/vendor/node-addon-api/benchmark/README.md +47 -47
  36. package/vendor/node-addon-api/benchmark/binding.gyp +25 -25
  37. package/vendor/node-addon-api/benchmark/function_args.cc +217 -217
  38. package/vendor/node-addon-api/benchmark/function_args.js +60 -60
  39. package/vendor/node-addon-api/benchmark/index.js +34 -34
  40. package/vendor/node-addon-api/benchmark/property_descriptor.cc +91 -91
  41. package/vendor/node-addon-api/benchmark/property_descriptor.js +37 -37
  42. package/vendor/node-addon-api/common.gypi +21 -21
  43. package/vendor/node-addon-api/doc/addon.md +163 -163
  44. package/vendor/node-addon-api/doc/array.md +81 -81
  45. package/vendor/node-addon-api/doc/array_buffer.md +155 -155
  46. package/vendor/node-addon-api/doc/async_context.md +86 -86
  47. package/vendor/node-addon-api/doc/async_operations.md +31 -31
  48. package/vendor/node-addon-api/doc/async_worker.md +427 -427
  49. package/vendor/node-addon-api/doc/async_worker_variants.md +557 -557
  50. package/vendor/node-addon-api/doc/bigint.md +97 -97
  51. package/vendor/node-addon-api/doc/boolean.md +68 -68
  52. package/vendor/node-addon-api/doc/buffer.md +150 -150
  53. package/vendor/node-addon-api/doc/callback_scope.md +54 -54
  54. package/vendor/node-addon-api/doc/callbackinfo.md +97 -97
  55. package/vendor/node-addon-api/doc/checker-tool.md +32 -32
  56. package/vendor/node-addon-api/doc/class_property_descriptor.md +115 -115
  57. package/vendor/node-addon-api/doc/cmake-js.md +68 -68
  58. package/vendor/node-addon-api/doc/conversion-tool.md +27 -27
  59. package/vendor/node-addon-api/doc/creating_a_release.md +62 -62
  60. package/vendor/node-addon-api/doc/dataview.md +248 -248
  61. package/vendor/node-addon-api/doc/date.md +68 -68
  62. package/vendor/node-addon-api/doc/env.md +196 -196
  63. package/vendor/node-addon-api/doc/error.md +120 -120
  64. package/vendor/node-addon-api/doc/error_handling.md +254 -254
  65. package/vendor/node-addon-api/doc/escapable_handle_scope.md +80 -80
  66. package/vendor/node-addon-api/doc/external.md +63 -63
  67. package/vendor/node-addon-api/doc/function.md +402 -402
  68. package/vendor/node-addon-api/doc/function_reference.md +238 -238
  69. package/vendor/node-addon-api/doc/generator.md +13 -13
  70. package/vendor/node-addon-api/doc/handle_scope.md +63 -63
  71. package/vendor/node-addon-api/doc/hierarchy.md +91 -91
  72. package/vendor/node-addon-api/doc/instance_wrap.md +408 -408
  73. package/vendor/node-addon-api/doc/maybe.md +76 -76
  74. package/vendor/node-addon-api/doc/memory_management.md +27 -27
  75. package/vendor/node-addon-api/doc/name.md +29 -29
  76. package/vendor/node-addon-api/doc/node-gyp.md +82 -82
  77. package/vendor/node-addon-api/doc/number.md +163 -163
  78. package/vendor/node-addon-api/doc/object.md +432 -432
  79. package/vendor/node-addon-api/doc/object_lifetime_management.md +83 -83
  80. package/vendor/node-addon-api/doc/object_reference.md +117 -117
  81. package/vendor/node-addon-api/doc/object_wrap.md +561 -561
  82. package/vendor/node-addon-api/doc/prebuild_tools.md +16 -16
  83. package/vendor/node-addon-api/doc/promises.md +79 -79
  84. package/vendor/node-addon-api/doc/property_descriptor.md +286 -286
  85. package/vendor/node-addon-api/doc/propertylvalue.md +50 -50
  86. package/vendor/node-addon-api/doc/range_error.md +59 -59
  87. package/vendor/node-addon-api/doc/reference.md +113 -113
  88. package/vendor/node-addon-api/doc/setup.md +110 -110
  89. package/vendor/node-addon-api/doc/string.md +93 -93
  90. package/vendor/node-addon-api/doc/symbol.md +60 -60
  91. package/vendor/node-addon-api/doc/threadsafe.md +121 -121
  92. package/vendor/node-addon-api/doc/threadsafe_function.md +290 -290
  93. package/vendor/node-addon-api/doc/type_error.md +59 -59
  94. package/vendor/node-addon-api/doc/typed_array.md +78 -78
  95. package/vendor/node-addon-api/doc/typed_array_of.md +137 -137
  96. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +306 -306
  97. package/vendor/node-addon-api/doc/value.md +340 -340
  98. package/vendor/node-addon-api/doc/version_management.md +43 -43
  99. package/vendor/node-addon-api/except.gypi +25 -25
  100. package/vendor/node-addon-api/index.js +11 -11
  101. package/vendor/node-addon-api/napi-inl.deprecated.h +192 -192
  102. package/vendor/node-addon-api/napi-inl.h +6209 -6209
  103. package/vendor/node-addon-api/napi.h +2983 -2983
  104. package/vendor/node-addon-api/node_api.gyp +9 -9
  105. package/vendor/node-addon-api/noexcept.gypi +26 -26
  106. package/vendor/node-addon-api/package-support.json +21 -21
  107. package/vendor/node-addon-api/package.json +399 -399
  108. package/vendor/node-addon-api/test/README.md +91 -91
  109. package/vendor/node-addon-api/test/addon.cc +36 -36
  110. package/vendor/node-addon-api/test/addon.js +11 -11
  111. package/vendor/node-addon-api/test/addon_build/index.js +49 -49
  112. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +17 -17
  113. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +62 -62
  114. package/vendor/node-addon-api/test/addon_build/tpl/index.js +9 -9
  115. package/vendor/node-addon-api/test/addon_build/tpl/package.json +11 -11
  116. package/vendor/node-addon-api/test/addon_data.cc +99 -99
  117. package/vendor/node-addon-api/test/addon_data.js +46 -46
  118. package/vendor/node-addon-api/test/array_buffer.cc +243 -243
  119. package/vendor/node-addon-api/test/array_buffer.js +69 -69
  120. package/vendor/node-addon-api/test/async_context.cc +21 -21
  121. package/vendor/node-addon-api/test/async_context.js +86 -86
  122. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +83 -83
  123. package/vendor/node-addon-api/test/async_progress_queue_worker.js +46 -46
  124. package/vendor/node-addon-api/test/async_progress_worker.cc +134 -134
  125. package/vendor/node-addon-api/test/async_progress_worker.js +61 -61
  126. package/vendor/node-addon-api/test/async_worker.cc +106 -106
  127. package/vendor/node-addon-api/test/async_worker.js +179 -179
  128. package/vendor/node-addon-api/test/async_worker_nocallback.js +13 -13
  129. package/vendor/node-addon-api/test/async_worker_persistent.cc +63 -63
  130. package/vendor/node-addon-api/test/async_worker_persistent.js +24 -24
  131. package/vendor/node-addon-api/test/basic_types/array.cc +40 -40
  132. package/vendor/node-addon-api/test/basic_types/array.js +35 -35
  133. package/vendor/node-addon-api/test/basic_types/boolean.cc +38 -38
  134. package/vendor/node-addon-api/test/basic_types/boolean.js +35 -35
  135. package/vendor/node-addon-api/test/basic_types/number.cc +99 -99
  136. package/vendor/node-addon-api/test/basic_types/number.js +114 -114
  137. package/vendor/node-addon-api/test/basic_types/value.cc +120 -120
  138. package/vendor/node-addon-api/test/basic_types/value.js +133 -133
  139. package/vendor/node-addon-api/test/bigint.cc +91 -91
  140. package/vendor/node-addon-api/test/bigint.js +53 -53
  141. package/vendor/node-addon-api/test/binding-swallowexcept.cc +12 -12
  142. package/vendor/node-addon-api/test/binding.cc +171 -171
  143. package/vendor/node-addon-api/test/binding.gyp +117 -117
  144. package/vendor/node-addon-api/test/buffer.cc +183 -183
  145. package/vendor/node-addon-api/test/buffer.js +69 -69
  146. package/vendor/node-addon-api/test/callbackscope.cc +22 -22
  147. package/vendor/node-addon-api/test/callbackscope.js +49 -49
  148. package/vendor/node-addon-api/test/common/index.js +113 -113
  149. package/vendor/node-addon-api/test/common/test_helper.h +61 -61
  150. package/vendor/node-addon-api/test/dataview/dataview.cc +48 -48
  151. package/vendor/node-addon-api/test/dataview/dataview.js +35 -35
  152. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +115 -115
  153. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +90 -90
  154. package/vendor/node-addon-api/test/date.cc +44 -44
  155. package/vendor/node-addon-api/test/date.js +18 -18
  156. package/vendor/node-addon-api/test/env_cleanup.cc +88 -88
  157. package/vendor/node-addon-api/test/env_cleanup.js +56 -56
  158. package/vendor/node-addon-api/test/error.cc +287 -287
  159. package/vendor/node-addon-api/test/error.js +81 -81
  160. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +13 -13
  161. package/vendor/node-addon-api/test/error_handling_for_primitives.js +29 -29
  162. package/vendor/node-addon-api/test/error_terminating_environment.js +94 -94
  163. package/vendor/node-addon-api/test/external.cc +81 -81
  164. package/vendor/node-addon-api/test/external.js +88 -88
  165. package/vendor/node-addon-api/test/function.cc +295 -295
  166. package/vendor/node-addon-api/test/function.js +121 -121
  167. package/vendor/node-addon-api/test/function_reference.cc +202 -202
  168. package/vendor/node-addon-api/test/function_reference.js +157 -157
  169. package/vendor/node-addon-api/test/globalObject/global_object.cc +61 -61
  170. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +31 -31
  171. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +61 -61
  172. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +40 -40
  173. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +57 -57
  174. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +28 -28
  175. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +48 -48
  176. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +30 -30
  177. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +58 -58
  178. package/vendor/node-addon-api/test/handlescope.cc +60 -60
  179. package/vendor/node-addon-api/test/handlescope.js +14 -14
  180. package/vendor/node-addon-api/test/index.js +136 -136
  181. package/vendor/node-addon-api/test/maybe/check.cc +23 -23
  182. package/vendor/node-addon-api/test/maybe/index.js +38 -38
  183. package/vendor/node-addon-api/test/memory_management.cc +17 -17
  184. package/vendor/node-addon-api/test/memory_management.js +9 -9
  185. package/vendor/node-addon-api/test/movable_callbacks.cc +23 -23
  186. package/vendor/node-addon-api/test/movable_callbacks.js +21 -21
  187. package/vendor/node-addon-api/test/name.cc +108 -108
  188. package/vendor/node-addon-api/test/name.js +59 -59
  189. package/vendor/node-addon-api/test/napi_child.js +14 -14
  190. package/vendor/node-addon-api/test/object/delete_property.cc +38 -38
  191. package/vendor/node-addon-api/test/object/delete_property.js +41 -41
  192. package/vendor/node-addon-api/test/object/finalizer.cc +29 -29
  193. package/vendor/node-addon-api/test/object/finalizer.js +28 -28
  194. package/vendor/node-addon-api/test/object/get_property.cc +34 -34
  195. package/vendor/node-addon-api/test/object/get_property.js +40 -40
  196. package/vendor/node-addon-api/test/object/has_own_property.cc +34 -34
  197. package/vendor/node-addon-api/test/object/has_own_property.js +34 -34
  198. package/vendor/node-addon-api/test/object/has_property.cc +38 -38
  199. package/vendor/node-addon-api/test/object/has_property.js +37 -37
  200. package/vendor/node-addon-api/test/object/object.cc +348 -348
  201. package/vendor/node-addon-api/test/object/object.js +217 -217
  202. package/vendor/node-addon-api/test/object/object_deprecated.cc +66 -66
  203. package/vendor/node-addon-api/test/object/object_deprecated.js +47 -47
  204. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +25 -25
  205. package/vendor/node-addon-api/test/object/object_freeze_seal.js +61 -61
  206. package/vendor/node-addon-api/test/object/set_property.cc +37 -37
  207. package/vendor/node-addon-api/test/object/set_property.js +29 -29
  208. package/vendor/node-addon-api/test/object/subscript_operator.cc +42 -42
  209. package/vendor/node-addon-api/test/object/subscript_operator.js +17 -17
  210. package/vendor/node-addon-api/test/object_reference.cc +219 -219
  211. package/vendor/node-addon-api/test/object_reference.js +259 -259
  212. package/vendor/node-addon-api/test/objectwrap.cc +268 -268
  213. package/vendor/node-addon-api/test/objectwrap.js +284 -284
  214. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +26 -26
  215. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +18 -18
  216. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +30 -30
  217. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +13 -13
  218. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +45 -45
  219. package/vendor/node-addon-api/test/objectwrap_removewrap.js +40 -40
  220. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +19 -19
  221. package/vendor/node-addon-api/test/promise.cc +29 -29
  222. package/vendor/node-addon-api/test/promise.js +18 -18
  223. package/vendor/node-addon-api/test/reference.cc +24 -24
  224. package/vendor/node-addon-api/test/reference.js +14 -14
  225. package/vendor/node-addon-api/test/run_script.cc +56 -56
  226. package/vendor/node-addon-api/test/run_script.js +45 -45
  227. package/vendor/node-addon-api/test/symbol.cc +79 -79
  228. package/vendor/node-addon-api/test/symbol.js +73 -73
  229. package/vendor/node-addon-api/test/testUtil.js +54 -54
  230. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +195 -195
  231. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +188 -188
  232. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +63 -63
  233. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +12 -12
  234. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +115 -115
  235. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +14 -14
  236. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +26 -26
  237. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +7 -7
  238. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +225 -225
  239. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +59 -59
  240. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +42 -42
  241. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +53 -53
  242. package/vendor/node-addon-api/test/thunking_manual.cc +140 -140
  243. package/vendor/node-addon-api/test/thunking_manual.js +17 -17
  244. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +215 -215
  245. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +188 -188
  246. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +68 -68
  247. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +12 -12
  248. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +127 -127
  249. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +14 -14
  250. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +28 -28
  251. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +7 -7
  252. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +237 -237
  253. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +59 -59
  254. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +53 -53
  255. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +53 -53
  256. package/vendor/node-addon-api/test/typedarray-bigint.js +58 -58
  257. package/vendor/node-addon-api/test/typedarray.cc +216 -216
  258. package/vendor/node-addon-api/test/typedarray.js +69 -69
  259. package/vendor/node-addon-api/test/version_management.cc +27 -27
  260. package/vendor/node-addon-api/test/version_management.js +31 -31
  261. package/vendor/node-addon-api/tools/README.md +73 -73
  262. package/vendor/node-addon-api/tools/check-napi.js +100 -100
  263. package/vendor/node-addon-api/tools/clang-format.js +68 -68
  264. package/vendor/node-addon-api/tools/conversion.js +309 -309
  265. package/vendor/node-addon-api/tools/eslint-format.js +71 -71
  266. package/vendor/raylib/BINDINGS.md +123 -0
  267. package/vendor/raylib/CHANGELOG +1495 -0
  268. package/vendor/raylib/CMakeLists.txt +33 -0
  269. package/vendor/raylib/CMakeOptions.txt +87 -0
  270. package/vendor/raylib/CONTRIBUTING.md +76 -0
  271. package/vendor/raylib/CONTRIBUTORS.md +63 -0
  272. package/vendor/raylib/CONVENTIONS.md +95 -0
  273. package/vendor/raylib/HISTORY.md +364 -0
  274. package/vendor/raylib/LICENSE +16 -0
  275. package/vendor/raylib/README.md +141 -0
  276. package/vendor/raylib/ROADMAP.md +76 -0
  277. package/vendor/raylib/SPONSORS.md +68 -0
  278. package/vendor/raylib/cmake/AddIfFlagCompiles.cmake +12 -0
  279. package/vendor/raylib/cmake/BuildOptions.cmake +18 -0
  280. package/vendor/raylib/cmake/CompileDefinitions.cmake +110 -0
  281. package/vendor/raylib/cmake/CompilerFlags.cmake +79 -0
  282. package/vendor/raylib/cmake/EnumOption.cmake +9 -0
  283. package/vendor/raylib/cmake/GlfwImport.cmake +34 -0
  284. package/vendor/raylib/cmake/InstallConfigurations.cmake +29 -0
  285. package/vendor/raylib/cmake/JoinPaths.cmake +26 -0
  286. package/vendor/raylib/cmake/LibraryConfigurations.cmake +108 -0
  287. package/vendor/raylib/cmake/LibraryPathToLinkerFlags.cmake +24 -0
  288. package/vendor/raylib/cmake/PackConfigurations.cmake +13 -0
  289. package/vendor/raylib/cmake/PopulateConfigVariablesLocally.cmake +11 -0
  290. package/vendor/raylib/cmake/raylib-config-version.cmake +21 -0
  291. package/vendor/raylib/cmake/raylib-config.cmake +76 -0
  292. package/vendor/raylib/examples/CMakeLists.txt +139 -0
  293. package/vendor/raylib/examples/Makefile +565 -0
  294. package/vendor/raylib/examples/Makefile.Android +405 -0
  295. package/vendor/raylib/examples/Makefile.Web +1053 -0
  296. package/vendor/raylib/examples/README.md +203 -0
  297. package/vendor/raylib/examples/audio/audio_module_playing.c +146 -0
  298. package/vendor/raylib/examples/audio/audio_module_playing.png +0 -0
  299. package/vendor/raylib/examples/audio/audio_multichannel_sound.c +73 -0
  300. package/vendor/raylib/examples/audio/audio_multichannel_sound.png +0 -0
  301. package/vendor/raylib/examples/audio/audio_music_stream.c +93 -0
  302. package/vendor/raylib/examples/audio/audio_music_stream.png +0 -0
  303. package/vendor/raylib/examples/audio/audio_raw_stream.c +167 -0
  304. package/vendor/raylib/examples/audio/audio_raw_stream.png +0 -0
  305. package/vendor/raylib/examples/audio/audio_sound_loading.c +64 -0
  306. package/vendor/raylib/examples/audio/audio_sound_loading.png +0 -0
  307. package/vendor/raylib/examples/audio/resources/LICENSE.md +10 -0
  308. package/vendor/raylib/examples/audio/resources/coin.wav +0 -0
  309. package/vendor/raylib/examples/audio/resources/country.mp3 +0 -0
  310. package/vendor/raylib/examples/audio/resources/mini1111.xm +0 -0
  311. package/vendor/raylib/examples/audio/resources/sound.wav +0 -0
  312. package/vendor/raylib/examples/audio/resources/spring.wav +0 -0
  313. package/vendor/raylib/examples/audio/resources/target.flac +0 -0
  314. package/vendor/raylib/examples/audio/resources/target.ogg +0 -0
  315. package/vendor/raylib/examples/audio/resources/weird.wav +0 -0
  316. package/vendor/raylib/examples/build.zig +86 -0
  317. package/vendor/raylib/examples/core/core_2d_camera.c +132 -0
  318. package/vendor/raylib/examples/core/core_2d_camera.png +0 -0
  319. package/vendor/raylib/examples/core/core_2d_camera_platformer.c +293 -0
  320. package/vendor/raylib/examples/core/core_2d_camera_platformer.png +0 -0
  321. package/vendor/raylib/examples/core/core_2d_camera_smooth_pixelperfect.png +0 -0
  322. package/vendor/raylib/examples/core/core_3d_camera_first_person.c +97 -0
  323. package/vendor/raylib/examples/core/core_3d_camera_first_person.png +0 -0
  324. package/vendor/raylib/examples/core/core_3d_camera_free.c +83 -0
  325. package/vendor/raylib/examples/core/core_3d_camera_free.png +0 -0
  326. package/vendor/raylib/examples/core/core_3d_camera_mode.c +73 -0
  327. package/vendor/raylib/examples/core/core_3d_camera_mode.png +0 -0
  328. package/vendor/raylib/examples/core/core_3d_picking.c +107 -0
  329. package/vendor/raylib/examples/core/core_3d_picking.png +0 -0
  330. package/vendor/raylib/examples/core/core_basic_screen_manager.c +150 -0
  331. package/vendor/raylib/examples/core/core_basic_screen_manager.png +0 -0
  332. package/vendor/raylib/examples/core/core_basic_window.c +62 -0
  333. package/vendor/raylib/examples/core/core_basic_window.png +0 -0
  334. package/vendor/raylib/examples/core/core_basic_window_web.c +85 -0
  335. package/vendor/raylib/examples/core/core_custom_frame_control.c +125 -0
  336. package/vendor/raylib/examples/core/core_custom_frame_control.png +0 -0
  337. package/vendor/raylib/examples/core/core_custom_logging.c +84 -0
  338. package/vendor/raylib/examples/core/core_custom_logging.png +0 -0
  339. package/vendor/raylib/examples/core/core_drop_files.c +76 -0
  340. package/vendor/raylib/examples/core/core_drop_files.png +0 -0
  341. package/vendor/raylib/examples/core/core_input_gamepad.c +195 -0
  342. package/vendor/raylib/examples/core/core_input_gamepad.png +0 -0
  343. package/vendor/raylib/examples/core/core_input_gestures.c +115 -0
  344. package/vendor/raylib/examples/core/core_input_gestures.png +0 -0
  345. package/vendor/raylib/examples/core/core_input_keys.c +59 -0
  346. package/vendor/raylib/examples/core/core_input_keys.png +0 -0
  347. package/vendor/raylib/examples/core/core_input_mouse.c +65 -0
  348. package/vendor/raylib/examples/core/core_input_mouse.png +0 -0
  349. package/vendor/raylib/examples/core/core_input_mouse_wheel.c +58 -0
  350. package/vendor/raylib/examples/core/core_input_mouse_wheel.png +0 -0
  351. package/vendor/raylib/examples/core/core_input_multitouch.c +70 -0
  352. package/vendor/raylib/examples/core/core_input_multitouch.png +0 -0
  353. package/vendor/raylib/examples/core/core_loading_thread.c +147 -0
  354. package/vendor/raylib/examples/core/core_loading_thread.png +0 -0
  355. package/vendor/raylib/examples/core/core_quat_conversion.c +132 -0
  356. package/vendor/raylib/examples/core/core_quat_conversion.png +0 -0
  357. package/vendor/raylib/examples/core/core_random_values.c +67 -0
  358. package/vendor/raylib/examples/core/core_random_values.png +0 -0
  359. package/vendor/raylib/examples/core/core_scissor_test.c +71 -0
  360. package/vendor/raylib/examples/core/core_scissor_test.png +0 -0
  361. package/vendor/raylib/examples/core/core_smooth_pixelperfect.c +117 -0
  362. package/vendor/raylib/examples/core/core_smooth_pixelperfect.png +0 -0
  363. package/vendor/raylib/examples/core/core_split_screen.c +155 -0
  364. package/vendor/raylib/examples/core/core_split_screen.png +0 -0
  365. package/vendor/raylib/examples/core/core_storage_values.c +87 -0
  366. package/vendor/raylib/examples/core/core_storage_values.png +0 -0
  367. package/vendor/raylib/examples/core/core_vr_simulator.c +143 -0
  368. package/vendor/raylib/examples/core/core_vr_simulator.png +0 -0
  369. package/vendor/raylib/examples/core/core_window_flags.c +191 -0
  370. package/vendor/raylib/examples/core/core_window_flags.png +0 -0
  371. package/vendor/raylib/examples/core/core_window_letterbox.c +112 -0
  372. package/vendor/raylib/examples/core/core_window_letterbox.png +0 -0
  373. package/vendor/raylib/examples/core/core_world_screen.c +78 -0
  374. package/vendor/raylib/examples/core/core_world_screen.png +0 -0
  375. package/vendor/raylib/examples/core/resources/LICENSE.md +4 -0
  376. package/vendor/raylib/examples/core/resources/distortion100.fs +52 -0
  377. package/vendor/raylib/examples/core/resources/distortion330.fs +53 -0
  378. package/vendor/raylib/examples/core/resources/ps3.png +0 -0
  379. package/vendor/raylib/examples/core/resources/xbox.png +0 -0
  380. package/vendor/raylib/examples/examples_template.c +100 -0
  381. package/vendor/raylib/examples/models/models_animation.c +114 -0
  382. package/vendor/raylib/examples/models/models_animation.png +0 -0
  383. package/vendor/raylib/examples/models/models_billboard.c +75 -0
  384. package/vendor/raylib/examples/models/models_billboard.png +0 -0
  385. package/vendor/raylib/examples/models/models_box_collisions.c +121 -0
  386. package/vendor/raylib/examples/models/models_box_collisions.png +0 -0
  387. package/vendor/raylib/examples/models/models_cubicmap.c +87 -0
  388. package/vendor/raylib/examples/models/models_cubicmap.png +0 -0
  389. package/vendor/raylib/examples/models/models_first_person_maze.c +122 -0
  390. package/vendor/raylib/examples/models/models_first_person_maze.png +0 -0
  391. package/vendor/raylib/examples/models/models_geometric_shapes.c +80 -0
  392. package/vendor/raylib/examples/models/models_geometric_shapes.png +0 -0
  393. package/vendor/raylib/examples/models/models_heightmap.c +82 -0
  394. package/vendor/raylib/examples/models/models_heightmap.png +0 -0
  395. package/vendor/raylib/examples/models/models_loading.c +146 -0
  396. package/vendor/raylib/examples/models/models_loading.png +0 -0
  397. package/vendor/raylib/examples/models/models_loading_gltf.c +105 -0
  398. package/vendor/raylib/examples/models/models_loading_gltf.png +0 -0
  399. package/vendor/raylib/examples/models/models_loading_vox.c +130 -0
  400. package/vendor/raylib/examples/models/models_loading_vox.png +0 -0
  401. package/vendor/raylib/examples/models/models_mesh_generation.c +179 -0
  402. package/vendor/raylib/examples/models/models_mesh_generation.png +0 -0
  403. package/vendor/raylib/examples/models/models_mesh_picking.c +223 -0
  404. package/vendor/raylib/examples/models/models_mesh_picking.png +0 -0
  405. package/vendor/raylib/examples/models/models_orthographic_projection.c +99 -0
  406. package/vendor/raylib/examples/models/models_orthographic_projection.png +0 -0
  407. package/vendor/raylib/examples/models/models_rlgl_solar_system.c +172 -0
  408. package/vendor/raylib/examples/models/models_rlgl_solar_system.png +0 -0
  409. package/vendor/raylib/examples/models/models_skybox.c +262 -0
  410. package/vendor/raylib/examples/models/models_skybox.png +0 -0
  411. package/vendor/raylib/examples/models/models_waving_cubes.c +112 -0
  412. package/vendor/raylib/examples/models/models_waving_cubes.png +0 -0
  413. package/vendor/raylib/examples/models/models_yaw_pitch_roll.c +117 -0
  414. package/vendor/raylib/examples/models/models_yaw_pitch_roll.png +0 -0
  415. package/vendor/raylib/examples/models/resources/LICENSE.md +23 -0
  416. package/vendor/raylib/examples/models/resources/billboard.png +0 -0
  417. package/vendor/raylib/examples/models/resources/cubicmap.png +0 -0
  418. package/vendor/raylib/examples/models/resources/cubicmap_atlas.png +0 -0
  419. package/vendor/raylib/examples/models/resources/dresden_square_1k.hdr +0 -0
  420. package/vendor/raylib/examples/models/resources/dresden_square_2k.hdr +0 -0
  421. package/vendor/raylib/examples/models/resources/heightmap.png +0 -0
  422. package/vendor/raylib/examples/models/resources/models/gltf/AnimatedMorphCube.glb +0 -0
  423. package/vendor/raylib/examples/models/resources/models/gltf/AnimatedTriangle.gltf +118 -0
  424. package/vendor/raylib/examples/models/resources/models/gltf/BoxAnimated.glb +0 -0
  425. package/vendor/raylib/examples/models/resources/models/gltf/LICENSE +23 -0
  426. package/vendor/raylib/examples/models/resources/models/gltf/girl.glb +0 -0
  427. package/vendor/raylib/examples/models/resources/models/gltf/raylib_32x32.glb +0 -0
  428. package/vendor/raylib/examples/models/resources/models/gltf/rigged_figure.glb +0 -0
  429. package/vendor/raylib/examples/models/resources/models/gltf/vertex_colored_object.glb +0 -0
  430. package/vendor/raylib/examples/models/resources/models/iqm/guy.blend +0 -0
  431. package/vendor/raylib/examples/models/resources/models/iqm/guy.iqm +0 -0
  432. package/vendor/raylib/examples/models/resources/models/iqm/guyanim.iqm +0 -0
  433. package/vendor/raylib/examples/models/resources/models/iqm/guytex.png +0 -0
  434. package/vendor/raylib/examples/models/resources/models/iqm/vertex_colored_object.iqm +0 -0
  435. package/vendor/raylib/examples/models/resources/models/obj/bridge.obj +1725 -0
  436. package/vendor/raylib/examples/models/resources/models/obj/bridge_diffuse.png +0 -0
  437. package/vendor/raylib/examples/models/resources/models/obj/castle.obj +12919 -0
  438. package/vendor/raylib/examples/models/resources/models/obj/castle_diffuse.png +0 -0
  439. package/vendor/raylib/examples/models/resources/models/obj/cube.obj +68 -0
  440. package/vendor/raylib/examples/models/resources/models/obj/cube_diffuse.png +0 -0
  441. package/vendor/raylib/examples/models/resources/models/obj/house.obj +4564 -0
  442. package/vendor/raylib/examples/models/resources/models/obj/house_diffuse.png +0 -0
  443. package/vendor/raylib/examples/models/resources/models/obj/market.obj +7301 -0
  444. package/vendor/raylib/examples/models/resources/models/obj/market_diffuse.png +0 -0
  445. package/vendor/raylib/examples/models/resources/models/obj/plane.obj +10858 -0
  446. package/vendor/raylib/examples/models/resources/models/obj/plane_diffuse.png +0 -0
  447. package/vendor/raylib/examples/models/resources/models/obj/turret.obj +1888 -0
  448. package/vendor/raylib/examples/models/resources/models/obj/turret_diffuse.png +0 -0
  449. package/vendor/raylib/examples/models/resources/models/obj/well.obj +1030 -0
  450. package/vendor/raylib/examples/models/resources/models/obj/well_diffuse.png +0 -0
  451. package/vendor/raylib/examples/models/resources/models/vox/LICENSE +9 -0
  452. package/vendor/raylib/examples/models/resources/models/vox/chr_knight.vox +0 -0
  453. package/vendor/raylib/examples/models/resources/models/vox/chr_sword.vox +0 -0
  454. package/vendor/raylib/examples/models/resources/models/vox/monu9.vox +0 -0
  455. package/vendor/raylib/examples/models/resources/shaders/glsl100/cubemap.fs +29 -0
  456. package/vendor/raylib/examples/models/resources/shaders/glsl100/cubemap.vs +20 -0
  457. package/vendor/raylib/examples/models/resources/shaders/glsl100/skybox.fs +31 -0
  458. package/vendor/raylib/examples/models/resources/shaders/glsl100/skybox.vs +24 -0
  459. package/vendor/raylib/examples/models/resources/shaders/glsl330/cubemap.fs +30 -0
  460. package/vendor/raylib/examples/models/resources/shaders/glsl330/cubemap.vs +20 -0
  461. package/vendor/raylib/examples/models/resources/shaders/glsl330/skybox.fs +30 -0
  462. package/vendor/raylib/examples/models/resources/shaders/glsl330/skybox.vs +24 -0
  463. package/vendor/raylib/examples/models/resources/skybox.png +0 -0
  464. package/vendor/raylib/examples/models/rlights.h +183 -0
  465. package/vendor/raylib/examples/others/easings.h +263 -0
  466. package/vendor/raylib/examples/others/easings_testbed.c +227 -0
  467. package/vendor/raylib/examples/others/embedded_files_loading.c +103 -0
  468. package/vendor/raylib/examples/others/external/include/GLFW/glfw3.h +5538 -0
  469. package/vendor/raylib/examples/others/external/include/GLFW/glfw3native.h +572 -0
  470. package/vendor/raylib/examples/others/external/include/glad.h +5466 -0
  471. package/vendor/raylib/examples/others/external/lib/libglfw3.a +0 -0
  472. package/vendor/raylib/examples/others/raudio_standalone.c +152 -0
  473. package/vendor/raylib/examples/others/raylib_opengl_interop.c +152 -0
  474. package/vendor/raylib/examples/others/raylib_opengl_interop.png +0 -0
  475. package/vendor/raylib/examples/others/resources/audio/country.mp3 +0 -0
  476. package/vendor/raylib/examples/others/resources/audio/target.ogg +0 -0
  477. package/vendor/raylib/examples/others/resources/audio/weird.wav +0 -0
  478. package/vendor/raylib/examples/others/resources/audio_data.h +4893 -0
  479. package/vendor/raylib/examples/others/resources/image_data.h +9848 -0
  480. package/vendor/raylib/examples/others/resources/shaders/glsl100/point_particle.fs +16 -0
  481. package/vendor/raylib/examples/others/resources/shaders/glsl100/point_particle.vs +24 -0
  482. package/vendor/raylib/examples/others/resources/shaders/glsl330/point_particle.fs +17 -0
  483. package/vendor/raylib/examples/others/resources/shaders/glsl330/point_particle.vs +24 -0
  484. package/vendor/raylib/examples/others/resources/shaders/glsl430/gol.glsl +41 -0
  485. package/vendor/raylib/examples/others/resources/shaders/glsl430/gol_render.glsl +29 -0
  486. package/vendor/raylib/examples/others/resources/shaders/glsl430/gol_transfert.glsl +51 -0
  487. package/vendor/raylib/examples/others/rlgl_compute_shader.c +173 -0
  488. package/vendor/raylib/examples/others/rlgl_standalone.c +469 -0
  489. package/vendor/raylib/examples/physics/physics_demo.c +128 -0
  490. package/vendor/raylib/examples/physics/physics_demo.png +0 -0
  491. package/vendor/raylib/examples/physics/physics_friction.c +142 -0
  492. package/vendor/raylib/examples/physics/physics_friction.png +0 -0
  493. package/vendor/raylib/examples/physics/physics_movement.c +128 -0
  494. package/vendor/raylib/examples/physics/physics_movement.png +0 -0
  495. package/vendor/raylib/examples/physics/physics_restitution.c +129 -0
  496. package/vendor/raylib/examples/physics/physics_restitution.png +0 -0
  497. package/vendor/raylib/examples/physics/physics_shatter.c +111 -0
  498. package/vendor/raylib/examples/physics/physics_shatter.png +0 -0
  499. package/vendor/raylib/examples/raylib_compile_execute.bat +32 -0
  500. package/vendor/raylib/examples/raylib_makefile_example.bat +27 -0
  501. package/vendor/raylib/examples/shaders/resources/LICENSE.md +11 -0
  502. package/vendor/raylib/examples/shaders/resources/fudesumi.png +0 -0
  503. package/vendor/raylib/examples/shaders/resources/mask.png +0 -0
  504. package/vendor/raylib/examples/shaders/resources/models/barracks.obj +22251 -0
  505. package/vendor/raylib/examples/shaders/resources/models/barracks_diffuse.png +0 -0
  506. package/vendor/raylib/examples/shaders/resources/models/church.obj +5116 -0
  507. package/vendor/raylib/examples/shaders/resources/models/church_diffuse.png +0 -0
  508. package/vendor/raylib/examples/shaders/resources/models/watermill.obj +5316 -0
  509. package/vendor/raylib/examples/shaders/resources/models/watermill_diffuse.png +0 -0
  510. package/vendor/raylib/examples/shaders/resources/plasma.png +0 -0
  511. package/vendor/raylib/examples/shaders/resources/raysan.png +0 -0
  512. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/base.fs +23 -0
  513. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/base.vs +26 -0
  514. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/base_lighting.vs +59 -0
  515. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/base_lighting_instanced.vs +36 -0
  516. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/bloom.fs +39 -0
  517. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/blur.fs +34 -0
  518. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/color_mix.fs +26 -0
  519. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/cross_hatching.fs +47 -0
  520. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/cross_stitching.fs +57 -0
  521. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/cubes_panning.fs +60 -0
  522. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/depth.fs +26 -0
  523. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/distortion.fs +54 -0
  524. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/dream_vision.fs +37 -0
  525. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/eratosthenes.fs +60 -0
  526. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/fisheye.fs +43 -0
  527. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/fog.fs +94 -0
  528. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/grayscale.fs +25 -0
  529. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/julia_set.fs +83 -0
  530. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/lighting.fs +81 -0
  531. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/mask.fs +24 -0
  532. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/outline.fs +34 -0
  533. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/palette_switch.fs +41 -0
  534. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/pixelizer.fs +32 -0
  535. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/posterization.fs +29 -0
  536. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/predator.fs +31 -0
  537. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/raymarching.fs +431 -0
  538. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/reload.fs +39 -0
  539. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/scanlines.fs +44 -0
  540. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/sobel.fs +40 -0
  541. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/spotlight.fs +77 -0
  542. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/swirl.fs +46 -0
  543. package/vendor/raylib/examples/shaders/resources/shaders/glsl100/wave.fs +36 -0
  544. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/base.fs +22 -0
  545. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/base.vs +26 -0
  546. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/base_lighting.vs +59 -0
  547. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/bloom.fs +37 -0
  548. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/blur.fs +32 -0
  549. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/cross_hatching.fs +45 -0
  550. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/cross_stitching.fs +55 -0
  551. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/distortion.fs +52 -0
  552. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/dream_vision.fs +35 -0
  553. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/fisheye.fs +41 -0
  554. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/fog.fs +92 -0
  555. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/grayscale.fs +23 -0
  556. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/palette_switch.fs +27 -0
  557. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/pixelizer.fs +30 -0
  558. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/posterization.fs +27 -0
  559. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/predator.fs +29 -0
  560. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/scanlines.fs +42 -0
  561. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/sobel.fs +38 -0
  562. package/vendor/raylib/examples/shaders/resources/shaders/glsl120/swirl.fs +44 -0
  563. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/base.fs +25 -0
  564. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/base.vs +26 -0
  565. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/base_lighting.vs +32 -0
  566. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/base_lighting_instanced.vs +36 -0
  567. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/bloom.fs +40 -0
  568. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/blur.fs +35 -0
  569. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/color_mix.fs +27 -0
  570. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/cross_hatching.fs +48 -0
  571. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/cross_stitching.fs +59 -0
  572. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/cubes_panning.fs +61 -0
  573. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/depth.fs +27 -0
  574. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/distortion.fs +56 -0
  575. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/dream_vision.fs +34 -0
  576. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/eratosthenes.fs +59 -0
  577. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/fisheye.fs +40 -0
  578. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/fog.fs +95 -0
  579. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/grayscale.fs +26 -0
  580. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/julia_set.fs +81 -0
  581. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/lighting.fs +82 -0
  582. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/mask.fs +22 -0
  583. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/outline.fs +35 -0
  584. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/overdraw.fs +26 -0
  585. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/palette_switch.fs +30 -0
  586. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/pixelizer.fs +33 -0
  587. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/posterization.fs +31 -0
  588. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/predator.fs +32 -0
  589. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/raymarching.fs +430 -0
  590. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/reload.fs +40 -0
  591. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/scanlines.fs +49 -0
  592. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/sobel.fs +41 -0
  593. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/spotlight.fs +65 -0
  594. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/swirl.fs +47 -0
  595. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/wave.fs +37 -0
  596. package/vendor/raylib/examples/shaders/resources/space.png +0 -0
  597. package/vendor/raylib/examples/shaders/resources/texel_checker.png +0 -0
  598. package/vendor/raylib/examples/shaders/rlights.h +183 -0
  599. package/vendor/raylib/examples/shaders/shaders_basic_lighting.c +152 -0
  600. package/vendor/raylib/examples/shaders/shaders_basic_lighting.png +0 -0
  601. package/vendor/raylib/examples/shaders/shaders_custom_uniform.c +127 -0
  602. package/vendor/raylib/examples/shaders/shaders_custom_uniform.png +0 -0
  603. package/vendor/raylib/examples/shaders/shaders_eratosthenes.c +92 -0
  604. package/vendor/raylib/examples/shaders/shaders_eratosthenes.png +0 -0
  605. package/vendor/raylib/examples/shaders/shaders_fog.c +160 -0
  606. package/vendor/raylib/examples/shaders/shaders_fog.png +0 -0
  607. package/vendor/raylib/examples/shaders/shaders_hot_reloading.c +130 -0
  608. package/vendor/raylib/examples/shaders/shaders_hot_reloading.png +0 -0
  609. package/vendor/raylib/examples/shaders/shaders_julia_set.c +191 -0
  610. package/vendor/raylib/examples/shaders/shaders_julia_set.png +0 -0
  611. package/vendor/raylib/examples/shaders/shaders_mesh_instancing.c +224 -0
  612. package/vendor/raylib/examples/shaders/shaders_mesh_instancing.png +0 -0
  613. package/vendor/raylib/examples/shaders/shaders_model_shader.c +103 -0
  614. package/vendor/raylib/examples/shaders/shaders_model_shader.png +0 -0
  615. package/vendor/raylib/examples/shaders/shaders_multi_sample2d.c +105 -0
  616. package/vendor/raylib/examples/shaders/shaders_multi_sample2d.png +0 -0
  617. package/vendor/raylib/examples/shaders/shaders_palette_switch.c +147 -0
  618. package/vendor/raylib/examples/shaders/shaders_palette_switch.png +0 -0
  619. package/vendor/raylib/examples/shaders/shaders_postprocessing.c +170 -0
  620. package/vendor/raylib/examples/shaders/shaders_postprocessing.png +0 -0
  621. package/vendor/raylib/examples/shaders/shaders_raymarching.c +113 -0
  622. package/vendor/raylib/examples/shaders/shaders_raymarching.png +0 -0
  623. package/vendor/raylib/examples/shaders/shaders_shapes_textures.c +116 -0
  624. package/vendor/raylib/examples/shaders/shaders_shapes_textures.png +0 -0
  625. package/vendor/raylib/examples/shaders/shaders_simple_mask.c +144 -0
  626. package/vendor/raylib/examples/shaders/shaders_simple_mask.png +0 -0
  627. package/vendor/raylib/examples/shaders/shaders_spotlight.c +254 -0
  628. package/vendor/raylib/examples/shaders/shaders_spotlight.png +0 -0
  629. package/vendor/raylib/examples/shaders/shaders_texture_drawing.c +80 -0
  630. package/vendor/raylib/examples/shaders/shaders_texture_drawing.png +0 -0
  631. package/vendor/raylib/examples/shaders/shaders_texture_outline.c +97 -0
  632. package/vendor/raylib/examples/shaders/shaders_texture_outline.png +0 -0
  633. package/vendor/raylib/examples/shaders/shaders_texture_waves.c +110 -0
  634. package/vendor/raylib/examples/shaders/shaders_texture_waves.png +0 -0
  635. package/vendor/raylib/examples/shapes/shapes_basic_shapes.c +78 -0
  636. package/vendor/raylib/examples/shapes/shapes_basic_shapes.png +0 -0
  637. package/vendor/raylib/examples/shapes/shapes_bouncing_ball.c +76 -0
  638. package/vendor/raylib/examples/shapes/shapes_bouncing_ball.png +0 -0
  639. package/vendor/raylib/examples/shapes/shapes_collision_area.c +108 -0
  640. package/vendor/raylib/examples/shapes/shapes_collision_area.png +0 -0
  641. package/vendor/raylib/examples/shapes/shapes_colors_palette.c +99 -0
  642. package/vendor/raylib/examples/shapes/shapes_colors_palette.png +0 -0
  643. package/vendor/raylib/examples/shapes/shapes_draw_circle_sector.c +83 -0
  644. package/vendor/raylib/examples/shapes/shapes_draw_circle_sector.png +0 -0
  645. package/vendor/raylib/examples/shapes/shapes_draw_rectangle_rounded.c +89 -0
  646. package/vendor/raylib/examples/shapes/shapes_draw_rectangle_rounded.png +0 -0
  647. package/vendor/raylib/examples/shapes/shapes_draw_ring.c +96 -0
  648. package/vendor/raylib/examples/shapes/shapes_draw_ring.png +0 -0
  649. package/vendor/raylib/examples/shapes/shapes_easings_ball_anim.c +110 -0
  650. package/vendor/raylib/examples/shapes/shapes_easings_ball_anim.png +0 -0
  651. package/vendor/raylib/examples/shapes/shapes_easings_box_anim.c +136 -0
  652. package/vendor/raylib/examples/shapes/shapes_easings_box_anim.png +0 -0
  653. package/vendor/raylib/examples/shapes/shapes_easings_rectangle_array.c +118 -0
  654. package/vendor/raylib/examples/shapes/shapes_easings_rectangle_array.png +0 -0
  655. package/vendor/raylib/examples/shapes/shapes_following_eyes.c +104 -0
  656. package/vendor/raylib/examples/shapes/shapes_following_eyes.png +0 -0
  657. package/vendor/raylib/examples/shapes/shapes_lines_bezier.c +59 -0
  658. package/vendor/raylib/examples/shapes/shapes_lines_bezier.png +0 -0
  659. package/vendor/raylib/examples/shapes/shapes_logo_raylib.c +56 -0
  660. package/vendor/raylib/examples/shapes/shapes_logo_raylib.png +0 -0
  661. package/vendor/raylib/examples/shapes/shapes_logo_raylib_anim.c +160 -0
  662. package/vendor/raylib/examples/shapes/shapes_logo_raylib_anim.png +0 -0
  663. package/vendor/raylib/examples/shapes/shapes_rectangle_scaling.c +94 -0
  664. package/vendor/raylib/examples/shapes/shapes_rectangle_scaling.png +0 -0
  665. package/vendor/raylib/examples/text/resources/KAISG.ttf +0 -0
  666. package/vendor/raylib/examples/text/resources/LICENSE.md +20 -0
  667. package/vendor/raylib/examples/text/resources/anonymous_pro_bold.ttf +0 -0
  668. package/vendor/raylib/examples/text/resources/custom_alagard.png +0 -0
  669. package/vendor/raylib/examples/text/resources/custom_jupiter_crash.png +0 -0
  670. package/vendor/raylib/examples/text/resources/custom_mecha.png +0 -0
  671. package/vendor/raylib/examples/text/resources/dejavu.fnt +1115 -0
  672. package/vendor/raylib/examples/text/resources/dejavu.png +0 -0
  673. package/vendor/raylib/examples/text/resources/fonts/alagard.png +0 -0
  674. package/vendor/raylib/examples/text/resources/fonts/alpha_beta.png +0 -0
  675. package/vendor/raylib/examples/text/resources/fonts/jupiter_crash.png +0 -0
  676. package/vendor/raylib/examples/text/resources/fonts/mecha.png +0 -0
  677. package/vendor/raylib/examples/text/resources/fonts/pixantiqua.png +0 -0
  678. package/vendor/raylib/examples/text/resources/fonts/pixelplay.png +0 -0
  679. package/vendor/raylib/examples/text/resources/fonts/romulus.png +0 -0
  680. package/vendor/raylib/examples/text/resources/fonts/setback.png +0 -0
  681. package/vendor/raylib/examples/text/resources/noto_cjk.fnt +580 -0
  682. package/vendor/raylib/examples/text/resources/noto_cjk.png +0 -0
  683. package/vendor/raylib/examples/text/resources/pixantiqua.fnt +188 -0
  684. package/vendor/raylib/examples/text/resources/pixantiqua.png +0 -0
  685. package/vendor/raylib/examples/text/resources/pixantiqua.ttf +0 -0
  686. package/vendor/raylib/examples/text/resources/shaders/glsl100/alpha_discard.fs +20 -0
  687. package/vendor/raylib/examples/text/resources/shaders/glsl100/sdf.fs +25 -0
  688. package/vendor/raylib/examples/text/resources/shaders/glsl330/alpha_discard.fs +19 -0
  689. package/vendor/raylib/examples/text/resources/shaders/glsl330/sdf.fs +26 -0
  690. package/vendor/raylib/examples/text/resources/symbola.fnt +191 -0
  691. package/vendor/raylib/examples/text/resources/symbola.png +0 -0
  692. package/vendor/raylib/examples/text/text_draw_3d.c +739 -0
  693. package/vendor/raylib/examples/text/text_draw_3d.png +0 -0
  694. package/vendor/raylib/examples/text/text_font_filters.c +134 -0
  695. package/vendor/raylib/examples/text/text_font_filters.png +0 -0
  696. package/vendor/raylib/examples/text/text_font_loading.c +91 -0
  697. package/vendor/raylib/examples/text/text_font_loading.png +0 -0
  698. package/vendor/raylib/examples/text/text_font_sdf.c +141 -0
  699. package/vendor/raylib/examples/text/text_font_sdf.png +0 -0
  700. package/vendor/raylib/examples/text/text_font_spritefont.c +85 -0
  701. package/vendor/raylib/examples/text/text_font_spritefont.png +0 -0
  702. package/vendor/raylib/examples/text/text_format_text.c +62 -0
  703. package/vendor/raylib/examples/text/text_format_text.png +0 -0
  704. package/vendor/raylib/examples/text/text_input_box.c +127 -0
  705. package/vendor/raylib/examples/text/text_input_box.png +0 -0
  706. package/vendor/raylib/examples/text/text_raylib_fonts.c +105 -0
  707. package/vendor/raylib/examples/text/text_raylib_fonts.png +0 -0
  708. package/vendor/raylib/examples/text/text_rectangle_bounds.c +264 -0
  709. package/vendor/raylib/examples/text/text_rectangle_bounds.png +0 -0
  710. package/vendor/raylib/examples/text/text_unicode.c +465 -0
  711. package/vendor/raylib/examples/text/text_unicode.png +0 -0
  712. package/vendor/raylib/examples/text/text_writing_anim.c +62 -0
  713. package/vendor/raylib/examples/text/text_writing_anim.png +0 -0
  714. package/vendor/raylib/examples/textures/resources/KAISG.ttf +0 -0
  715. package/vendor/raylib/examples/textures/resources/LICENSE.md +18 -0
  716. package/vendor/raylib/examples/textures/resources/boom.wav +0 -0
  717. package/vendor/raylib/examples/textures/resources/button.png +0 -0
  718. package/vendor/raylib/examples/textures/resources/buttonfx.wav +0 -0
  719. package/vendor/raylib/examples/textures/resources/cat.png +0 -0
  720. package/vendor/raylib/examples/textures/resources/custom_jupiter_crash.png +0 -0
  721. package/vendor/raylib/examples/textures/resources/cyberpunk_street_background.png +0 -0
  722. package/vendor/raylib/examples/textures/resources/cyberpunk_street_foreground.png +0 -0
  723. package/vendor/raylib/examples/textures/resources/cyberpunk_street_midground.png +0 -0
  724. package/vendor/raylib/examples/textures/resources/explosion.png +0 -0
  725. package/vendor/raylib/examples/textures/resources/fudesumi.png +0 -0
  726. package/vendor/raylib/examples/textures/resources/fudesumi.raw +0 -0
  727. package/vendor/raylib/examples/textures/resources/ninepatch_button.png +0 -0
  728. package/vendor/raylib/examples/textures/resources/parrots.png +0 -0
  729. package/vendor/raylib/examples/textures/resources/patterns.png +0 -0
  730. package/vendor/raylib/examples/textures/resources/raylib_logo.png +0 -0
  731. package/vendor/raylib/examples/textures/resources/scarfy.png +0 -0
  732. package/vendor/raylib/examples/textures/resources/spark_flame.png +0 -0
  733. package/vendor/raylib/examples/textures/resources/wabbit_alpha.png +0 -0
  734. package/vendor/raylib/examples/textures/textures_background_scrolling.c +87 -0
  735. package/vendor/raylib/examples/textures/textures_background_scrolling.png +0 -0
  736. package/vendor/raylib/examples/textures/textures_blend_modes.c +93 -0
  737. package/vendor/raylib/examples/textures/textures_blend_modes.png +0 -0
  738. package/vendor/raylib/examples/textures/textures_bunnymark.c +120 -0
  739. package/vendor/raylib/examples/textures/textures_bunnymark.png +0 -0
  740. package/vendor/raylib/examples/textures/textures_draw_tiled.c +165 -0
  741. package/vendor/raylib/examples/textures/textures_draw_tiled.png +0 -0
  742. package/vendor/raylib/examples/textures/textures_image_drawing.c +91 -0
  743. package/vendor/raylib/examples/textures/textures_image_drawing.png +0 -0
  744. package/vendor/raylib/examples/textures/textures_image_generation.c +102 -0
  745. package/vendor/raylib/examples/textures/textures_image_generation.png +0 -0
  746. package/vendor/raylib/examples/textures/textures_image_loading.c +64 -0
  747. package/vendor/raylib/examples/textures/textures_image_loading.png +0 -0
  748. package/vendor/raylib/examples/textures/textures_image_processing.c +169 -0
  749. package/vendor/raylib/examples/textures/textures_image_processing.png +0 -0
  750. package/vendor/raylib/examples/textures/textures_image_text.c +83 -0
  751. package/vendor/raylib/examples/textures/textures_image_text.png +0 -0
  752. package/vendor/raylib/examples/textures/textures_logo_raylib.c +57 -0
  753. package/vendor/raylib/examples/textures/textures_logo_raylib.png +0 -0
  754. package/vendor/raylib/examples/textures/textures_mouse_painting.c +221 -0
  755. package/vendor/raylib/examples/textures/textures_mouse_painting.png +0 -0
  756. package/vendor/raylib/examples/textures/textures_npatch_drawing.c +109 -0
  757. package/vendor/raylib/examples/textures/textures_npatch_drawing.png +0 -0
  758. package/vendor/raylib/examples/textures/textures_particles_blending.c +135 -0
  759. package/vendor/raylib/examples/textures/textures_particles_blending.png +0 -0
  760. package/vendor/raylib/examples/textures/textures_polygon.c +100 -0
  761. package/vendor/raylib/examples/textures/textures_polygon.png +0 -0
  762. package/vendor/raylib/examples/textures/textures_raw_data.c +99 -0
  763. package/vendor/raylib/examples/textures/textures_raw_data.png +0 -0
  764. package/vendor/raylib/examples/textures/textures_rectangle.c +99 -0
  765. package/vendor/raylib/examples/textures/textures_rectangle.png +0 -0
  766. package/vendor/raylib/examples/textures/textures_sprite_button.c +97 -0
  767. package/vendor/raylib/examples/textures/textures_sprite_button.png +0 -0
  768. package/vendor/raylib/examples/textures/textures_sprite_explosion.c +120 -0
  769. package/vendor/raylib/examples/textures/textures_sprite_explosion.png +0 -0
  770. package/vendor/raylib/examples/textures/textures_srcrec_dstrec.c +82 -0
  771. package/vendor/raylib/examples/textures/textures_srcrec_dstrec.png +0 -0
  772. package/vendor/raylib/examples/textures/textures_to_image.c +68 -0
  773. package/vendor/raylib/examples/textures/textures_to_image.png +0 -0
  774. package/vendor/raylib/logo/raylib.ico +0 -0
  775. package/vendor/raylib/logo/raylib_128x128.png +0 -0
  776. package/vendor/raylib/logo/raylib_144x144.png +0 -0
  777. package/vendor/raylib/logo/raylib_16x16.png +0 -0
  778. package/vendor/raylib/logo/raylib_180x180.png +0 -0
  779. package/vendor/raylib/logo/raylib_24x24.png +0 -0
  780. package/vendor/raylib/logo/raylib_256x256.png +0 -0
  781. package/vendor/raylib/logo/raylib_32x32.png +0 -0
  782. package/vendor/raylib/logo/raylib_36x36.png +0 -0
  783. package/vendor/raylib/logo/raylib_48x48.png +0 -0
  784. package/vendor/raylib/logo/raylib_512x512.png +0 -0
  785. package/vendor/raylib/logo/raylib_64x64.png +0 -0
  786. package/vendor/raylib/logo/raylib_72x72.png +0 -0
  787. package/vendor/raylib/logo/raylib_96x96.png +0 -0
  788. package/vendor/raylib/logo/raylib_logo_animation.gif +0 -0
  789. package/vendor/raylib/parser/LICENSE +16 -0
  790. package/vendor/raylib/parser/README.md +63 -0
  791. package/vendor/raylib/parser/raylib_api.json +6668 -0
  792. package/vendor/raylib/parser/raylib_api.txt +3568 -0
  793. package/vendor/raylib/parser/raylib_api.xml +2509 -0
  794. package/vendor/raylib/parser/raylib_parser.c +1003 -0
  795. package/vendor/raylib/projects/4coder/Makefile +401 -0
  796. package/vendor/raylib/projects/4coder/Makefile.Android +300 -0
  797. package/vendor/raylib/projects/4coder/main.c +39 -0
  798. package/vendor/raylib/projects/4coder/project.4coder +54 -0
  799. package/vendor/raylib/projects/Builder/README.md +24 -0
  800. package/vendor/raylib/projects/Builder/examples/README.md +1 -0
  801. package/vendor/raylib/projects/Builder/examples/meson.build +25 -0
  802. package/vendor/raylib/projects/Builder/meson.build +25 -0
  803. package/vendor/raylib/projects/CMake/CMakeLists.txt +44 -0
  804. package/vendor/raylib/projects/CMake/core_basic_window.c +62 -0
  805. package/vendor/raylib/projects/CodeBlocks/README.md +22 -0
  806. package/vendor/raylib/projects/CodeBlocks/compiler_settings.png +0 -0
  807. package/vendor/raylib/projects/CodeBlocks/core_basic_window.c +58 -0
  808. package/vendor/raylib/projects/CodeBlocks/core_basic_window.cbp +137 -0
  809. package/vendor/raylib/projects/Geany/core_basic_window.c +52 -0
  810. package/vendor/raylib/projects/Geany/raylib.c.tags +452 -0
  811. package/vendor/raylib/projects/Geany/raylib_compile_execute.bat +21 -0
  812. package/vendor/raylib/projects/Geany/raylib_compile_sources.bat +42 -0
  813. package/vendor/raylib/projects/Geany/raylib_project.geany +41 -0
  814. package/vendor/raylib/projects/Notepad++/README.md +19 -0
  815. package/vendor/raylib/projects/Notepad++/c_raylib.xml +3104 -0
  816. package/vendor/raylib/projects/Notepad++/npes_saved_mingw.txt +0 -0
  817. package/vendor/raylib/projects/Notepad++/npes_saved_tcc.txt +0 -0
  818. package/vendor/raylib/projects/Notepad++/npes_saved_w64devkit.txt +0 -0
  819. package/vendor/raylib/projects/Notepad++/npes_saved_zig.txt +0 -0
  820. package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_npp.xml +3060 -0
  821. package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_npp_parser.c +150 -0
  822. package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h +631 -0
  823. package/vendor/raylib/projects/README.md +18 -0
  824. package/vendor/raylib/projects/SublimeText/README.md +13 -0
  825. package/vendor/raylib/projects/SublimeText/raylib.sublime-build +13 -0
  826. package/vendor/raylib/projects/SublimeText/raylib.sublime-project +8 -0
  827. package/vendor/raylib/projects/VS2019/raylib/raylib.rc +0 -0
  828. package/vendor/raylib/projects/VS2019/raylib/resource.h +14 -0
  829. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/android_native_app_glue.c +437 -0
  830. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/android_native_app_glue.h +344 -0
  831. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/main.c +64 -0
  832. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.Packaging/AndroidManifest.xml +22 -0
  833. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.Packaging/build.xml +90 -0
  834. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.Packaging/project.properties +3 -0
  835. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.Packaging/raylib_android.Packaging.androidproj +134 -0
  836. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.Packaging/res/values/strings.xml +4 -0
  837. package/vendor/raylib/projects/VSCode/.vscode/c_cpp_properties.json +63 -0
  838. package/vendor/raylib/projects/VSCode/.vscode/launch.json +60 -0
  839. package/vendor/raylib/projects/VSCode/.vscode/settings.json +11 -0
  840. package/vendor/raylib/projects/VSCode/.vscode/tasks.json +71 -0
  841. package/vendor/raylib/projects/VSCode/Makefile +408 -0
  842. package/vendor/raylib/projects/VSCode/Makefile.Android +300 -0
  843. package/vendor/raylib/projects/VSCode/main.c +83 -0
  844. package/vendor/raylib/projects/VSCode/main.code-workspace +16 -0
  845. package/vendor/raylib/projects/scripts/README.md +68 -0
  846. package/vendor/raylib/projects/scripts/build-linux.sh +169 -0
  847. package/vendor/raylib/projects/scripts/build-osx.sh +171 -0
  848. package/vendor/raylib/projects/scripts/build-rpi.sh +169 -0
  849. package/vendor/raylib/projects/scripts/build-windows.bat +219 -0
  850. package/vendor/raylib/projects/scripts/core_basic_window.c +61 -0
  851. package/vendor/raylib/raylib.pc.in +13 -0
  852. package/vendor/raylib/src/CMakeLists.txt +121 -0
  853. package/vendor/raylib/src/Makefile +696 -0
  854. package/vendor/raylib/src/build.zig +60 -0
  855. package/vendor/raylib/src/config.h +230 -0
  856. package/vendor/raylib/src/external/cgltf.h +6501 -0
  857. package/vendor/raylib/src/external/dirent.h +183 -0
  858. package/vendor/raylib/src/external/dr_flac.h +12269 -0
  859. package/vendor/raylib/src/external/dr_mp3.h +4787 -0
  860. package/vendor/raylib/src/external/dr_wav.h +8019 -0
  861. package/vendor/raylib/src/external/glad.h +8640 -0
  862. package/vendor/raylib/src/external/glfw/.mailmap +10 -0
  863. package/vendor/raylib/src/external/glfw/CMake/GenerateMappings.cmake +33 -0
  864. package/vendor/raylib/src/external/glfw/CMake/Info.plist.in +38 -0
  865. package/vendor/raylib/src/external/glfw/CMake/MacOSXBundleInfo.plist.in +38 -0
  866. package/vendor/raylib/src/external/glfw/CMake/cmake_uninstall.cmake.in +29 -0
  867. package/vendor/raylib/src/external/glfw/CMake/glfw3.pc.in +13 -0
  868. package/vendor/raylib/src/external/glfw/CMake/glfw3Config.cmake.in +3 -0
  869. package/vendor/raylib/src/external/glfw/CMake/i686-w64-mingw32-clang.cmake +13 -0
  870. package/vendor/raylib/src/external/glfw/CMake/i686-w64-mingw32.cmake +13 -0
  871. package/vendor/raylib/src/external/glfw/CMake/modules/FindEpollShim.cmake +17 -0
  872. package/vendor/raylib/src/external/glfw/CMake/modules/FindOSMesa.cmake +18 -0
  873. package/vendor/raylib/src/external/glfw/CMake/modules/FindWaylandProtocols.cmake +26 -0
  874. package/vendor/raylib/src/external/glfw/CMake/modules/FindXKBCommon.cmake +34 -0
  875. package/vendor/raylib/src/external/glfw/CMake/x86_64-w64-mingw32-clang.cmake +13 -0
  876. package/vendor/raylib/src/external/glfw/CMake/x86_64-w64-mingw32.cmake +13 -0
  877. package/vendor/raylib/src/external/glfw/CMakeLists.txt +323 -0
  878. package/vendor/raylib/src/external/glfw/LICENSE.md +23 -0
  879. package/vendor/raylib/src/external/glfw/README.md +477 -0
  880. package/vendor/raylib/src/external/glfw/deps/getopt.c +230 -0
  881. package/vendor/raylib/src/external/glfw/deps/getopt.h +57 -0
  882. package/vendor/raylib/src/external/glfw/deps/glad/gl.h +3840 -0
  883. package/vendor/raylib/src/external/glfw/deps/glad/khrplatform.h +282 -0
  884. package/vendor/raylib/src/external/glfw/deps/glad/vk_platform.h +92 -0
  885. package/vendor/raylib/src/external/glfw/deps/glad/vulkan.h +3480 -0
  886. package/vendor/raylib/src/external/glfw/deps/glad_gl.c +1791 -0
  887. package/vendor/raylib/src/external/glfw/deps/glad_vulkan.c +593 -0
  888. package/vendor/raylib/src/external/glfw/deps/mingw/_mingw_dxhelper.h +117 -0
  889. package/vendor/raylib/src/external/glfw/deps/mingw/dinput.h +2467 -0
  890. package/vendor/raylib/src/external/glfw/deps/mingw/xinput.h +239 -0
  891. package/vendor/raylib/src/external/glfw/deps/vs2008/stdint.h +247 -0
  892. package/vendor/raylib/src/external/glfw/include/GLFW/glfw3.h +6075 -0
  893. package/vendor/raylib/src/external/glfw/include/GLFW/glfw3native.h +530 -0
  894. package/vendor/raylib/src/external/glfw/src/CMakeLists.txt +246 -0
  895. package/vendor/raylib/src/external/glfw/src/cocoa_init.m +620 -0
  896. package/vendor/raylib/src/external/glfw/src/cocoa_joystick.h +46 -0
  897. package/vendor/raylib/src/external/glfw/src/cocoa_joystick.m +483 -0
  898. package/vendor/raylib/src/external/glfw/src/cocoa_monitor.m +631 -0
  899. package/vendor/raylib/src/external/glfw/src/cocoa_platform.h +206 -0
  900. package/vendor/raylib/src/external/glfw/src/cocoa_time.c +62 -0
  901. package/vendor/raylib/src/external/glfw/src/cocoa_window.m +1923 -0
  902. package/vendor/raylib/src/external/glfw/src/context.c +756 -0
  903. package/vendor/raylib/src/external/glfw/src/egl_context.c +846 -0
  904. package/vendor/raylib/src/external/glfw/src/egl_context.h +229 -0
  905. package/vendor/raylib/src/external/glfw/src/glfw.rc.in +30 -0
  906. package/vendor/raylib/src/external/glfw/src/glfw_config.h.in +58 -0
  907. package/vendor/raylib/src/external/glfw/src/glx_context.c +699 -0
  908. package/vendor/raylib/src/external/glfw/src/glx_context.h +181 -0
  909. package/vendor/raylib/src/external/glfw/src/init.c +357 -0
  910. package/vendor/raylib/src/external/glfw/src/input.c +1406 -0
  911. package/vendor/raylib/src/external/glfw/src/internal.h +799 -0
  912. package/vendor/raylib/src/external/glfw/src/linux_joystick.c +428 -0
  913. package/vendor/raylib/src/external/glfw/src/linux_joystick.h +59 -0
  914. package/vendor/raylib/src/external/glfw/src/mappings.h +1550 -0
  915. package/vendor/raylib/src/external/glfw/src/mappings.h.in +73 -0
  916. package/vendor/raylib/src/external/glfw/src/monitor.c +542 -0
  917. package/vendor/raylib/src/external/glfw/src/nsgl_context.h +66 -0
  918. package/vendor/raylib/src/external/glfw/src/nsgl_context.m +369 -0
  919. package/vendor/raylib/src/external/glfw/src/null_init.c +57 -0
  920. package/vendor/raylib/src/external/glfw/src/null_joystick.c +53 -0
  921. package/vendor/raylib/src/external/glfw/src/null_joystick.h +31 -0
  922. package/vendor/raylib/src/external/glfw/src/null_monitor.c +159 -0
  923. package/vendor/raylib/src/external/glfw/src/null_platform.h +89 -0
  924. package/vendor/raylib/src/external/glfw/src/null_window.c +670 -0
  925. package/vendor/raylib/src/external/glfw/src/osmesa_context.c +372 -0
  926. package/vendor/raylib/src/external/glfw/src/osmesa_context.h +90 -0
  927. package/vendor/raylib/src/external/glfw/src/posix_thread.c +105 -0
  928. package/vendor/raylib/src/external/glfw/src/posix_thread.h +51 -0
  929. package/vendor/raylib/src/external/glfw/src/posix_time.c +90 -0
  930. package/vendor/raylib/src/external/glfw/src/posix_time.h +44 -0
  931. package/vendor/raylib/src/external/glfw/src/vulkan.c +332 -0
  932. package/vendor/raylib/src/external/glfw/src/wgl_context.c +798 -0
  933. package/vendor/raylib/src/external/glfw/src/wgl_context.h +160 -0
  934. package/vendor/raylib/src/external/glfw/src/win32_init.c +636 -0
  935. package/vendor/raylib/src/external/glfw/src/win32_joystick.c +753 -0
  936. package/vendor/raylib/src/external/glfw/src/win32_joystick.h +53 -0
  937. package/vendor/raylib/src/external/glfw/src/win32_monitor.c +537 -0
  938. package/vendor/raylib/src/external/glfw/src/win32_platform.h +462 -0
  939. package/vendor/raylib/src/external/glfw/src/win32_thread.c +99 -0
  940. package/vendor/raylib/src/external/glfw/src/win32_time.c +76 -0
  941. package/vendor/raylib/src/external/glfw/src/win32_window.c +2405 -0
  942. package/vendor/raylib/src/external/glfw/src/window.c +1114 -0
  943. package/vendor/raylib/src/external/glfw/src/wl_init.c +1310 -0
  944. package/vendor/raylib/src/external/glfw/src/wl_monitor.c +231 -0
  945. package/vendor/raylib/src/external/glfw/src/wl_platform.h +352 -0
  946. package/vendor/raylib/src/external/glfw/src/wl_window.c +1814 -0
  947. package/vendor/raylib/src/external/glfw/src/x11_init.c +1500 -0
  948. package/vendor/raylib/src/external/glfw/src/x11_monitor.c +614 -0
  949. package/vendor/raylib/src/external/glfw/src/x11_platform.h +798 -0
  950. package/vendor/raylib/src/external/glfw/src/x11_window.c +3310 -0
  951. package/vendor/raylib/src/external/glfw/src/xkb_unicode.c +942 -0
  952. package/vendor/raylib/src/external/glfw/src/xkb_unicode.h +28 -0
  953. package/vendor/raylib/src/external/jar_mod.h +1596 -0
  954. package/vendor/raylib/src/external/jar_xm.h +2470 -0
  955. package/vendor/raylib/src/external/miniaudio.h +70273 -0
  956. package/vendor/raylib/src/external/msf_gif.h +717 -0
  957. package/vendor/raylib/src/external/par_shapes.h +2155 -0
  958. package/vendor/raylib/src/external/sdefl.h +696 -0
  959. package/vendor/raylib/src/external/sinfl.h +584 -0
  960. package/vendor/raylib/src/external/stb_image.h +7897 -0
  961. package/vendor/raylib/src/external/stb_image_resize.h +2634 -0
  962. package/vendor/raylib/src/external/stb_image_write.h +1724 -0
  963. package/vendor/raylib/src/external/stb_rect_pack.h +623 -0
  964. package/vendor/raylib/src/external/stb_truetype.h +5077 -0
  965. package/vendor/raylib/src/external/stb_vorbis.h +5475 -0
  966. package/vendor/raylib/src/external/tinyobj_loader_c.h +1589 -0
  967. package/vendor/raylib/src/external/vox_loader.h +710 -0
  968. package/vendor/raylib/src/extras/easings.h +263 -0
  969. package/vendor/raylib/src/extras/physac.h +1977 -0
  970. package/vendor/raylib/src/extras/raygui.h +4342 -0
  971. package/vendor/raylib/src/extras/rmem.h +751 -0
  972. package/vendor/raylib/src/raudio.c +2380 -0
  973. package/vendor/raylib/src/raudio.h +198 -0
  974. package/vendor/raylib/src/raylib.dll.rc +27 -0
  975. package/vendor/raylib/src/raylib.dll.rc.data +0 -0
  976. package/vendor/raylib/src/raylib.h +1536 -0
  977. package/vendor/raylib/src/raylib.ico +0 -0
  978. package/vendor/raylib/src/raylib.rc +27 -0
  979. package/vendor/raylib/src/raylib.rc.data +0 -0
  980. package/vendor/raylib/src/raymath.h +1853 -0
  981. package/vendor/raylib/src/rcamera.h +567 -0
  982. package/vendor/raylib/src/rcore.c +6772 -0
  983. package/vendor/raylib/src/rgestures.h +566 -0
  984. package/vendor/raylib/src/rglfw.c +126 -0
  985. package/vendor/raylib/src/rlgl.h +4677 -0
  986. package/vendor/raylib/src/rmodels.c +5041 -0
  987. package/vendor/raylib/src/rshapes.c +1759 -0
  988. package/vendor/raylib/src/rtext.c +1790 -0
  989. package/vendor/raylib/src/rtextures.c +4761 -0
  990. package/vendor/raylib/src/shell.html +328 -0
  991. package/vendor/raylib/src/utils.c +433 -0
  992. package/vendor/raylib/src/utils.h +81 -0
  993. package/vendor/sqlite3/shell.c +23487 -0
  994. package/vendor/sqlite3/sqlite3.c +239246 -0
  995. package/vendor/sqlite3/sqlite3.h +12802 -0
  996. package/vendor/sqlite3/sqlite3ext.h +689 -0
  997. package/CMakeLists.txt +0 -63
@@ -1,93 +1,93 @@
1
- # String
2
-
3
- Class `Napi::String` inherits from class [`Napi::Name`][].
4
-
5
- ## Constructor
6
-
7
- ```cpp
8
- Napi::String::String();
9
- ```
10
-
11
- Returns a new **empty** `Napi::String` instance.
12
-
13
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
14
- being used, callers should check the result of `Env::IsExceptionPending` before
15
- attempting to use the returned value.
16
-
17
- ```cpp
18
- Napi::String::String(napi_env env, napi_value value); ///< Wraps a Node-API value primitive.
19
- ```
20
- - `[in] env` - The environment in which to create the string.
21
- - `[in] value` - The primitive to wrap.
22
-
23
- Returns a `Napi::String` wrapping a `napi_value`.
24
-
25
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
26
- being used, callers should check the result of `Env::IsExceptionPending` before
27
- attempting to use the returned value.
28
-
29
- ## Operators
30
-
31
- ### operator std::string
32
-
33
- ```cpp
34
- Napi::String::operator std::string() const;
35
- ```
36
-
37
- Returns a UTF-8 encoded C++ string.
38
-
39
- ### operator std::u16string
40
- ```cpp
41
- Napi::String::operator std::u16string() const;
42
- ```
43
-
44
- Returns a UTF-16 encoded C++ string.
45
-
46
- ## Methods
47
-
48
- ### New
49
- ```cpp
50
- Napi::String::New();
51
- ```
52
-
53
- Returns a new empty `Napi::String`.
54
-
55
- ### New
56
- ```cpp
57
- Napi::String::New(napi_env env, const std::string& value);
58
- Napi::String::New(napi_env env, const std::u16::string& value);
59
- Napi::String::New(napi_env env, const char* value);
60
- Napi::String::New(napi_env env, const char16_t* value);
61
- Napi::String::New(napi_env env, const char* value, size_t length);
62
- Napi::String::New(napi_env env, const char16_t* value, size_t length);
63
- ```
64
-
65
- - `[in] env`: The `napi_env` environment in which to construct the `Napi::Value` object.
66
- - `[in] value`: The C++ primitive from which to instantiate the `Napi::Value`. `value` may be any of:
67
- - `std::string&` - represents a UTF8 string.
68
- - `std::u16string&` - represents a UTF16-LE string.
69
- - `const char*` - represents a UTF8 string.
70
- - `const char16_t*` - represents a UTF16-LE string.
71
- - `[in] length`: The length of the string (not necessarily null-terminated) in code units.
72
-
73
- Returns a new `Napi::String` that represents the passed in C++ string.
74
-
75
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
76
- being used, callers should check the result of `Env::IsExceptionPending` before
77
- attempting to use the returned value.
78
-
79
- ### Utf8Value
80
- ```cpp
81
- std::string Napi::String::Utf8Value() const;
82
- ```
83
-
84
- Returns a UTF-8 encoded C++ string.
85
-
86
- ### Utf16Value
87
- ```cpp
88
- std::u16string Napi::String::Utf16Value() const;
89
- ```
90
-
91
- Returns a UTF-16 encoded C++ string.
92
-
93
- [`Napi::Name`]: ./name.md
1
+ # String
2
+
3
+ Class `Napi::String` inherits from class [`Napi::Name`][].
4
+
5
+ ## Constructor
6
+
7
+ ```cpp
8
+ Napi::String::String();
9
+ ```
10
+
11
+ Returns a new **empty** `Napi::String` instance.
12
+
13
+ If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
14
+ being used, callers should check the result of `Env::IsExceptionPending` before
15
+ attempting to use the returned value.
16
+
17
+ ```cpp
18
+ Napi::String::String(napi_env env, napi_value value); ///< Wraps a Node-API value primitive.
19
+ ```
20
+ - `[in] env` - The environment in which to create the string.
21
+ - `[in] value` - The primitive to wrap.
22
+
23
+ Returns a `Napi::String` wrapping a `napi_value`.
24
+
25
+ If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
26
+ being used, callers should check the result of `Env::IsExceptionPending` before
27
+ attempting to use the returned value.
28
+
29
+ ## Operators
30
+
31
+ ### operator std::string
32
+
33
+ ```cpp
34
+ Napi::String::operator std::string() const;
35
+ ```
36
+
37
+ Returns a UTF-8 encoded C++ string.
38
+
39
+ ### operator std::u16string
40
+ ```cpp
41
+ Napi::String::operator std::u16string() const;
42
+ ```
43
+
44
+ Returns a UTF-16 encoded C++ string.
45
+
46
+ ## Methods
47
+
48
+ ### New
49
+ ```cpp
50
+ Napi::String::New();
51
+ ```
52
+
53
+ Returns a new empty `Napi::String`.
54
+
55
+ ### New
56
+ ```cpp
57
+ Napi::String::New(napi_env env, const std::string& value);
58
+ Napi::String::New(napi_env env, const std::u16::string& value);
59
+ Napi::String::New(napi_env env, const char* value);
60
+ Napi::String::New(napi_env env, const char16_t* value);
61
+ Napi::String::New(napi_env env, const char* value, size_t length);
62
+ Napi::String::New(napi_env env, const char16_t* value, size_t length);
63
+ ```
64
+
65
+ - `[in] env`: The `napi_env` environment in which to construct the `Napi::Value` object.
66
+ - `[in] value`: The C++ primitive from which to instantiate the `Napi::Value`. `value` may be any of:
67
+ - `std::string&` - represents a UTF8 string.
68
+ - `std::u16string&` - represents a UTF16-LE string.
69
+ - `const char*` - represents a UTF8 string.
70
+ - `const char16_t*` - represents a UTF16-LE string.
71
+ - `[in] length`: The length of the string (not necessarily null-terminated) in code units.
72
+
73
+ Returns a new `Napi::String` that represents the passed in C++ string.
74
+
75
+ If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
76
+ being used, callers should check the result of `Env::IsExceptionPending` before
77
+ attempting to use the returned value.
78
+
79
+ ### Utf8Value
80
+ ```cpp
81
+ std::string Napi::String::Utf8Value() const;
82
+ ```
83
+
84
+ Returns a UTF-8 encoded C++ string.
85
+
86
+ ### Utf16Value
87
+ ```cpp
88
+ std::u16string Napi::String::Utf16Value() const;
89
+ ```
90
+
91
+ Returns a UTF-16 encoded C++ string.
92
+
93
+ [`Napi::Name`]: ./name.md
@@ -1,61 +1,61 @@
1
- # Symbol
2
-
3
- Class `Napi::Symbol` inherits from class [`Napi::Name`][].
4
-
5
- ## Methods
6
-
7
- ### Constructor
8
-
9
- Instantiates a new `Napi::Symbol` value.
10
-
11
- ```cpp
12
- Napi::Symbol::Symbol();
13
- ```
14
-
15
- Returns a new empty `Napi::Symbol`.
16
-
17
- ### New
18
- ```cpp
19
- Napi::Symbol::New(napi_env env, const std::string& description);
20
- Napi::Symbol::New(napi_env env, const char* description);
21
- Napi::Symbol::New(napi_env env, Napi::String description);
22
- Napi::Symbol::New(napi_env env, napi_value description);
23
- ```
24
-
25
- - `[in] env`: The `napi_env` environment in which to construct the `Napi::Symbol` object.
26
- - `[in] value`: The C++ primitive which represents the description hint for the `Napi::Symbol`.
27
- `description` may be any of:
28
- - `std::string&` - UTF8 string description.
29
- - `const char*` - represents a UTF8 string description.
30
- - `String` - Node addon API String description.
31
- - `napi_value` - Node-API `napi_value` description.
32
-
33
- If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
34
- being used, callers should check the result of `Napi::Env::IsExceptionPending` before
35
- attempting to use the returned value.
36
-
37
- ### WellKnown
38
- ```cpp
39
- static Napi::Symbol Napi::Symbol::WellKnown(napi_env env, const std::string& name);
40
- ```
41
-
42
- - `[in] env`: The `napi_env` environment in which to construct the `Napi::Symbol` object.
43
- - `[in] name`: The C++ string representing the `Napi::Symbol` to retrieve.
44
-
45
- Returns a `Napi::Symbol` representing a well-known `Symbol` from the
46
- `Symbol` registry.
47
-
48
- ### For
49
- ```cpp
50
- static Napi::Symbol Napi::Symbol::For(napi_env env, const std::string& description);
51
- static Napi::Symbol Napi::Symbol::For(napi_env env, const char* description);
52
- static Napi::Symbol Napi::Symbol::For(napi_env env, String description);
53
- static Napi::Symbol Napi::Symbol::For(napi_env env, napi_value description);
54
- ```
55
-
56
- - `[in] env`: The `napi_env` environment in which to construct the `Napi::Symbol` object.
57
- - `[in] description`: The C++ string representing the `Napi::Symbol` in the global registry to retrieve.
58
-
59
- Searches in the global registry for existing symbol with the given name. If the symbol already exist it will be returned, otherwise a new symbol will be created in the registry. It's equivalent to Symbol.for() called from JavaScript.
60
-
1
+ # Symbol
2
+
3
+ Class `Napi::Symbol` inherits from class [`Napi::Name`][].
4
+
5
+ ## Methods
6
+
7
+ ### Constructor
8
+
9
+ Instantiates a new `Napi::Symbol` value.
10
+
11
+ ```cpp
12
+ Napi::Symbol::Symbol();
13
+ ```
14
+
15
+ Returns a new empty `Napi::Symbol`.
16
+
17
+ ### New
18
+ ```cpp
19
+ Napi::Symbol::New(napi_env env, const std::string& description);
20
+ Napi::Symbol::New(napi_env env, const char* description);
21
+ Napi::Symbol::New(napi_env env, Napi::String description);
22
+ Napi::Symbol::New(napi_env env, napi_value description);
23
+ ```
24
+
25
+ - `[in] env`: The `napi_env` environment in which to construct the `Napi::Symbol` object.
26
+ - `[in] value`: The C++ primitive which represents the description hint for the `Napi::Symbol`.
27
+ `description` may be any of:
28
+ - `std::string&` - UTF8 string description.
29
+ - `const char*` - represents a UTF8 string description.
30
+ - `String` - Node addon API String description.
31
+ - `napi_value` - Node-API `napi_value` description.
32
+
33
+ If an error occurs, a `Napi::Error` will get thrown. If C++ exceptions are not
34
+ being used, callers should check the result of `Napi::Env::IsExceptionPending` before
35
+ attempting to use the returned value.
36
+
37
+ ### WellKnown
38
+ ```cpp
39
+ static Napi::Symbol Napi::Symbol::WellKnown(napi_env env, const std::string& name);
40
+ ```
41
+
42
+ - `[in] env`: The `napi_env` environment in which to construct the `Napi::Symbol` object.
43
+ - `[in] name`: The C++ string representing the `Napi::Symbol` to retrieve.
44
+
45
+ Returns a `Napi::Symbol` representing a well-known `Symbol` from the
46
+ `Symbol` registry.
47
+
48
+ ### For
49
+ ```cpp
50
+ static Napi::Symbol Napi::Symbol::For(napi_env env, const std::string& description);
51
+ static Napi::Symbol Napi::Symbol::For(napi_env env, const char* description);
52
+ static Napi::Symbol Napi::Symbol::For(napi_env env, String description);
53
+ static Napi::Symbol Napi::Symbol::For(napi_env env, napi_value description);
54
+ ```
55
+
56
+ - `[in] env`: The `napi_env` environment in which to construct the `Napi::Symbol` object.
57
+ - `[in] description`: The C++ string representing the `Napi::Symbol` in the global registry to retrieve.
58
+
59
+ Searches in the global registry for existing symbol with the given name. If the symbol already exist it will be returned, otherwise a new symbol will be created in the registry. It's equivalent to Symbol.for() called from JavaScript.
60
+
61
61
  [`Napi::Name`]: ./name.md
@@ -1,121 +1,121 @@
1
- # Thread-safe Functions
2
-
3
- JavaScript functions can normally only be called from a native addon's main
4
- thread. If an addon creates additional threads, then node-addon-api functions
5
- that require a `Napi::Env`, `Napi::Value`, or `Napi::Reference` must not be
6
- called from those threads.
7
-
8
- When an addon has additional threads and JavaScript functions need to be invoked
9
- based on the processing completed by those threads, those threads must
10
- communicate with the addon's main thread so that the main thread can invoke the
11
- JavaScript function on their behalf. The thread-safe function APIs provide an
12
- easy way to do this. These APIs provide two types --
13
- [`Napi::ThreadSafeFunction`](threadsafe_function.md) and
14
- [`Napi::TypedThreadSafeFunction`](typed_threadsafe_function.md) -- as well as
15
- APIs to create, destroy, and call objects of this type. The differences between
16
- the two are subtle and are [highlighted below](#implementation-differences).
17
- Regardless of which type you choose, the APIs between the two are similar.
18
-
19
- `Napi::[Typed]ThreadSafeFunction::New()` creates a persistent reference that
20
- holds a JavaScript function which can be called from multiple threads. The calls
21
- happen asynchronously. This means that values with which the JavaScript callback
22
- is to be called will be placed in a queue, and, for each value in the queue, a
23
- call will eventually be made to the JavaScript function.
24
-
25
- `Napi::[Typed]ThreadSafeFunction` objects are destroyed when every thread which
26
- uses the object has called `Release()` or has received a return status of
27
- `napi_closing` in response to a call to `BlockingCall()` or `NonBlockingCall()`.
28
- The queue is emptied before the `Napi::[Typed]ThreadSafeFunction` is destroyed.
29
- It is important that `Release()` be the last API call made in conjunction with a
30
- given `Napi::[Typed]ThreadSafeFunction`, because after the call completes, there
31
- is no guarantee that the `Napi::[Typed]ThreadSafeFunction` is still allocated.
32
- For the same reason it is also important that no more use be made of a
33
- thread-safe function after receiving a return value of `napi_closing` in
34
- response to a call to `BlockingCall()` or `NonBlockingCall()`. Data associated
35
- with the `Napi::[Typed]ThreadSafeFunction` can be freed in its `Finalizer`
36
- callback which was passed to `[Typed]ThreadSafeFunction::New()`.
37
-
38
- Once the number of threads making use of a `Napi::[Typed]ThreadSafeFunction`
39
- reaches zero, no further threads can start making use of it by calling
40
- `Acquire()`. In fact, all subsequent API calls associated with it, except
41
- `Release()`, will return an error value of `napi_closing`.
42
-
43
- ## Implementation Differences
44
-
45
- The choice between `Napi::ThreadSafeFunction` and
46
- `Napi::TypedThreadSafeFunction` depends largely on how you plan to execute your
47
- native C++ code (the "callback") on the Node.js thread.
48
-
49
- ### [`Napi::ThreadSafeFunction`](threadsafe_function.md)
50
-
51
- This API is designed without Node-API 5 native support for [the optional JavaScript
52
- function callback feature](https://github.com/nodejs/node/commit/53297e66cb).
53
-
54
- This API has some dynamic functionality, in that:
55
- - The `[Non]BlockingCall()` methods provide a `Napi::Function` parameter as the
56
- callback to run when processing the data item on the main thread -- the
57
- `CallJs` callback. Since the callback is a parameter, it can be changed for
58
- every call.
59
- - Different C++ data types may be passed with each call of `[Non]BlockingCall()`
60
- to match the specific data type as specified in the `CallJs` callback.
61
-
62
- Note that this functionality comes with some **additional overhead** and
63
- situational **memory leaks**:
64
- - The API acts as a "broker" between the underlying `napi_threadsafe_function`,
65
- and dynamically constructs a wrapper for your callback on the heap for every
66
- call to `[Non]BlockingCall()`.
67
- - In acting in this "broker" fashion, the API will call the underlying "make
68
- call" Node-API method on this packaged item. If the API has determined the
69
- thread-safe function is no longer accessible (eg. all threads have released
70
- yet there are still items on the queue), **the callback passed to
71
- [Non]BlockingCall will not execute**. This means it is impossible to perform
72
- clean-up for calls that never execute their `CallJs` callback. **This may lead
73
- to memory leaks** if you are dynamically allocating memory.
74
- - The `CallJs` does not receive the thread-safe function's context as a
75
- parameter. In order for the callback to access the context, it must have a
76
- reference to either (1) the context directly, or (2) the thread-safe function
77
- to call `GetContext()`. Furthermore, the `GetContext()` method is not
78
- _type-safe_, as the method returns an object that can be "any-casted", instead
79
- of having a static type.
80
-
81
- ### [`Napi::TypedThreadSafeFunction`](typed_threadsafe_function.md)
82
-
83
- The `TypedThreadSafeFunction` class is a new implementation to address the
84
- drawbacks listed above. The API is designed with Node-API 5's support of an
85
- optional function callback. The API will correctly allow developers to pass
86
- `std::nullptr` instead of a `const Function&` for the callback function
87
- specified in `::New`. It also provides helper APIs to _target_ Node-API 4 and
88
- construct a no-op `Function` **or** to target Node-API 5 and "construct" a
89
- `std::nullptr` callback. This allows a single codebase to use the same APIs,
90
- with just a switch of the `NAPI_VERSION` compile-time constant.
91
-
92
- The removal of the dynamic call functionality has the following implications:
93
- - The API does _not_ act as a "broker" compared to the
94
- `Napi::ThreadSafeFunction`. Once Node.js finalizes the thread-safe function,
95
- the `CallJs` callback will execute with an empty `Napi::Env` for any remaining
96
- items on the queue. This provides the ability to handle any necessary cleanup
97
- of the item's data.
98
- - The callback _does_ receive the context as a parameter, so a call to
99
- `GetContext()` is _not_ necessary. This context type is specified as the
100
- **first template argument** specified to `::New`, ensuring type safety.
101
- - The `New()` constructor accepts the `CallJs` callback as the **second type
102
- argument**. The callback must be statically defined for the API to access it.
103
- This affords the ability to statically pass the context as the correct type
104
- across all methods.
105
- - Only one C++ data type may be specified to every call to `[Non]BlockingCall()`
106
- -- the **third template argument** specified to `::New`. Any "dynamic call
107
- data" must be implemented by the user.
108
-
109
-
110
- ### Usage Suggestions
111
-
112
- In summary, it may be best to use `Napi::TypedThreadSafeFunction` if:
113
-
114
- - static, compile-time support for targeting Node-API 4 or 5+ with an optional
115
- JavaScript callback feature is desired;
116
- - the callback can have `static` storage class and will not change across calls
117
- to `[Non]BlockingCall()`;
118
- - cleanup of items' data is required (eg. deleting dynamically-allocated data
119
- that is created at the caller level).
120
-
121
- Otherwise, `Napi::ThreadSafeFunction` may be a better choice.
1
+ # Thread-safe Functions
2
+
3
+ JavaScript functions can normally only be called from a native addon's main
4
+ thread. If an addon creates additional threads, then node-addon-api functions
5
+ that require a `Napi::Env`, `Napi::Value`, or `Napi::Reference` must not be
6
+ called from those threads.
7
+
8
+ When an addon has additional threads and JavaScript functions need to be invoked
9
+ based on the processing completed by those threads, those threads must
10
+ communicate with the addon's main thread so that the main thread can invoke the
11
+ JavaScript function on their behalf. The thread-safe function APIs provide an
12
+ easy way to do this. These APIs provide two types --
13
+ [`Napi::ThreadSafeFunction`](threadsafe_function.md) and
14
+ [`Napi::TypedThreadSafeFunction`](typed_threadsafe_function.md) -- as well as
15
+ APIs to create, destroy, and call objects of this type. The differences between
16
+ the two are subtle and are [highlighted below](#implementation-differences).
17
+ Regardless of which type you choose, the APIs between the two are similar.
18
+
19
+ `Napi::[Typed]ThreadSafeFunction::New()` creates a persistent reference that
20
+ holds a JavaScript function which can be called from multiple threads. The calls
21
+ happen asynchronously. This means that values with which the JavaScript callback
22
+ is to be called will be placed in a queue, and, for each value in the queue, a
23
+ call will eventually be made to the JavaScript function.
24
+
25
+ `Napi::[Typed]ThreadSafeFunction` objects are destroyed when every thread which
26
+ uses the object has called `Release()` or has received a return status of
27
+ `napi_closing` in response to a call to `BlockingCall()` or `NonBlockingCall()`.
28
+ The queue is emptied before the `Napi::[Typed]ThreadSafeFunction` is destroyed.
29
+ It is important that `Release()` be the last API call made in conjunction with a
30
+ given `Napi::[Typed]ThreadSafeFunction`, because after the call completes, there
31
+ is no guarantee that the `Napi::[Typed]ThreadSafeFunction` is still allocated.
32
+ For the same reason it is also important that no more use be made of a
33
+ thread-safe function after receiving a return value of `napi_closing` in
34
+ response to a call to `BlockingCall()` or `NonBlockingCall()`. Data associated
35
+ with the `Napi::[Typed]ThreadSafeFunction` can be freed in its `Finalizer`
36
+ callback which was passed to `[Typed]ThreadSafeFunction::New()`.
37
+
38
+ Once the number of threads making use of a `Napi::[Typed]ThreadSafeFunction`
39
+ reaches zero, no further threads can start making use of it by calling
40
+ `Acquire()`. In fact, all subsequent API calls associated with it, except
41
+ `Release()`, will return an error value of `napi_closing`.
42
+
43
+ ## Implementation Differences
44
+
45
+ The choice between `Napi::ThreadSafeFunction` and
46
+ `Napi::TypedThreadSafeFunction` depends largely on how you plan to execute your
47
+ native C++ code (the "callback") on the Node.js thread.
48
+
49
+ ### [`Napi::ThreadSafeFunction`](threadsafe_function.md)
50
+
51
+ This API is designed without Node-API 5 native support for [the optional JavaScript
52
+ function callback feature](https://github.com/nodejs/node/commit/53297e66cb).
53
+
54
+ This API has some dynamic functionality, in that:
55
+ - The `[Non]BlockingCall()` methods provide a `Napi::Function` parameter as the
56
+ callback to run when processing the data item on the main thread -- the
57
+ `CallJs` callback. Since the callback is a parameter, it can be changed for
58
+ every call.
59
+ - Different C++ data types may be passed with each call of `[Non]BlockingCall()`
60
+ to match the specific data type as specified in the `CallJs` callback.
61
+
62
+ Note that this functionality comes with some **additional overhead** and
63
+ situational **memory leaks**:
64
+ - The API acts as a "broker" between the underlying `napi_threadsafe_function`,
65
+ and dynamically constructs a wrapper for your callback on the heap for every
66
+ call to `[Non]BlockingCall()`.
67
+ - In acting in this "broker" fashion, the API will call the underlying "make
68
+ call" Node-API method on this packaged item. If the API has determined the
69
+ thread-safe function is no longer accessible (eg. all threads have released
70
+ yet there are still items on the queue), **the callback passed to
71
+ [Non]BlockingCall will not execute**. This means it is impossible to perform
72
+ clean-up for calls that never execute their `CallJs` callback. **This may lead
73
+ to memory leaks** if you are dynamically allocating memory.
74
+ - The `CallJs` does not receive the thread-safe function's context as a
75
+ parameter. In order for the callback to access the context, it must have a
76
+ reference to either (1) the context directly, or (2) the thread-safe function
77
+ to call `GetContext()`. Furthermore, the `GetContext()` method is not
78
+ _type-safe_, as the method returns an object that can be "any-casted", instead
79
+ of having a static type.
80
+
81
+ ### [`Napi::TypedThreadSafeFunction`](typed_threadsafe_function.md)
82
+
83
+ The `TypedThreadSafeFunction` class is a new implementation to address the
84
+ drawbacks listed above. The API is designed with Node-API 5's support of an
85
+ optional function callback. The API will correctly allow developers to pass
86
+ `std::nullptr` instead of a `const Function&` for the callback function
87
+ specified in `::New`. It also provides helper APIs to _target_ Node-API 4 and
88
+ construct a no-op `Function` **or** to target Node-API 5 and "construct" a
89
+ `std::nullptr` callback. This allows a single codebase to use the same APIs,
90
+ with just a switch of the `NAPI_VERSION` compile-time constant.
91
+
92
+ The removal of the dynamic call functionality has the following implications:
93
+ - The API does _not_ act as a "broker" compared to the
94
+ `Napi::ThreadSafeFunction`. Once Node.js finalizes the thread-safe function,
95
+ the `CallJs` callback will execute with an empty `Napi::Env` for any remaining
96
+ items on the queue. This provides the ability to handle any necessary cleanup
97
+ of the item's data.
98
+ - The callback _does_ receive the context as a parameter, so a call to
99
+ `GetContext()` is _not_ necessary. This context type is specified as the
100
+ **first template argument** specified to `::New`, ensuring type safety.
101
+ - The `New()` constructor accepts the `CallJs` callback as the **second type
102
+ argument**. The callback must be statically defined for the API to access it.
103
+ This affords the ability to statically pass the context as the correct type
104
+ across all methods.
105
+ - Only one C++ data type may be specified to every call to `[Non]BlockingCall()`
106
+ -- the **third template argument** specified to `::New`. Any "dynamic call
107
+ data" must be implemented by the user.
108
+
109
+
110
+ ### Usage Suggestions
111
+
112
+ In summary, it may be best to use `Napi::TypedThreadSafeFunction` if:
113
+
114
+ - static, compile-time support for targeting Node-API 4 or 5+ with an optional
115
+ JavaScript callback feature is desired;
116
+ - the callback can have `static` storage class and will not change across calls
117
+ to `[Non]BlockingCall()`;
118
+ - cleanup of items' data is required (eg. deleting dynamically-allocated data
119
+ that is created at the caller level).
120
+
121
+ Otherwise, `Napi::ThreadSafeFunction` may be a better choice.