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
@@ -0,0 +1,1596 @@
1
+ // jar_mod.h - v0.01 - public domain C0 - Joshua Reisenauer
2
+ //
3
+ // HISTORY:
4
+ //
5
+ // v0.01 2016-03-12 Setup
6
+ //
7
+ //
8
+ // USAGE:
9
+ //
10
+ // In ONE source file, put:
11
+ //
12
+ // #define JAR_MOD_IMPLEMENTATION
13
+ // #include "jar_mod.h"
14
+ //
15
+ // Other source files should just include jar_mod.h
16
+ //
17
+ // SAMPLE CODE:
18
+ // jar_mod_context_t modctx;
19
+ // short samplebuff[4096];
20
+ // bool bufferFull = false;
21
+ // int intro_load(void)
22
+ // {
23
+ // jar_mod_init(&modctx);
24
+ // jar_mod_load_file(&modctx, "file.mod");
25
+ // return 1;
26
+ // }
27
+ // int intro_unload(void)
28
+ // {
29
+ // jar_mod_unload(&modctx);
30
+ // return 1;
31
+ // }
32
+ // int intro_tick(long counter)
33
+ // {
34
+ // if(!bufferFull)
35
+ // {
36
+ // jar_mod_fillbuffer(&modctx, samplebuff, 4096, 0);
37
+ // bufferFull=true;
38
+ // }
39
+ // if(IsKeyDown(KEY_ENTER))
40
+ // return 1;
41
+ // return 0;
42
+ // }
43
+ //
44
+ //
45
+ // LISCENSE:
46
+ //
47
+ // Written by: Jean-François DEL NERO (http://hxc2001.com/) <Email : jeanfrancoisdelnero <> free.fr>
48
+ // Adapted to jar_mod by: Joshua Adam Reisenauer <kd7tck@gmail.com>
49
+ // This program is free software. It comes without any warranty, to the
50
+ // extent permitted by applicable law. You can redistribute it and/or
51
+ // modify it under the terms of the Do What The Fuck You Want To Public
52
+ // License, Version 2, as published by Sam Hocevar. See
53
+ // http://sam.zoy.org/wtfpl/COPYING for more details.
54
+ ///////////////////////////////////////////////////////////////////////////////////
55
+ // HxCMOD Core API:
56
+ // -------------------------------------------
57
+ // int jar_mod_init(jar_mod_context_t * modctx)
58
+ //
59
+ // - Initialize the jar_mod_context_t buffer. Must be called before doing anything else.
60
+ // Return 1 if success. 0 in case of error.
61
+ // -------------------------------------------
62
+ // mulong jar_mod_load_file(jar_mod_context_t * modctx, const char* filename)
63
+ //
64
+ // - "Load" a MOD from file, context must already be initialized.
65
+ // Return size of file in bytes.
66
+ // -------------------------------------------
67
+ // void jar_mod_fillbuffer( jar_mod_context_t * modctx, short * outbuffer, unsigned long nbsample, jar_mod_tracker_buffer_state * trkbuf )
68
+ //
69
+ // - Generate and return the next samples chunk to outbuffer.
70
+ // nbsample specify the number of stereo 16bits samples you want.
71
+ // The output format is by default signed 48000Hz 16-bit Stereo PCM samples, otherwise it is changed with jar_mod_setcfg().
72
+ // The output buffer size in bytes must be equal to ( nbsample * 2 * channels ).
73
+ // The optional trkbuf parameter can be used to get detailed status of the player. Put NULL/0 is unused.
74
+ // -------------------------------------------
75
+ // void jar_mod_unload( jar_mod_context_t * modctx )
76
+ // - "Unload" / clear the player status.
77
+ // -------------------------------------------
78
+ ///////////////////////////////////////////////////////////////////////////////////
79
+
80
+
81
+ #ifndef INCLUDE_JAR_MOD_H
82
+ #define INCLUDE_JAR_MOD_H
83
+
84
+ // Allow custom memory allocators
85
+ #ifndef JARMOD_MALLOC
86
+ #define JARMOD_MALLOC(sz) malloc(sz)
87
+ #endif
88
+ #ifndef JARMOD_FREE
89
+ #define JARMOD_FREE(p) free(p)
90
+ #endif
91
+
92
+
93
+ // Basic type
94
+ typedef unsigned char muchar;
95
+ typedef unsigned short muint;
96
+ typedef short mint;
97
+ typedef unsigned long mulong;
98
+
99
+ #define NUMMAXCHANNELS 32
100
+ #define MAXNOTES 12*12
101
+ #define DEFAULT_SAMPLE_RATE 48000
102
+ //
103
+ // MOD file structures
104
+ //
105
+
106
+ #pragma pack(1)
107
+
108
+ typedef struct {
109
+ muchar name[22];
110
+ muint length;
111
+ muchar finetune;
112
+ muchar volume;
113
+ muint reppnt;
114
+ muint replen;
115
+ } sample;
116
+
117
+ typedef struct {
118
+ muchar sampperiod;
119
+ muchar period;
120
+ muchar sampeffect;
121
+ muchar effect;
122
+ } note;
123
+
124
+ typedef struct {
125
+ muchar title[20];
126
+ sample samples[31];
127
+ muchar length; // length of tablepos
128
+ muchar protracker;
129
+ muchar patterntable[128];
130
+ muchar signature[4];
131
+ muchar speed;
132
+ } module;
133
+
134
+ #pragma pack()
135
+
136
+ //
137
+ // HxCMod Internal structures
138
+ //
139
+ typedef struct {
140
+ char* sampdata;
141
+ muint sampnum;
142
+ muint length;
143
+ muint reppnt;
144
+ muint replen;
145
+ mulong samppos;
146
+ muint period;
147
+ muchar volume;
148
+ mulong ticks;
149
+ muchar effect;
150
+ muchar parameffect;
151
+ muint effect_code;
152
+ mint decalperiod;
153
+ mint portaspeed;
154
+ mint portaperiod;
155
+ mint vibraperiod;
156
+ mint Arpperiods[3];
157
+ muchar ArpIndex;
158
+ mint oldk;
159
+ muchar volumeslide;
160
+ muchar vibraparam;
161
+ muchar vibrapointeur;
162
+ muchar finetune;
163
+ muchar cut_param;
164
+ muint patternloopcnt;
165
+ muint patternloopstartpoint;
166
+ } channel;
167
+
168
+ typedef struct {
169
+ module song;
170
+ char* sampledata[31];
171
+ note* patterndata[128];
172
+
173
+ mulong playrate;
174
+ muint tablepos;
175
+ muint patternpos;
176
+ muint patterndelay;
177
+ muint jump_loop_effect;
178
+ muchar bpm;
179
+ mulong patternticks;
180
+ mulong patterntickse;
181
+ mulong patternticksaim;
182
+ mulong sampleticksconst;
183
+ mulong samplenb;
184
+ channel channels[NUMMAXCHANNELS];
185
+ muint number_of_channels;
186
+ muint fullperiod[MAXNOTES * 8];
187
+ muint mod_loaded;
188
+ mint last_r_sample;
189
+ mint last_l_sample;
190
+ mint stereo;
191
+ mint stereo_separation;
192
+ mint bits;
193
+ mint filter;
194
+
195
+ muchar *modfile; // the raw mod file
196
+ mulong modfilesize;
197
+ muint loopcount;
198
+ } jar_mod_context_t;
199
+
200
+ //
201
+ // Player states structures
202
+ //
203
+ typedef struct track_state_
204
+ {
205
+ unsigned char instrument_number;
206
+ unsigned short cur_period;
207
+ unsigned char cur_volume;
208
+ unsigned short cur_effect;
209
+ unsigned short cur_parameffect;
210
+ }track_state;
211
+
212
+ typedef struct tracker_state_
213
+ {
214
+ int number_of_tracks;
215
+ int bpm;
216
+ int speed;
217
+ int cur_pattern;
218
+ int cur_pattern_pos;
219
+ int cur_pattern_table_pos;
220
+ unsigned int buf_index;
221
+ track_state tracks[32];
222
+ }tracker_state;
223
+
224
+ typedef struct tracker_state_instrument_
225
+ {
226
+ char name[22];
227
+ int active;
228
+ }tracker_state_instrument;
229
+
230
+ typedef struct jar_mod_tracker_buffer_state_
231
+ {
232
+ int nb_max_of_state;
233
+ int nb_of_state;
234
+ int cur_rd_index;
235
+ int sample_step;
236
+ char name[64];
237
+ tracker_state_instrument instruments[31];
238
+ tracker_state * track_state_buf;
239
+ }jar_mod_tracker_buffer_state;
240
+
241
+ #ifdef __cplusplus
242
+ extern "C" {
243
+ #endif
244
+
245
+ bool jar_mod_init(jar_mod_context_t * modctx);
246
+ bool jar_mod_setcfg(jar_mod_context_t * modctx, int samplerate, int bits, int stereo, int stereo_separation, int filter);
247
+ void jar_mod_fillbuffer(jar_mod_context_t * modctx, short * outbuffer, unsigned long nbsample, jar_mod_tracker_buffer_state * trkbuf);
248
+ void jar_mod_unload(jar_mod_context_t * modctx);
249
+ mulong jar_mod_load_file(jar_mod_context_t * modctx, const char* filename);
250
+ mulong jar_mod_current_samples(jar_mod_context_t * modctx);
251
+ mulong jar_mod_max_samples(jar_mod_context_t * modctx);
252
+ void jar_mod_seek_start(jar_mod_context_t * ctx);
253
+
254
+ #ifdef __cplusplus
255
+ }
256
+ #endif
257
+ //--------------------------------------------------------------------
258
+
259
+
260
+
261
+ //-------------------------------------------------------------------------------
262
+ #ifdef JAR_MOD_IMPLEMENTATION
263
+
264
+ #include <stdio.h>
265
+ #include <stdlib.h>
266
+ //#include <stdbool.h>
267
+
268
+ // Effects list
269
+ #define EFFECT_ARPEGGIO 0x0 // Supported
270
+ #define EFFECT_PORTAMENTO_UP 0x1 // Supported
271
+ #define EFFECT_PORTAMENTO_DOWN 0x2 // Supported
272
+ #define EFFECT_TONE_PORTAMENTO 0x3 // Supported
273
+ #define EFFECT_VIBRATO 0x4 // Supported
274
+ #define EFFECT_VOLSLIDE_TONEPORTA 0x5 // Supported
275
+ #define EFFECT_VOLSLIDE_VIBRATO 0x6 // Supported
276
+ #define EFFECT_VOLSLIDE_TREMOLO 0x7 // - TO BE DONE -
277
+ #define EFFECT_SET_PANNING 0x8 // - TO BE DONE -
278
+ #define EFFECT_SET_OFFSET 0x9 // Supported
279
+ #define EFFECT_VOLUME_SLIDE 0xA // Supported
280
+ #define EFFECT_JUMP_POSITION 0xB // Supported
281
+ #define EFFECT_SET_VOLUME 0xC // Supported
282
+ #define EFFECT_PATTERN_BREAK 0xD // Supported
283
+
284
+ #define EFFECT_EXTENDED 0xE
285
+ #define EFFECT_E_FINE_PORTA_UP 0x1 // Supported
286
+ #define EFFECT_E_FINE_PORTA_DOWN 0x2 // Supported
287
+ #define EFFECT_E_GLISSANDO_CTRL 0x3 // - TO BE DONE -
288
+ #define EFFECT_E_VIBRATO_WAVEFORM 0x4 // - TO BE DONE -
289
+ #define EFFECT_E_SET_FINETUNE 0x5 // - TO BE DONE -
290
+ #define EFFECT_E_PATTERN_LOOP 0x6 // Supported
291
+ #define EFFECT_E_TREMOLO_WAVEFORM 0x7 // - TO BE DONE -
292
+ #define EFFECT_E_SET_PANNING_2 0x8 // - TO BE DONE -
293
+ #define EFFECT_E_RETRIGGER_NOTE 0x9 // - TO BE DONE -
294
+ #define EFFECT_E_FINE_VOLSLIDE_UP 0xA // Supported
295
+ #define EFFECT_E_FINE_VOLSLIDE_DOWN 0xB // Supported
296
+ #define EFFECT_E_NOTE_CUT 0xC // Supported
297
+ #define EFFECT_E_NOTE_DELAY 0xD // - TO BE DONE -
298
+ #define EFFECT_E_PATTERN_DELAY 0xE // Supported
299
+ #define EFFECT_E_INVERT_LOOP 0xF // - TO BE DONE -
300
+ #define EFFECT_SET_SPEED 0xF0 // Supported
301
+ #define EFFECT_SET_TEMPO 0xF2 // Supported
302
+
303
+ #define PERIOD_TABLE_LENGTH MAXNOTES
304
+ #define FULL_PERIOD_TABLE_LENGTH ( PERIOD_TABLE_LENGTH * 8 )
305
+
306
+ static const short periodtable[]=
307
+ {
308
+ 27392, 25856, 24384, 23040, 21696, 20480, 19328, 18240, 17216, 16256, 15360, 14496,
309
+ 13696, 12928, 12192, 11520, 10848, 10240, 9664, 9120, 8606, 8128, 7680, 7248,
310
+ 6848, 6464, 6096, 5760, 5424, 5120, 4832, 4560, 4304, 4064, 3840, 3624,
311
+ 3424, 3232, 3048, 2880, 2712, 2560, 2416, 2280, 2152, 2032, 1920, 1812,
312
+ 1712, 1616, 1524, 1440, 1356, 1280, 1208, 1140, 1076, 1016, 960, 906,
313
+ 856, 808, 762, 720, 678, 640, 604, 570, 538, 508, 480, 453,
314
+ 428, 404, 381, 360, 339, 320, 302, 285, 269, 254, 240, 226,
315
+ 214, 202, 190, 180, 170, 160, 151, 143, 135, 127, 120, 113,
316
+ 107, 101, 95, 90, 85, 80, 75, 71, 67, 63, 60, 56,
317
+ 53, 50, 47, 45, 42, 40, 37, 35, 33, 31, 30, 28,
318
+ 27, 25, 24, 22, 21, 20, 19, 18, 17, 16, 15, 14,
319
+ 13, 13, 12, 11, 11, 10, 9, 9, 8, 8, 7, 7
320
+ };
321
+
322
+ static const short sintable[]={
323
+ 0, 24, 49, 74, 97, 120, 141,161,
324
+ 180, 197, 212, 224, 235, 244, 250,253,
325
+ 255, 253, 250, 244, 235, 224, 212,197,
326
+ 180, 161, 141, 120, 97, 74, 49, 24
327
+ };
328
+
329
+ typedef struct modtype_
330
+ {
331
+ unsigned char signature[5];
332
+ int numberofchannels;
333
+ }modtype;
334
+
335
+ modtype modlist[]=
336
+ {
337
+ { "M!K!",4},
338
+ { "M.K.",4},
339
+ { "FLT4",4},
340
+ { "FLT8",8},
341
+ { "4CHN",4},
342
+ { "6CHN",6},
343
+ { "8CHN",8},
344
+ { "10CH",10},
345
+ { "12CH",12},
346
+ { "14CH",14},
347
+ { "16CH",16},
348
+ { "18CH",18},
349
+ { "20CH",20},
350
+ { "22CH",22},
351
+ { "24CH",24},
352
+ { "26CH",26},
353
+ { "28CH",28},
354
+ { "30CH",30},
355
+ { "32CH",32},
356
+ { "",0}
357
+ };
358
+
359
+ ///////////////////////////////////////////////////////////////////////////////////
360
+
361
+ static void memcopy( void * dest, void *source, unsigned long size )
362
+ {
363
+ unsigned long i;
364
+ unsigned char * d,*s;
365
+
366
+ d=(unsigned char*)dest;
367
+ s=(unsigned char*)source;
368
+ for(i=0;i<size;i++)
369
+ {
370
+ d[i]=s[i];
371
+ }
372
+ }
373
+
374
+ static void memclear( void * dest, unsigned char value, unsigned long size )
375
+ {
376
+ unsigned long i;
377
+ unsigned char * d;
378
+
379
+ d=(unsigned char*)dest;
380
+ for(i=0;i<size;i++)
381
+ {
382
+ d[i]=value;
383
+ }
384
+ }
385
+
386
+ static int memcompare( unsigned char * buf1, unsigned char * buf2, unsigned int size )
387
+ {
388
+ unsigned int i;
389
+
390
+ i = 0;
391
+
392
+ while(i<size)
393
+ {
394
+ if(buf1[i] != buf2[i])
395
+ {
396
+ return 0;
397
+ }
398
+ i++;
399
+ }
400
+
401
+ return 1;
402
+ }
403
+
404
+ static int getnote( jar_mod_context_t * mod, unsigned short period, int finetune )
405
+ {
406
+ int i;
407
+
408
+ for(i = 0; i < FULL_PERIOD_TABLE_LENGTH; i++)
409
+ {
410
+ if(period >= mod->fullperiod[i])
411
+ {
412
+ return i;
413
+ }
414
+ }
415
+
416
+ return MAXNOTES;
417
+ }
418
+
419
+ static void worknote( note * nptr, channel * cptr, char t, jar_mod_context_t * mod )
420
+ {
421
+ muint sample, period, effect, operiod;
422
+ muint curnote, arpnote;
423
+
424
+ sample = (nptr->sampperiod & 0xF0) | (nptr->sampeffect >> 4);
425
+ period = ((nptr->sampperiod & 0xF) << 8) | nptr->period;
426
+ effect = ((nptr->sampeffect & 0xF) << 8) | nptr->effect;
427
+
428
+ operiod = cptr->period;
429
+
430
+ if ( period || sample )
431
+ {
432
+ if( sample && sample < 32 )
433
+ {
434
+ cptr->sampnum = sample - 1;
435
+ }
436
+
437
+ if( period || sample )
438
+ {
439
+ cptr->sampdata = (char *) mod->sampledata[cptr->sampnum];
440
+ cptr->length = mod->song.samples[cptr->sampnum].length;
441
+ cptr->reppnt = mod->song.samples[cptr->sampnum].reppnt;
442
+ cptr->replen = mod->song.samples[cptr->sampnum].replen;
443
+
444
+ cptr->finetune = (mod->song.samples[cptr->sampnum].finetune)&0xF;
445
+
446
+ if(effect>>8!=4 && effect>>8!=6)
447
+ {
448
+ cptr->vibraperiod=0;
449
+ cptr->vibrapointeur=0;
450
+ }
451
+ }
452
+
453
+ if( (sample != 0) && ( (effect>>8) != EFFECT_VOLSLIDE_TONEPORTA ) )
454
+ {
455
+ cptr->volume = mod->song.samples[cptr->sampnum].volume;
456
+ cptr->volumeslide = 0;
457
+ }
458
+
459
+ if( ( (effect>>8) != EFFECT_TONE_PORTAMENTO && (effect>>8)!=EFFECT_VOLSLIDE_TONEPORTA) )
460
+ {
461
+ if (period!=0)
462
+ cptr->samppos = 0;
463
+ }
464
+
465
+ cptr->decalperiod = 0;
466
+ if( period )
467
+ {
468
+ if(cptr->finetune)
469
+ {
470
+ if( cptr->finetune <= 7 )
471
+ {
472
+ period = mod->fullperiod[getnote(mod,period,0) + cptr->finetune];
473
+ }
474
+ else
475
+ {
476
+ period = mod->fullperiod[getnote(mod,period,0) - (16 - (cptr->finetune)) ];
477
+ }
478
+ }
479
+
480
+ cptr->period = period;
481
+ }
482
+
483
+ }
484
+
485
+ cptr->effect = 0;
486
+ cptr->parameffect = 0;
487
+ cptr->effect_code = effect;
488
+
489
+ switch (effect >> 8)
490
+ {
491
+ case EFFECT_ARPEGGIO:
492
+ /*
493
+ [0]: Arpeggio
494
+ Where [0][x][y] means "play note, note+x semitones, note+y
495
+ semitones, then return to original note". The fluctuations are
496
+ carried out evenly spaced in one pattern division. They are usually
497
+ used to simulate chords, but this doesn't work too well. They are
498
+ also used to produce heavy vibrato. A major chord is when x=4, y=7.
499
+ A minor chord is when x=3, y=7.
500
+ */
501
+
502
+ if(effect&0xff)
503
+ {
504
+ cptr->effect = EFFECT_ARPEGGIO;
505
+ cptr->parameffect = effect&0xff;
506
+
507
+ cptr->ArpIndex = 0;
508
+
509
+ curnote = getnote(mod,cptr->period,cptr->finetune);
510
+
511
+ cptr->Arpperiods[0] = cptr->period;
512
+
513
+ arpnote = curnote + (((cptr->parameffect>>4)&0xF)*8);
514
+ if( arpnote >= FULL_PERIOD_TABLE_LENGTH )
515
+ arpnote = FULL_PERIOD_TABLE_LENGTH - 1;
516
+
517
+ cptr->Arpperiods[1] = mod->fullperiod[arpnote];
518
+
519
+ arpnote = curnote + (((cptr->parameffect)&0xF)*8);
520
+ if( arpnote >= FULL_PERIOD_TABLE_LENGTH )
521
+ arpnote = FULL_PERIOD_TABLE_LENGTH - 1;
522
+
523
+ cptr->Arpperiods[2] = mod->fullperiod[arpnote];
524
+ }
525
+ break;
526
+
527
+ case EFFECT_PORTAMENTO_UP:
528
+ /*
529
+ [1]: Slide up
530
+ Where [1][x][y] means "smoothly decrease the period of current
531
+ sample by x*16+y after each tick in the division". The
532
+ ticks/division are set with the 'set speed' effect (see below). If
533
+ the period of the note being played is z, then the final period
534
+ will be z - (x*16 + y)*(ticks - 1). As the slide rate depends on
535
+ the speed, changing the speed will change the slide. You cannot
536
+ slide beyond the note B3 (period 113).
537
+ */
538
+
539
+ cptr->effect = EFFECT_PORTAMENTO_UP;
540
+ cptr->parameffect = effect&0xff;
541
+ break;
542
+
543
+ case EFFECT_PORTAMENTO_DOWN:
544
+ /*
545
+ [2]: Slide down
546
+ Where [2][x][y] means "smoothly increase the period of current
547
+ sample by x*16+y after each tick in the division". Similar to [1],
548
+ but lowers the pitch. You cannot slide beyond the note C1 (period
549
+ 856).
550
+ */
551
+
552
+ cptr->effect = EFFECT_PORTAMENTO_DOWN;
553
+ cptr->parameffect = effect&0xff;
554
+ break;
555
+
556
+ case EFFECT_TONE_PORTAMENTO:
557
+ /*
558
+ [3]: Slide to note
559
+ Where [3][x][y] means "smoothly change the period of current sample
560
+ by x*16+y after each tick in the division, never sliding beyond
561
+ current period". The period-length in this channel's division is a
562
+ parameter to this effect, and hence is not played. Sliding to a
563
+ note is similar to effects [1] and [2], but the slide will not go
564
+ beyond the given period, and the direction is implied by that
565
+ period. If x and y are both 0, then the old slide will continue.
566
+ */
567
+
568
+ cptr->effect = EFFECT_TONE_PORTAMENTO;
569
+ if( (effect&0xff) != 0 )
570
+ {
571
+ cptr->portaspeed = (short)(effect&0xff);
572
+ }
573
+
574
+ if(period!=0)
575
+ {
576
+ cptr->portaperiod = period;
577
+ cptr->period = operiod;
578
+ }
579
+ break;
580
+
581
+ case EFFECT_VIBRATO:
582
+ /*
583
+ [4]: Vibrato
584
+ Where [4][x][y] means "oscillate the sample pitch using a
585
+ particular waveform with amplitude y/16 semitones, such that (x *
586
+ ticks)/64 cycles occur in the division". The waveform is set using
587
+ effect [14][4]. By placing vibrato effects on consecutive
588
+ divisions, the vibrato effect can be maintained. If either x or y
589
+ are 0, then the old vibrato values will be used.
590
+ */
591
+
592
+ cptr->effect = EFFECT_VIBRATO;
593
+ if( ( effect & 0x0F ) != 0 ) // Depth continue or change ?
594
+ cptr->vibraparam = (cptr->vibraparam & 0xF0) | ( effect & 0x0F );
595
+ if( ( effect & 0xF0 ) != 0 ) // Speed continue or change ?
596
+ cptr->vibraparam = (cptr->vibraparam & 0x0F) | ( effect & 0xF0 );
597
+
598
+ break;
599
+
600
+ case EFFECT_VOLSLIDE_TONEPORTA:
601
+ /*
602
+ [5]: Continue 'Slide to note', but also do Volume slide
603
+ Where [5][x][y] means "either slide the volume up x*(ticks - 1) or
604
+ slide the volume down y*(ticks - 1), at the same time as continuing
605
+ the last 'Slide to note'". It is illegal for both x and y to be
606
+ non-zero. You cannot slide outside the volume range 0..64. The
607
+ period-length in this channel's division is a parameter to this
608
+ effect, and hence is not played.
609
+ */
610
+
611
+ if( period != 0 )
612
+ {
613
+ cptr->portaperiod = period;
614
+ cptr->period = operiod;
615
+ }
616
+
617
+ cptr->effect = EFFECT_VOLSLIDE_TONEPORTA;
618
+ if( ( effect & 0xFF ) != 0 )
619
+ cptr->volumeslide = ( effect & 0xFF );
620
+
621
+ break;
622
+
623
+ case EFFECT_VOLSLIDE_VIBRATO:
624
+ /*
625
+ [6]: Continue 'Vibrato', but also do Volume slide
626
+ Where [6][x][y] means "either slide the volume up x*(ticks - 1) or
627
+ slide the volume down y*(ticks - 1), at the same time as continuing
628
+ the last 'Vibrato'". It is illegal for both x and y to be non-zero.
629
+ You cannot slide outside the volume range 0..64.
630
+ */
631
+
632
+ cptr->effect = EFFECT_VOLSLIDE_VIBRATO;
633
+ if( (effect & 0xFF) != 0 )
634
+ cptr->volumeslide = (effect & 0xFF);
635
+ break;
636
+
637
+ case EFFECT_SET_OFFSET:
638
+ /*
639
+ [9]: Set sample offset
640
+ Where [9][x][y] means "play the sample from offset x*4096 + y*256".
641
+ The offset is measured in words. If no sample is given, yet one is
642
+ still playing on this channel, it should be retriggered to the new
643
+ offset using the current volume.
644
+ */
645
+
646
+ cptr->samppos = ((effect>>4) * 4096) + ((effect&0xF)*256);
647
+
648
+ break;
649
+
650
+ case EFFECT_VOLUME_SLIDE:
651
+ /*
652
+ [10]: Volume slide
653
+ Where [10][x][y] means "either slide the volume up x*(ticks - 1) or
654
+ slide the volume down y*(ticks - 1)". If both x and y are non-zero,
655
+ then the y value is ignored (assumed to be 0). You cannot slide
656
+ outside the volume range 0..64.
657
+ */
658
+
659
+ cptr->effect = EFFECT_VOLUME_SLIDE;
660
+ cptr->volumeslide = (effect & 0xFF);
661
+ break;
662
+
663
+ case EFFECT_JUMP_POSITION:
664
+ /*
665
+ [11]: Position Jump
666
+ Where [11][x][y] means "stop the pattern after this division, and
667
+ continue the song at song-position x*16+y". This shifts the
668
+ 'pattern-cursor' in the pattern table (see above). Legal values for
669
+ x*16+y are from 0 to 127.
670
+ */
671
+
672
+ mod->tablepos = (effect & 0xFF);
673
+ if(mod->tablepos >= mod->song.length)
674
+ {
675
+ mod->tablepos = 0;
676
+ }
677
+ mod->patternpos = 0;
678
+ mod->jump_loop_effect = 1;
679
+
680
+ break;
681
+
682
+ case EFFECT_SET_VOLUME:
683
+ /*
684
+ [12]: Set volume
685
+ Where [12][x][y] means "set current sample's volume to x*16+y".
686
+ Legal volumes are 0..64.
687
+ */
688
+
689
+ cptr->volume = (effect & 0xFF);
690
+ break;
691
+
692
+ case EFFECT_PATTERN_BREAK:
693
+ /*
694
+ [13]: Pattern Break
695
+ Where [13][x][y] means "stop the pattern after this division, and
696
+ continue the song at the next pattern at division x*10+y" (the 10
697
+ is not a typo). Legal divisions are from 0 to 63 (note Protracker
698
+ exception above).
699
+ */
700
+
701
+ mod->patternpos = ( ((effect>>4)&0xF)*10 + (effect&0xF) ) * mod->number_of_channels;
702
+ mod->jump_loop_effect = 1;
703
+ mod->tablepos++;
704
+ if(mod->tablepos >= mod->song.length)
705
+ {
706
+ mod->tablepos = 0;
707
+ }
708
+
709
+ break;
710
+
711
+ case EFFECT_EXTENDED:
712
+ switch( (effect>>4) & 0xF )
713
+ {
714
+ case EFFECT_E_FINE_PORTA_UP:
715
+ /*
716
+ [14][1]: Fineslide up
717
+ Where [14][1][x] means "decrement the period of the current sample
718
+ by x". The incrementing takes place at the beginning of the
719
+ division, and hence there is no actual sliding. You cannot slide
720
+ beyond the note B3 (period 113).
721
+ */
722
+
723
+ cptr->period -= (effect & 0xF);
724
+ if( cptr->period < 113 )
725
+ cptr->period = 113;
726
+ break;
727
+
728
+ case EFFECT_E_FINE_PORTA_DOWN:
729
+ /*
730
+ [14][2]: Fineslide down
731
+ Where [14][2][x] means "increment the period of the current sample
732
+ by x". Similar to [14][1] but shifts the pitch down. You cannot
733
+ slide beyond the note C1 (period 856).
734
+ */
735
+
736
+ cptr->period += (effect & 0xF);
737
+ if( cptr->period > 856 )
738
+ cptr->period = 856;
739
+ break;
740
+
741
+ case EFFECT_E_FINE_VOLSLIDE_UP:
742
+ /*
743
+ [14][10]: Fine volume slide up
744
+ Where [14][10][x] means "increment the volume of the current sample
745
+ by x". The incrementing takes place at the beginning of the
746
+ division, and hence there is no sliding. You cannot slide beyond
747
+ volume 64.
748
+ */
749
+
750
+ cptr->volume += (effect & 0xF);
751
+ if( cptr->volume>64 )
752
+ cptr->volume = 64;
753
+ break;
754
+
755
+ case EFFECT_E_FINE_VOLSLIDE_DOWN:
756
+ /*
757
+ [14][11]: Fine volume slide down
758
+ Where [14][11][x] means "decrement the volume of the current sample
759
+ by x". Similar to [14][10] but lowers volume. You cannot slide
760
+ beyond volume 0.
761
+ */
762
+
763
+ cptr->volume -= (effect & 0xF);
764
+ if( cptr->volume > 200 )
765
+ cptr->volume = 0;
766
+ break;
767
+
768
+ case EFFECT_E_PATTERN_LOOP:
769
+ /*
770
+ [14][6]: Loop pattern
771
+ Where [14][6][x] means "set the start of a loop to this division if
772
+ x is 0, otherwise after this division, jump back to the start of a
773
+ loop and play it another x times before continuing". If the start
774
+ of the loop was not set, it will default to the start of the
775
+ current pattern. Hence 'loop pattern' cannot be performed across
776
+ multiple patterns. Note that loops do not support nesting, and you
777
+ may generate an infinite loop if you try to nest 'loop pattern's.
778
+ */
779
+
780
+ if( effect & 0xF )
781
+ {
782
+ if( cptr->patternloopcnt )
783
+ {
784
+ cptr->patternloopcnt--;
785
+ if( cptr->patternloopcnt )
786
+ {
787
+ mod->patternpos = cptr->patternloopstartpoint;
788
+ mod->jump_loop_effect = 1;
789
+ }
790
+ else
791
+ {
792
+ cptr->patternloopstartpoint = mod->patternpos ;
793
+ }
794
+ }
795
+ else
796
+ {
797
+ cptr->patternloopcnt = (effect & 0xF);
798
+ mod->patternpos = cptr->patternloopstartpoint;
799
+ mod->jump_loop_effect = 1;
800
+ }
801
+ }
802
+ else // Start point
803
+ {
804
+ cptr->patternloopstartpoint = mod->patternpos;
805
+ }
806
+
807
+ break;
808
+
809
+ case EFFECT_E_PATTERN_DELAY:
810
+ /*
811
+ [14][14]: Delay pattern
812
+ Where [14][14][x] means "after this division there will be a delay
813
+ equivalent to the time taken to play x divisions after which the
814
+ pattern will be resumed". The delay only relates to the
815
+ interpreting of new divisions, and all effects and previous notes
816
+ continue during delay.
817
+ */
818
+
819
+ mod->patterndelay = (effect & 0xF);
820
+ break;
821
+
822
+ case EFFECT_E_NOTE_CUT:
823
+ /*
824
+ [14][12]: Cut sample
825
+ Where [14][12][x] means "after the current sample has been played
826
+ for x ticks in this division, its volume will be set to 0". This
827
+ implies that if x is 0, then you will not hear any of the sample.
828
+ If you wish to insert "silence" in a pattern, it is better to use a
829
+ "silence"-sample (see above) due to the lack of proper support for
830
+ this effect.
831
+ */
832
+ cptr->effect = EFFECT_E_NOTE_CUT;
833
+ cptr->cut_param = (effect & 0xF);
834
+ if(!cptr->cut_param)
835
+ cptr->volume = 0;
836
+ break;
837
+
838
+ default:
839
+
840
+ break;
841
+ }
842
+ break;
843
+
844
+ case 0xF:
845
+ /*
846
+ [15]: Set speed
847
+ Where [15][x][y] means "set speed to x*16+y". Though it is nowhere
848
+ near that simple. Let z = x*16+y. Depending on what values z takes,
849
+ different units of speed are set, there being two: ticks/division
850
+ and beats/minute (though this one is only a label and not strictly
851
+ true). If z=0, then what should technically happen is that the
852
+ module stops, but in practice it is treated as if z=1, because
853
+ there is already a method for stopping the module (running out of
854
+ patterns). If z<=32, then it means "set ticks/division to z"
855
+ otherwise it means "set beats/minute to z" (convention says that
856
+ this should read "If z<32.." but there are some composers out there
857
+ that defy conventions). Default values are 6 ticks/division, and
858
+ 125 beats/minute (4 divisions = 1 beat). The beats/minute tag is
859
+ only meaningful for 6 ticks/division. To get a more accurate view
860
+ of how things work, use the following formula:
861
+ 24 * beats/minute
862
+ divisions/minute = -----------------
863
+ ticks/division
864
+ Hence divisions/minute range from 24.75 to 6120, eg. to get a value
865
+ of 2000 divisions/minute use 3 ticks/division and 250 beats/minute.
866
+ If multiple "set speed" effects are performed in a single division,
867
+ the ones on higher-numbered channels take precedence over the ones
868
+ on lower-numbered channels. This effect has a large number of
869
+ different implementations, but the one described here has the
870
+ widest usage.
871
+ */
872
+
873
+ if( (effect&0xFF) < 0x21 )
874
+ {
875
+ if( effect&0xFF )
876
+ {
877
+ mod->song.speed = effect&0xFF;
878
+ mod->patternticksaim = (long)mod->song.speed * ((mod->playrate * 5 ) / (((long)2 * (long)mod->bpm)));
879
+ }
880
+ }
881
+
882
+ if( (effect&0xFF) >= 0x21 )
883
+ {
884
+ /// HZ = 2 * BPM / 5
885
+ mod->bpm = effect&0xFF;
886
+ mod->patternticksaim = (long)mod->song.speed * ((mod->playrate * 5 ) / (((long)2 * (long)mod->bpm)));
887
+ }
888
+
889
+ break;
890
+
891
+ default:
892
+ // Unsupported effect
893
+ break;
894
+
895
+ }
896
+
897
+ }
898
+
899
+ static void workeffect( note * nptr, channel * cptr )
900
+ {
901
+ switch(cptr->effect)
902
+ {
903
+ case EFFECT_ARPEGGIO:
904
+
905
+ if( cptr->parameffect )
906
+ {
907
+ cptr->decalperiod = cptr->period - cptr->Arpperiods[cptr->ArpIndex];
908
+
909
+ cptr->ArpIndex++;
910
+ if( cptr->ArpIndex>2 )
911
+ cptr->ArpIndex = 0;
912
+ }
913
+ break;
914
+
915
+ case EFFECT_PORTAMENTO_UP:
916
+
917
+ if(cptr->period)
918
+ {
919
+ cptr->period -= cptr->parameffect;
920
+
921
+ if( cptr->period < 113 || cptr->period > 20000 )
922
+ cptr->period = 113;
923
+ }
924
+
925
+ break;
926
+
927
+ case EFFECT_PORTAMENTO_DOWN:
928
+
929
+ if(cptr->period)
930
+ {
931
+ cptr->period += cptr->parameffect;
932
+
933
+ if( cptr->period > 20000 )
934
+ cptr->period = 20000;
935
+ }
936
+
937
+ break;
938
+
939
+ case EFFECT_VOLSLIDE_TONEPORTA:
940
+ case EFFECT_TONE_PORTAMENTO:
941
+
942
+ if( cptr->period && ( cptr->period != cptr->portaperiod ) && cptr->portaperiod )
943
+ {
944
+ if( cptr->period > cptr->portaperiod )
945
+ {
946
+ if( cptr->period - cptr->portaperiod >= cptr->portaspeed )
947
+ {
948
+ cptr->period -= cptr->portaspeed;
949
+ }
950
+ else
951
+ {
952
+ cptr->period = cptr->portaperiod;
953
+ }
954
+ }
955
+ else
956
+ {
957
+ if( cptr->portaperiod - cptr->period >= cptr->portaspeed )
958
+ {
959
+ cptr->period += cptr->portaspeed;
960
+ }
961
+ else
962
+ {
963
+ cptr->period = cptr->portaperiod;
964
+ }
965
+ }
966
+
967
+ if( cptr->period == cptr->portaperiod )
968
+ {
969
+ // If the slide is over, don't let it to be retriggered.
970
+ cptr->portaperiod = 0;
971
+ }
972
+ }
973
+
974
+ if( cptr->effect == EFFECT_VOLSLIDE_TONEPORTA )
975
+ {
976
+ if( cptr->volumeslide > 0x0F )
977
+ {
978
+ cptr->volume = cptr->volume + (cptr->volumeslide>>4);
979
+
980
+ if(cptr->volume>63)
981
+ cptr->volume = 63;
982
+ }
983
+ else
984
+ {
985
+ cptr->volume = cptr->volume - (cptr->volumeslide);
986
+
987
+ if(cptr->volume>63)
988
+ cptr->volume=0;
989
+ }
990
+ }
991
+ break;
992
+
993
+ case EFFECT_VOLSLIDE_VIBRATO:
994
+ case EFFECT_VIBRATO:
995
+
996
+ cptr->vibraperiod = ( (cptr->vibraparam&0xF) * sintable[cptr->vibrapointeur&0x1F] )>>7;
997
+
998
+ if( cptr->vibrapointeur > 31 )
999
+ cptr->vibraperiod = -cptr->vibraperiod;
1000
+
1001
+ cptr->vibrapointeur = (cptr->vibrapointeur+(((cptr->vibraparam>>4))&0xf)) & 0x3F;
1002
+
1003
+ if( cptr->effect == EFFECT_VOLSLIDE_VIBRATO )
1004
+ {
1005
+ if( cptr->volumeslide > 0xF )
1006
+ {
1007
+ cptr->volume = cptr->volume+(cptr->volumeslide>>4);
1008
+
1009
+ if( cptr->volume > 64 )
1010
+ cptr->volume = 64;
1011
+ }
1012
+ else
1013
+ {
1014
+ cptr->volume = cptr->volume - cptr->volumeslide;
1015
+
1016
+ if( cptr->volume > 64 )
1017
+ cptr->volume = 0;
1018
+ }
1019
+ }
1020
+
1021
+ break;
1022
+
1023
+ case EFFECT_VOLUME_SLIDE:
1024
+
1025
+ if( cptr->volumeslide > 0xF )
1026
+ {
1027
+ cptr->volume += (cptr->volumeslide>>4);
1028
+
1029
+ if( cptr->volume > 64 )
1030
+ cptr->volume = 64;
1031
+ }
1032
+ else
1033
+ {
1034
+ cptr->volume -= (cptr->volumeslide&0xf);
1035
+
1036
+ if( cptr->volume > 64 )
1037
+ cptr->volume = 0;
1038
+ }
1039
+ break;
1040
+
1041
+ case EFFECT_E_NOTE_CUT:
1042
+ if(cptr->cut_param)
1043
+ cptr->cut_param--;
1044
+
1045
+ if(!cptr->cut_param)
1046
+ cptr->volume = 0;
1047
+ break;
1048
+
1049
+ default:
1050
+ break;
1051
+
1052
+ }
1053
+
1054
+ }
1055
+
1056
+ ///////////////////////////////////////////////////////////////////////////////////
1057
+ bool jar_mod_init(jar_mod_context_t * modctx)
1058
+ {
1059
+ muint i,j;
1060
+
1061
+ if( modctx )
1062
+ {
1063
+ memclear(modctx, 0, sizeof(jar_mod_context_t));
1064
+ modctx->playrate = DEFAULT_SAMPLE_RATE;
1065
+ modctx->stereo = 1;
1066
+ modctx->stereo_separation = 1;
1067
+ modctx->bits = 16;
1068
+ modctx->filter = 1;
1069
+
1070
+ for(i=0; i < PERIOD_TABLE_LENGTH - 1; i++)
1071
+ {
1072
+ for(j=0; j < 8; j++)
1073
+ {
1074
+ modctx->fullperiod[(i*8) + j] = periodtable[i] - ((( periodtable[i] - periodtable[i+1] ) / 8) * j);
1075
+ }
1076
+ }
1077
+
1078
+ return 1;
1079
+ }
1080
+
1081
+ return 0;
1082
+ }
1083
+
1084
+ bool jar_mod_setcfg(jar_mod_context_t * modctx, int samplerate, int bits, int stereo, int stereo_separation, int filter)
1085
+ {
1086
+ if( modctx )
1087
+ {
1088
+ modctx->playrate = samplerate;
1089
+
1090
+ if( stereo )
1091
+ modctx->stereo = 1;
1092
+ else
1093
+ modctx->stereo = 0;
1094
+
1095
+ if(stereo_separation < 4)
1096
+ {
1097
+ modctx->stereo_separation = stereo_separation;
1098
+ }
1099
+
1100
+ if( bits == 8 || bits == 16 )
1101
+ modctx->bits = bits;
1102
+ else
1103
+ modctx->bits = 16;
1104
+
1105
+ if( filter )
1106
+ modctx->filter = 1;
1107
+ else
1108
+ modctx->filter = 0;
1109
+
1110
+ return 1;
1111
+ }
1112
+
1113
+ return 0;
1114
+ }
1115
+
1116
+ // make certain that mod_data stays in memory while playing
1117
+ static bool jar_mod_load( jar_mod_context_t * modctx, void * mod_data, int mod_data_size )
1118
+ {
1119
+ muint i, max;
1120
+ unsigned short t;
1121
+ sample *sptr;
1122
+ unsigned char * modmemory,* endmodmemory;
1123
+
1124
+ modmemory = (unsigned char *)mod_data;
1125
+ endmodmemory = modmemory + mod_data_size;
1126
+
1127
+
1128
+
1129
+ if(modmemory)
1130
+ {
1131
+ if( modctx )
1132
+ {
1133
+ memcopy(&(modctx->song.title),modmemory,1084);
1134
+
1135
+ i = 0;
1136
+ modctx->number_of_channels = 0;
1137
+ while(modlist[i].numberofchannels)
1138
+ {
1139
+ if(memcompare(modctx->song.signature,modlist[i].signature,4))
1140
+ {
1141
+ modctx->number_of_channels = modlist[i].numberofchannels;
1142
+ }
1143
+
1144
+ i++;
1145
+ }
1146
+
1147
+ if( !modctx->number_of_channels )
1148
+ {
1149
+ // 15 Samples modules support
1150
+ // Shift the whole datas to make it look likes a standard 4 channels mod.
1151
+ memcopy(&(modctx->song.signature), "M.K.", 4);
1152
+ memcopy(&(modctx->song.length), &(modctx->song.samples[15]), 130);
1153
+ memclear(&(modctx->song.samples[15]), 0, 480);
1154
+ modmemory += 600;
1155
+ modctx->number_of_channels = 4;
1156
+ }
1157
+ else
1158
+ {
1159
+ modmemory += 1084;
1160
+ }
1161
+
1162
+ if( modmemory >= endmodmemory )
1163
+ return 0; // End passed ? - Probably a bad file !
1164
+
1165
+ // Patterns loading
1166
+ for (i = max = 0; i < 128; i++)
1167
+ {
1168
+ while (max <= modctx->song.patterntable[i])
1169
+ {
1170
+ modctx->patterndata[max] = (note*)modmemory;
1171
+ modmemory += (256*modctx->number_of_channels);
1172
+ max++;
1173
+
1174
+ if( modmemory >= endmodmemory )
1175
+ return 0; // End passed ? - Probably a bad file !
1176
+ }
1177
+ }
1178
+
1179
+ for (i = 0; i < 31; i++)
1180
+ modctx->sampledata[i]=0;
1181
+
1182
+ // Samples loading
1183
+ for (i = 0, sptr = modctx->song.samples; i <31; i++, sptr++)
1184
+ {
1185
+ t= (sptr->length &0xFF00)>>8 | (sptr->length &0xFF)<<8;
1186
+ sptr->length = t*2;
1187
+
1188
+ t= (sptr->reppnt &0xFF00)>>8 | (sptr->reppnt &0xFF)<<8;
1189
+ sptr->reppnt = t*2;
1190
+
1191
+ t= (sptr->replen &0xFF00)>>8 | (sptr->replen &0xFF)<<8;
1192
+ sptr->replen = t*2;
1193
+
1194
+
1195
+ if (sptr->length == 0) continue;
1196
+
1197
+ modctx->sampledata[i] = (char*)modmemory;
1198
+ modmemory += sptr->length;
1199
+
1200
+ if (sptr->replen + sptr->reppnt > sptr->length)
1201
+ sptr->replen = sptr->length - sptr->reppnt;
1202
+
1203
+ if( modmemory > endmodmemory )
1204
+ return 0; // End passed ? - Probably a bad file !
1205
+ }
1206
+
1207
+ // States init
1208
+
1209
+ modctx->tablepos = 0;
1210
+ modctx->patternpos = 0;
1211
+ modctx->song.speed = 6;
1212
+ modctx->bpm = 125;
1213
+ modctx->samplenb = 0;
1214
+
1215
+ modctx->patternticks = (((long)modctx->song.speed * modctx->playrate * 5)/ (2 * modctx->bpm)) + 1;
1216
+ modctx->patternticksaim = ((long)modctx->song.speed * modctx->playrate * 5) / (2 * modctx->bpm);
1217
+
1218
+ modctx->sampleticksconst = 3546894UL / modctx->playrate; //8448*428/playrate;
1219
+
1220
+ for(i=0; i < modctx->number_of_channels; i++)
1221
+ {
1222
+ modctx->channels[i].volume = 0;
1223
+ modctx->channels[i].period = 0;
1224
+ }
1225
+
1226
+ modctx->mod_loaded = 1;
1227
+
1228
+ return 1;
1229
+ }
1230
+ }
1231
+
1232
+ return 0;
1233
+ }
1234
+
1235
+ void jar_mod_fillbuffer( jar_mod_context_t * modctx, short * outbuffer, unsigned long nbsample, jar_mod_tracker_buffer_state * trkbuf )
1236
+ {
1237
+ unsigned long i, j;
1238
+ unsigned long k;
1239
+ unsigned char c;
1240
+ unsigned int state_remaining_steps;
1241
+ int l,r;
1242
+ int ll,lr;
1243
+ int tl,tr;
1244
+ short finalperiod;
1245
+ note *nptr;
1246
+ channel *cptr;
1247
+
1248
+ if( modctx && outbuffer )
1249
+ {
1250
+ if(modctx->mod_loaded)
1251
+ {
1252
+ state_remaining_steps = 0;
1253
+
1254
+ if( trkbuf )
1255
+ {
1256
+ trkbuf->cur_rd_index = 0;
1257
+
1258
+ memcopy(trkbuf->name,modctx->song.title,sizeof(modctx->song.title));
1259
+
1260
+ for(i=0;i<31;i++)
1261
+ {
1262
+ memcopy(trkbuf->instruments[i].name,modctx->song.samples[i].name,sizeof(trkbuf->instruments[i].name));
1263
+ }
1264
+ }
1265
+
1266
+ ll = modctx->last_l_sample;
1267
+ lr = modctx->last_r_sample;
1268
+
1269
+ for (i = 0; i < nbsample; i++)
1270
+ {
1271
+ //---------------------------------------
1272
+ if( modctx->patternticks++ > modctx->patternticksaim )
1273
+ {
1274
+ if( !modctx->patterndelay )
1275
+ {
1276
+ nptr = modctx->patterndata[modctx->song.patterntable[modctx->tablepos]];
1277
+ nptr = nptr + modctx->patternpos;
1278
+ cptr = modctx->channels;
1279
+
1280
+ modctx->patternticks = 0;
1281
+ modctx->patterntickse = 0;
1282
+
1283
+ for(c=0;c<modctx->number_of_channels;c++)
1284
+ {
1285
+ worknote((note*)(nptr+c), (channel*)(cptr+c),(char)(c+1),modctx);
1286
+ }
1287
+
1288
+ if( !modctx->jump_loop_effect )
1289
+ modctx->patternpos += modctx->number_of_channels;
1290
+ else
1291
+ modctx->jump_loop_effect = 0;
1292
+
1293
+ if( modctx->patternpos == 64*modctx->number_of_channels )
1294
+ {
1295
+ modctx->tablepos++;
1296
+ modctx->patternpos = 0;
1297
+ if(modctx->tablepos >= modctx->song.length)
1298
+ {
1299
+ modctx->tablepos = 0;
1300
+ modctx->loopcount++; // count next loop
1301
+ }
1302
+ }
1303
+ }
1304
+ else
1305
+ {
1306
+ modctx->patterndelay--;
1307
+ modctx->patternticks = 0;
1308
+ modctx->patterntickse = 0;
1309
+ }
1310
+
1311
+ }
1312
+
1313
+ if( modctx->patterntickse++ > (modctx->patternticksaim/modctx->song.speed) )
1314
+ {
1315
+ nptr = modctx->patterndata[modctx->song.patterntable[modctx->tablepos]];
1316
+ nptr = nptr + modctx->patternpos;
1317
+ cptr = modctx->channels;
1318
+
1319
+ for(c=0;c<modctx->number_of_channels;c++)
1320
+ {
1321
+ workeffect(nptr+c, cptr+c);
1322
+ }
1323
+
1324
+ modctx->patterntickse = 0;
1325
+ }
1326
+
1327
+ //---------------------------------------
1328
+
1329
+ if( trkbuf && !state_remaining_steps )
1330
+ {
1331
+ if( trkbuf->nb_of_state < trkbuf->nb_max_of_state )
1332
+ {
1333
+ memclear(&trkbuf->track_state_buf[trkbuf->nb_of_state], 0, sizeof(tracker_state));
1334
+ }
1335
+ }
1336
+
1337
+ l=0;
1338
+ r=0;
1339
+
1340
+ for(j =0, cptr = modctx->channels; j < modctx->number_of_channels ; j++, cptr++)
1341
+ {
1342
+ if( cptr->period != 0 )
1343
+ {
1344
+ finalperiod = cptr->period - cptr->decalperiod - cptr->vibraperiod;
1345
+ if( finalperiod )
1346
+ {
1347
+ cptr->samppos += ( (modctx->sampleticksconst<<10) / finalperiod );
1348
+ }
1349
+
1350
+ cptr->ticks++;
1351
+
1352
+ if( cptr->replen<=2 )
1353
+ {
1354
+ if( (cptr->samppos>>10) >= (cptr->length) )
1355
+ {
1356
+ cptr->length = 0;
1357
+ cptr->reppnt = 0;
1358
+
1359
+ if( cptr->length )
1360
+ cptr->samppos = cptr->samppos % (((unsigned long)cptr->length)<<10);
1361
+ else
1362
+ cptr->samppos = 0;
1363
+ }
1364
+ }
1365
+ else
1366
+ {
1367
+ if( (cptr->samppos>>10) >= (unsigned long)(cptr->replen+cptr->reppnt) )
1368
+ {
1369
+ cptr->samppos = ((unsigned long)(cptr->reppnt)<<10) + (cptr->samppos % ((unsigned long)(cptr->replen+cptr->reppnt)<<10));
1370
+ }
1371
+ }
1372
+
1373
+ k = cptr->samppos >> 10;
1374
+
1375
+ if( cptr->sampdata!=0 && ( ((j&3)==1) || ((j&3)==2) ) )
1376
+ {
1377
+ r += ( cptr->sampdata[k] * cptr->volume );
1378
+ }
1379
+
1380
+ if( cptr->sampdata!=0 && ( ((j&3)==0) || ((j&3)==3) ) )
1381
+ {
1382
+ l += ( cptr->sampdata[k] * cptr->volume );
1383
+ }
1384
+
1385
+ if( trkbuf && !state_remaining_steps )
1386
+ {
1387
+ if( trkbuf->nb_of_state < trkbuf->nb_max_of_state )
1388
+ {
1389
+ trkbuf->track_state_buf[trkbuf->nb_of_state].number_of_tracks = modctx->number_of_channels;
1390
+ trkbuf->track_state_buf[trkbuf->nb_of_state].buf_index = i;
1391
+ trkbuf->track_state_buf[trkbuf->nb_of_state].cur_pattern = modctx->song.patterntable[modctx->tablepos];
1392
+ trkbuf->track_state_buf[trkbuf->nb_of_state].cur_pattern_pos = modctx->patternpos / modctx->number_of_channels;
1393
+ trkbuf->track_state_buf[trkbuf->nb_of_state].cur_pattern_table_pos = modctx->tablepos;
1394
+ trkbuf->track_state_buf[trkbuf->nb_of_state].bpm = modctx->bpm;
1395
+ trkbuf->track_state_buf[trkbuf->nb_of_state].speed = modctx->song.speed;
1396
+ trkbuf->track_state_buf[trkbuf->nb_of_state].tracks[j].cur_effect = cptr->effect_code;
1397
+ trkbuf->track_state_buf[trkbuf->nb_of_state].tracks[j].cur_parameffect = cptr->parameffect;
1398
+ trkbuf->track_state_buf[trkbuf->nb_of_state].tracks[j].cur_period = finalperiod;
1399
+ trkbuf->track_state_buf[trkbuf->nb_of_state].tracks[j].cur_volume = cptr->volume;
1400
+ trkbuf->track_state_buf[trkbuf->nb_of_state].tracks[j].instrument_number = (unsigned char)cptr->sampnum;
1401
+ }
1402
+ }
1403
+ }
1404
+ }
1405
+
1406
+ if( trkbuf && !state_remaining_steps )
1407
+ {
1408
+ state_remaining_steps = trkbuf->sample_step;
1409
+
1410
+ if(trkbuf->nb_of_state < trkbuf->nb_max_of_state)
1411
+ trkbuf->nb_of_state++;
1412
+ }
1413
+ else
1414
+ {
1415
+ state_remaining_steps--;
1416
+ }
1417
+
1418
+ tl = (short)l;
1419
+ tr = (short)r;
1420
+
1421
+ if ( modctx->filter )
1422
+ {
1423
+ // Filter
1424
+ l = (l+ll)>>1;
1425
+ r = (r+lr)>>1;
1426
+ }
1427
+
1428
+ if ( modctx->stereo_separation == 1 )
1429
+ {
1430
+ // Left & Right Stereo panning
1431
+ l = (l+(r>>1));
1432
+ r = (r+(l>>1));
1433
+ }
1434
+
1435
+ // Level limitation
1436
+ if( l > 32767 ) l = 32767;
1437
+ if( l < -32768 ) l = -32768;
1438
+ if( r > 32767 ) r = 32767;
1439
+ if( r < -32768 ) r = -32768;
1440
+
1441
+ // Store the final sample.
1442
+ outbuffer[(i*2)] = l;
1443
+ outbuffer[(i*2)+1] = r;
1444
+
1445
+ ll = tl;
1446
+ lr = tr;
1447
+
1448
+ }
1449
+
1450
+ modctx->last_l_sample = ll;
1451
+ modctx->last_r_sample = lr;
1452
+
1453
+ modctx->samplenb = modctx->samplenb+nbsample;
1454
+ }
1455
+ else
1456
+ {
1457
+ for (i = 0; i < nbsample; i++)
1458
+ {
1459
+ // Mod not loaded. Return blank buffer.
1460
+ outbuffer[(i*2)] = 0;
1461
+ outbuffer[(i*2)+1] = 0;
1462
+ }
1463
+
1464
+ if(trkbuf)
1465
+ {
1466
+ trkbuf->nb_of_state = 0;
1467
+ trkbuf->cur_rd_index = 0;
1468
+ trkbuf->name[0] = 0;
1469
+ memclear(trkbuf->track_state_buf, 0, sizeof(tracker_state) * trkbuf->nb_max_of_state);
1470
+ memclear(trkbuf->instruments, 0, sizeof(trkbuf->instruments));
1471
+ }
1472
+ }
1473
+ }
1474
+ }
1475
+
1476
+ //resets internals for mod context
1477
+ static bool jar_mod_reset( jar_mod_context_t * modctx)
1478
+ {
1479
+ if(modctx)
1480
+ {
1481
+ memclear(&modctx->song, 0, sizeof(modctx->song));
1482
+ memclear(&modctx->sampledata, 0, sizeof(modctx->sampledata));
1483
+ memclear(&modctx->patterndata, 0, sizeof(modctx->patterndata));
1484
+ modctx->tablepos = 0;
1485
+ modctx->patternpos = 0;
1486
+ modctx->patterndelay = 0;
1487
+ modctx->jump_loop_effect = 0;
1488
+ modctx->bpm = 0;
1489
+ modctx->patternticks = 0;
1490
+ modctx->patterntickse = 0;
1491
+ modctx->patternticksaim = 0;
1492
+ modctx->sampleticksconst = 0;
1493
+ modctx->samplenb = 0;
1494
+ memclear(modctx->channels, 0, sizeof(modctx->channels));
1495
+ modctx->number_of_channels = 0;
1496
+ modctx->mod_loaded = 0;
1497
+ modctx->last_r_sample = 0;
1498
+ modctx->last_l_sample = 0;
1499
+
1500
+ return jar_mod_init(modctx);
1501
+ }
1502
+ return 0;
1503
+ }
1504
+
1505
+ void jar_mod_unload( jar_mod_context_t * modctx)
1506
+ {
1507
+ if(modctx)
1508
+ {
1509
+ if(modctx->modfile)
1510
+ {
1511
+ JARMOD_FREE(modctx->modfile);
1512
+ modctx->modfile = 0;
1513
+ modctx->modfilesize = 0;
1514
+ modctx->loopcount = 0;
1515
+ }
1516
+ jar_mod_reset(modctx);
1517
+ }
1518
+ }
1519
+
1520
+ mulong jar_mod_load_file(jar_mod_context_t * modctx, const char* filename)
1521
+ {
1522
+ mulong fsize = 0;
1523
+ if(modctx->modfile)
1524
+ {
1525
+ JARMOD_FREE(modctx->modfile);
1526
+ modctx->modfile = 0;
1527
+ }
1528
+
1529
+ FILE *f = fopen(filename, "rb");
1530
+ if(f)
1531
+ {
1532
+ fseek(f,0,SEEK_END);
1533
+ fsize = ftell(f);
1534
+ fseek(f,0,SEEK_SET);
1535
+
1536
+ if(fsize && fsize < 32*1024*1024)
1537
+ {
1538
+ modctx->modfile = JARMOD_MALLOC(fsize);
1539
+ modctx->modfilesize = fsize;
1540
+ memset(modctx->modfile, 0, fsize);
1541
+ fread(modctx->modfile, fsize, 1, f);
1542
+ fclose(f);
1543
+
1544
+ if(!jar_mod_load(modctx, (void*)modctx->modfile, fsize)) fsize = 0;
1545
+ } else fsize = 0;
1546
+ }
1547
+ return fsize;
1548
+ }
1549
+
1550
+ mulong jar_mod_current_samples(jar_mod_context_t * modctx)
1551
+ {
1552
+ if(modctx)
1553
+ return modctx->samplenb;
1554
+
1555
+ return 0;
1556
+ }
1557
+
1558
+ // Works, however it is very slow, this data should be cached to ensure it is run only once per file
1559
+ mulong jar_mod_max_samples(jar_mod_context_t * ctx)
1560
+ {
1561
+ mint buff[2];
1562
+ mulong len;
1563
+ mulong lastcount = ctx->loopcount;
1564
+
1565
+ while(ctx->loopcount <= lastcount)
1566
+ jar_mod_fillbuffer(ctx, buff, 1, 0);
1567
+
1568
+ len = ctx->samplenb;
1569
+ jar_mod_seek_start(ctx);
1570
+
1571
+ return len;
1572
+ }
1573
+
1574
+ // move seek_val to sample index, 0 -> jar_mod_max_samples is the range
1575
+ void jar_mod_seek_start(jar_mod_context_t * ctx)
1576
+ {
1577
+ if(ctx && ctx->modfile)
1578
+ {
1579
+ muchar* ftmp = ctx->modfile;
1580
+ mulong stmp = ctx->modfilesize;
1581
+ muint lcnt = ctx->loopcount;
1582
+
1583
+ if(jar_mod_reset(ctx)){
1584
+ jar_mod_load(ctx, ftmp, stmp);
1585
+ ctx->modfile = ftmp;
1586
+ ctx->modfilesize = stmp;
1587
+ ctx->loopcount = lcnt;
1588
+ }
1589
+ }
1590
+ }
1591
+
1592
+ #endif // end of JAR_MOD_IMPLEMENTATION
1593
+ //-------------------------------------------------------------------------------
1594
+
1595
+
1596
+ #endif //end of header file