koffi 2.1.1 → 2.1.2

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 (311) hide show
  1. package/ChangeLog.md +6 -0
  2. package/build/qemu/2.1.2/koffi_darwin_arm64.tar.gz +0 -0
  3. package/build/qemu/2.1.2/koffi_darwin_x64.tar.gz +0 -0
  4. package/build/qemu/2.1.2/koffi_freebsd_arm64.tar.gz +0 -0
  5. package/build/qemu/2.1.2/koffi_freebsd_ia32.tar.gz +0 -0
  6. package/build/qemu/2.1.2/koffi_freebsd_x64.tar.gz +0 -0
  7. package/build/qemu/2.1.2/koffi_linux_arm32hf.tar.gz +0 -0
  8. package/build/qemu/2.1.2/koffi_linux_arm64.tar.gz +0 -0
  9. package/build/qemu/2.1.2/koffi_linux_ia32.tar.gz +0 -0
  10. package/build/qemu/2.1.2/koffi_linux_riscv64hf64.tar.gz +0 -0
  11. package/build/qemu/2.1.2/koffi_linux_x64.tar.gz +0 -0
  12. package/build/qemu/2.1.2/koffi_openbsd_ia32.tar.gz +0 -0
  13. package/build/qemu/2.1.2/koffi_openbsd_x64.tar.gz +0 -0
  14. package/build/qemu/2.1.2/koffi_win32_arm64.tar.gz +0 -0
  15. package/build/qemu/2.1.2/koffi_win32_ia32.tar.gz +0 -0
  16. package/build/qemu/2.1.2/koffi_win32_x64.tar.gz +0 -0
  17. package/doc/templates/badges.html +3 -0
  18. package/package.json +2 -2
  19. package/src/abi_arm64.cc +35 -1
  20. package/src/abi_x64_win.cc +2 -8
  21. package/src/abi_x86.cc +1 -7
  22. package/src/ffi.hh +1 -1
  23. package/src/util.hh +6 -0
  24. package/test/raylib.js +37 -5
  25. package/vendor/libcc/libcc.cc +430 -196
  26. package/vendor/libcc/libcc.hh +1417 -1283
  27. package/vendor/raylib/BINDINGS.md +87 -70
  28. package/vendor/raylib/CHANGELOG +263 -50
  29. package/vendor/raylib/CMakeLists.txt +12 -0
  30. package/vendor/raylib/CMakeOptions.txt +8 -1
  31. package/vendor/raylib/CONVENTIONS.md +2 -3
  32. package/vendor/raylib/FAQ.md +137 -0
  33. package/vendor/raylib/HISTORY.md +62 -29
  34. package/vendor/raylib/LICENSE +1 -1
  35. package/vendor/raylib/README.md +22 -17
  36. package/vendor/raylib/ROADMAP.md +8 -7
  37. package/vendor/raylib/cmake/CompileDefinitions.cmake +19 -15
  38. package/vendor/raylib/cmake/GlfwImport.cmake +2 -0
  39. package/vendor/raylib/cmake/LibraryConfigurations.cmake +22 -16
  40. package/vendor/raylib/cmake/raylib-config.cmake +52 -49
  41. package/vendor/raylib/examples/CMakeLists.txt +14 -9
  42. package/vendor/raylib/examples/Makefile +112 -125
  43. package/vendor/raylib/examples/Makefile.Android +1 -1
  44. package/vendor/raylib/examples/Makefile.Web +145 -158
  45. package/vendor/raylib/examples/README.md +141 -141
  46. package/vendor/raylib/examples/audio/audio_module_playing.c +9 -4
  47. package/vendor/raylib/examples/audio/audio_multichannel_sound.c +8 -3
  48. package/vendor/raylib/examples/audio/audio_music_stream.c +16 -11
  49. package/vendor/raylib/examples/audio/audio_raw_stream.c +57 -9
  50. package/vendor/raylib/examples/audio/audio_sound_loading.c +8 -3
  51. package/vendor/raylib/examples/audio/audio_stream_effects.c +179 -0
  52. package/vendor/raylib/examples/audio/audio_stream_effects.png +0 -0
  53. package/vendor/raylib/examples/build.zig +17 -6
  54. package/vendor/raylib/examples/core/core_2d_camera.c +8 -4
  55. package/vendor/raylib/examples/core/core_2d_camera_mouse_zoom.c +105 -0
  56. package/vendor/raylib/examples/core/core_2d_camera_mouse_zoom.png +0 -0
  57. package/vendor/raylib/examples/core/core_2d_camera_platformer.c +11 -6
  58. package/vendor/raylib/examples/core/core_3d_camera_first_person.c +9 -4
  59. package/vendor/raylib/examples/core/core_3d_camera_free.c +9 -4
  60. package/vendor/raylib/examples/core/core_3d_camera_mode.c +8 -3
  61. package/vendor/raylib/examples/core/core_3d_picking.c +9 -4
  62. package/vendor/raylib/examples/core/core_basic_screen_manager.c +9 -7
  63. package/vendor/raylib/examples/core/core_basic_window.c +8 -3
  64. package/vendor/raylib/examples/core/core_basic_window_web.c +13 -11
  65. package/vendor/raylib/examples/core/core_custom_frame_control.c +9 -4
  66. package/vendor/raylib/examples/core/core_custom_logging.c +12 -8
  67. package/vendor/raylib/examples/core/core_drop_files.c +20 -12
  68. package/vendor/raylib/examples/core/core_input_gamepad.c +20 -15
  69. package/vendor/raylib/examples/core/core_input_gestures.c +19 -15
  70. package/vendor/raylib/examples/core/core_input_keys.c +8 -3
  71. package/vendor/raylib/examples/core/core_input_mouse.c +8 -3
  72. package/vendor/raylib/examples/core/core_input_mouse_wheel.c +8 -3
  73. package/vendor/raylib/examples/core/core_input_multitouch.c +8 -3
  74. package/vendor/raylib/examples/core/core_loading_thread.c +10 -6
  75. package/vendor/raylib/examples/core/core_random_values.c +8 -3
  76. package/vendor/raylib/examples/core/core_scissor_test.c +8 -3
  77. package/vendor/raylib/examples/core/core_smooth_pixelperfect.c +9 -4
  78. package/vendor/raylib/examples/core/core_split_screen.c +8 -3
  79. package/vendor/raylib/examples/core/core_storage_values.c +109 -3
  80. package/vendor/raylib/examples/core/core_vr_simulator.c +15 -7
  81. package/vendor/raylib/examples/core/core_window_flags.c +8 -3
  82. package/vendor/raylib/examples/core/core_window_letterbox.c +13 -18
  83. package/vendor/raylib/examples/core/core_window_should_close.c +77 -0
  84. package/vendor/raylib/examples/core/core_window_should_close.png +0 -0
  85. package/vendor/raylib/examples/core/core_world_screen.c +9 -4
  86. package/vendor/raylib/examples/examples_template.c +8 -3
  87. package/vendor/raylib/examples/models/models_animation.c +11 -7
  88. package/vendor/raylib/examples/models/models_billboard.c +9 -4
  89. package/vendor/raylib/examples/models/models_box_collisions.c +8 -3
  90. package/vendor/raylib/examples/models/models_cubicmap.c +9 -4
  91. package/vendor/raylib/examples/models/models_first_person_maze.c +9 -4
  92. package/vendor/raylib/examples/models/models_geometric_shapes.c +8 -3
  93. package/vendor/raylib/examples/models/models_heightmap.c +9 -4
  94. package/vendor/raylib/examples/models/models_loading.c +21 -17
  95. package/vendor/raylib/examples/models/models_loading_gltf.c +15 -41
  96. package/vendor/raylib/examples/models/models_loading_vox.c +9 -4
  97. package/vendor/raylib/examples/models/models_mesh_generation.c +71 -58
  98. package/vendor/raylib/examples/models/models_mesh_picking.c +25 -7
  99. package/vendor/raylib/examples/models/models_orthographic_projection.c +8 -5
  100. package/vendor/raylib/examples/models/models_rlgl_solar_system.c +6 -4
  101. package/vendor/raylib/examples/models/models_skybox.c +16 -12
  102. package/vendor/raylib/examples/models/models_waving_cubes.c +9 -4
  103. package/vendor/raylib/examples/models/models_yaw_pitch_roll.c +12 -7
  104. package/vendor/raylib/examples/models/resources/LICENSE.md +9 -10
  105. package/vendor/raylib/examples/models/resources/models/gltf/LICENSE +2 -23
  106. package/vendor/raylib/examples/models/resources/models/gltf/{raylib_32x32.glb → raylib_logo_3d.glb} +0 -0
  107. package/vendor/raylib/examples/models/resources/models/gltf/robot.blend +0 -0
  108. package/vendor/raylib/examples/models/resources/models/gltf/robot.glb +0 -0
  109. package/vendor/raylib/examples/others/easings_testbed.c +10 -8
  110. package/vendor/raylib/examples/others/easings_testbed.png +0 -0
  111. package/vendor/raylib/examples/others/embedded_files_loading.c +10 -5
  112. package/vendor/raylib/examples/others/embedded_files_loading.png +0 -0
  113. package/vendor/raylib/examples/others/raylib_opengl_interop.c +10 -6
  114. package/vendor/raylib/{src/extras/easings.h → examples/others/reasings.h} +38 -38
  115. package/vendor/raylib/examples/others/rlgl_compute_shader.c +21 -20
  116. package/vendor/raylib/examples/others/rlgl_compute_shader.png +0 -0
  117. package/vendor/raylib/examples/others/rlgl_standalone.c +4 -4
  118. package/vendor/raylib/examples/others/rlgl_standalone.png +0 -0
  119. package/vendor/raylib/examples/raylib_compile_execute.bat +2 -2
  120. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/lighting.fs +1 -1
  121. package/vendor/raylib/examples/shaders/resources/shaders/glsl330/{base_lighting_instanced.vs → lighting_instancing.vs} +2 -2
  122. package/vendor/raylib/examples/shaders/rlights.h +14 -27
  123. package/vendor/raylib/examples/shaders/shaders_basic_lighting.c +24 -26
  124. package/vendor/raylib/examples/shaders/shaders_custom_uniform.c +10 -5
  125. package/vendor/raylib/examples/shaders/shaders_eratosthenes.c +13 -8
  126. package/vendor/raylib/examples/shaders/shaders_fog.c +8 -12
  127. package/vendor/raylib/examples/shaders/shaders_hot_reloading.c +10 -5
  128. package/vendor/raylib/examples/shaders/shaders_julia_set.c +9 -4
  129. package/vendor/raylib/examples/shaders/shaders_mesh_instancing.c +45 -119
  130. package/vendor/raylib/examples/shaders/shaders_model_shader.c +10 -5
  131. package/vendor/raylib/examples/shaders/shaders_multi_sample2d.c +8 -3
  132. package/vendor/raylib/examples/shaders/shaders_palette_switch.c +8 -3
  133. package/vendor/raylib/examples/shaders/shaders_postprocessing.c +9 -4
  134. package/vendor/raylib/examples/shaders/shaders_raymarching.c +14 -11
  135. package/vendor/raylib/examples/shaders/shaders_shapes_textures.c +8 -3
  136. package/vendor/raylib/examples/shaders/shaders_simple_mask.c +10 -5
  137. package/vendor/raylib/examples/shaders/shaders_spotlight.c +10 -6
  138. package/vendor/raylib/examples/shaders/shaders_texture_drawing.c +9 -4
  139. package/vendor/raylib/examples/shaders/shaders_texture_outline.c +8 -3
  140. package/vendor/raylib/examples/shaders/shaders_texture_waves.c +8 -3
  141. package/vendor/raylib/{src/extras → examples/shapes}/raygui.h +1290 -1141
  142. package/vendor/raylib/examples/{others/easings.h → shapes/reasings.h} +40 -40
  143. package/vendor/raylib/examples/shapes/shapes_basic_shapes.c +8 -3
  144. package/vendor/raylib/examples/shapes/shapes_bouncing_ball.c +8 -3
  145. package/vendor/raylib/examples/shapes/shapes_collision_area.c +10 -4
  146. package/vendor/raylib/examples/shapes/shapes_colors_palette.c +8 -3
  147. package/vendor/raylib/examples/shapes/shapes_draw_circle_sector.c +9 -4
  148. package/vendor/raylib/examples/shapes/shapes_draw_rectangle_rounded.c +9 -4
  149. package/vendor/raylib/examples/shapes/shapes_draw_ring.c +10 -6
  150. package/vendor/raylib/examples/shapes/shapes_easings_ball_anim.c +9 -4
  151. package/vendor/raylib/examples/shapes/shapes_easings_box_anim.c +9 -4
  152. package/vendor/raylib/examples/shapes/shapes_easings_rectangle_array.c +9 -4
  153. package/vendor/raylib/examples/shapes/shapes_following_eyes.c +8 -3
  154. package/vendor/raylib/examples/shapes/shapes_lines_bezier.c +8 -3
  155. package/vendor/raylib/examples/shapes/shapes_logo_raylib.c +8 -3
  156. package/vendor/raylib/examples/shapes/shapes_logo_raylib_anim.c +8 -3
  157. package/vendor/raylib/examples/shapes/shapes_rectangle_scaling.c +14 -5
  158. package/vendor/raylib/examples/shapes/shapes_top_down_lights.c +355 -0
  159. package/vendor/raylib/examples/shapes/shapes_top_down_lights.png +0 -0
  160. package/vendor/raylib/examples/text/resources/DotGothic16-Regular.ttf +0 -0
  161. package/vendor/raylib/examples/text/resources/DotGothic16-Regular_OFL.txt +93 -0
  162. package/vendor/raylib/examples/text/resources/LICENSE.md +1 -1
  163. package/vendor/raylib/examples/text/text_codepoints_loading.c +138 -0
  164. package/vendor/raylib/examples/text/text_codepoints_loading.png +0 -0
  165. package/vendor/raylib/examples/text/text_draw_3d.c +42 -33
  166. package/vendor/raylib/examples/text/text_font_filters.c +14 -11
  167. package/vendor/raylib/examples/text/text_font_loading.c +9 -4
  168. package/vendor/raylib/examples/text/text_font_sdf.c +9 -4
  169. package/vendor/raylib/examples/text/text_font_spritefont.c +12 -6
  170. package/vendor/raylib/examples/text/text_format_text.c +8 -3
  171. package/vendor/raylib/examples/text/text_input_box.c +8 -3
  172. package/vendor/raylib/examples/text/text_raylib_fonts.c +9 -4
  173. package/vendor/raylib/examples/text/text_rectangle_bounds.c +9 -5
  174. package/vendor/raylib/examples/text/text_unicode.c +9 -7
  175. package/vendor/raylib/examples/text/text_writing_anim.c +8 -3
  176. package/vendor/raylib/examples/textures/resources/scarfy_run.gif +0 -0
  177. package/vendor/raylib/examples/textures/textures_background_scrolling.c +8 -3
  178. package/vendor/raylib/examples/textures/textures_blend_modes.c +8 -3
  179. package/vendor/raylib/examples/textures/textures_bunnymark.c +8 -3
  180. package/vendor/raylib/examples/textures/textures_draw_tiled.c +14 -10
  181. package/vendor/raylib/examples/textures/textures_fog_of_war.c +154 -0
  182. package/vendor/raylib/examples/textures/textures_fog_of_war.png +0 -0
  183. package/vendor/raylib/examples/textures/textures_gif_player.c +121 -0
  184. package/vendor/raylib/examples/textures/textures_gif_player.png +0 -0
  185. package/vendor/raylib/examples/textures/textures_image_drawing.c +8 -3
  186. package/vendor/raylib/examples/textures/textures_image_generation.c +8 -3
  187. package/vendor/raylib/examples/textures/textures_image_loading.c +8 -3
  188. package/vendor/raylib/examples/textures/textures_image_processing.c +8 -3
  189. package/vendor/raylib/examples/textures/textures_image_text.c +8 -3
  190. package/vendor/raylib/examples/textures/textures_logo_raylib.c +8 -3
  191. package/vendor/raylib/examples/textures/textures_mouse_painting.c +9 -4
  192. package/vendor/raylib/examples/textures/textures_npatch_drawing.c +8 -3
  193. package/vendor/raylib/examples/textures/textures_particles_blending.c +8 -3
  194. package/vendor/raylib/examples/textures/textures_polygon.c +9 -5
  195. package/vendor/raylib/examples/textures/textures_raw_data.c +8 -3
  196. package/vendor/raylib/examples/textures/{textures_rectangle.c → textures_sprite_anim.c} +11 -5
  197. package/vendor/raylib/examples/textures/{textures_rectangle.png → textures_sprite_anim.png} +0 -0
  198. package/vendor/raylib/examples/textures/textures_sprite_button.c +8 -3
  199. package/vendor/raylib/examples/textures/textures_sprite_explosion.c +8 -3
  200. package/vendor/raylib/examples/textures/textures_srcrec_dstrec.c +8 -3
  201. package/vendor/raylib/examples/textures/textures_to_image.c +8 -3
  202. package/vendor/raylib/parser/LICENSE +1 -1
  203. package/vendor/raylib/parser/Makefile +28 -0
  204. package/vendor/raylib/parser/README.md +49 -5
  205. package/vendor/raylib/parser/output/raylib_api.json +10717 -0
  206. package/vendor/raylib/parser/output/raylib_api.lua +7435 -0
  207. package/vendor/raylib/parser/{raylib_api.txt → output/raylib_api.txt} +1371 -824
  208. package/vendor/raylib/parser/{raylib_api.xml → output/raylib_api.xml} +827 -595
  209. package/vendor/raylib/parser/raylib_parser.c +1174 -196
  210. package/vendor/raylib/projects/4coder/Makefile +2 -4
  211. package/vendor/raylib/projects/4coder/main.c +0 -1
  212. package/vendor/raylib/projects/CMake/CMakeLists.txt +13 -16
  213. package/vendor/raylib/projects/CMake/README.md +27 -0
  214. package/vendor/raylib/projects/CMake/core_basic_window.c +52 -31
  215. package/vendor/raylib/projects/CodeBlocks/README.md +4 -4
  216. package/vendor/raylib/projects/Geany/core_basic_window.c +1 -1
  217. package/vendor/raylib/projects/Notepad++/c_raylib.xml +168 -128
  218. package/vendor/raylib/projects/Notepad++/npes_saved_tcc.txt +0 -0
  219. package/vendor/raylib/projects/Notepad++/npes_saved_w64devkit.txt +0 -0
  220. package/vendor/raylib/projects/Notepad++/npes_saved_zig.txt +0 -0
  221. package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_npp.xml +168 -84
  222. package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h +67 -51
  223. package/vendor/raylib/projects/README.md +1 -1
  224. package/vendor/raylib/projects/VSCode/.vscode/c_cpp_properties.json +1 -1
  225. package/vendor/raylib/projects/VSCode/Makefile +8 -11
  226. package/vendor/raylib/projects/VSCode/main.c +53 -26
  227. package/vendor/raylib/projects/VSCode/resources/LICENSE +1 -0
  228. package/vendor/raylib/projects/scripts/build-linux.sh +6 -6
  229. package/vendor/raylib/projects/scripts/build-osx.sh +6 -6
  230. package/vendor/raylib/projects/scripts/build-rpi.sh +6 -6
  231. package/vendor/raylib/projects/scripts/build-windows.bat +2 -2
  232. package/vendor/raylib/src/CMakeLists.txt +6 -7
  233. package/vendor/raylib/src/Makefile +209 -103
  234. package/vendor/raylib/src/build.zig +56 -20
  235. package/vendor/raylib/src/config.h +32 -27
  236. package/vendor/raylib/src/external/cgltf.h +342 -104
  237. package/vendor/raylib/src/external/dr_wav.h +487 -225
  238. package/vendor/raylib/src/external/glfw/src/posix_time.c +1 -3
  239. package/vendor/raylib/src/external/glfw/src/wl_init.c +1 -3
  240. package/vendor/raylib/src/external/jar_xm.h +2 -1
  241. package/vendor/raylib/src/external/miniaudio.h +62251 -42061
  242. package/vendor/raylib/src/external/qoi.h +671 -0
  243. package/vendor/raylib/src/external/stb_vorbis.h +1 -1
  244. package/vendor/raylib/src/external/vox_loader.h +30 -25
  245. package/vendor/raylib/src/minshell.html +82 -0
  246. package/vendor/raylib/src/raudio.c +359 -201
  247. package/vendor/raylib/src/raylib.dll.rc +5 -5
  248. package/vendor/raylib/src/raylib.dll.rc.data +0 -0
  249. package/vendor/raylib/src/raylib.h +95 -63
  250. package/vendor/raylib/src/raylib.rc +5 -5
  251. package/vendor/raylib/src/raylib.rc.data +0 -0
  252. package/vendor/raylib/src/raymath.h +391 -133
  253. package/vendor/raylib/src/rcamera.h +32 -41
  254. package/vendor/raylib/src/rcore.c +775 -471
  255. package/vendor/raylib/src/rgestures.h +5 -5
  256. package/vendor/raylib/src/rglfw.c +3 -3
  257. package/vendor/raylib/src/rlgl.h +184 -144
  258. package/vendor/raylib/src/rmodels.c +207 -144
  259. package/vendor/raylib/src/rshapes.c +105 -47
  260. package/vendor/raylib/src/rtext.c +255 -38
  261. package/vendor/raylib/src/rtextures.c +167 -71
  262. package/vendor/raylib/src/shell.html +63 -63
  263. package/vendor/raylib/src/utils.c +49 -3
  264. package/vendor/raylib/src/utils.h +3 -3
  265. package/build/qemu/2.1.1/koffi_darwin_arm64.tar.gz +0 -0
  266. package/build/qemu/2.1.1/koffi_darwin_x64.tar.gz +0 -0
  267. package/build/qemu/2.1.1/koffi_freebsd_arm64.tar.gz +0 -0
  268. package/build/qemu/2.1.1/koffi_freebsd_ia32.tar.gz +0 -0
  269. package/build/qemu/2.1.1/koffi_freebsd_x64.tar.gz +0 -0
  270. package/build/qemu/2.1.1/koffi_linux_arm32hf.tar.gz +0 -0
  271. package/build/qemu/2.1.1/koffi_linux_arm64.tar.gz +0 -0
  272. package/build/qemu/2.1.1/koffi_linux_ia32.tar.gz +0 -0
  273. package/build/qemu/2.1.1/koffi_linux_riscv64hf64.tar.gz +0 -0
  274. package/build/qemu/2.1.1/koffi_linux_x64.tar.gz +0 -0
  275. package/build/qemu/2.1.1/koffi_openbsd_ia32.tar.gz +0 -0
  276. package/build/qemu/2.1.1/koffi_openbsd_x64.tar.gz +0 -0
  277. package/build/qemu/2.1.1/koffi_win32_arm64.tar.gz +0 -0
  278. package/build/qemu/2.1.1/koffi_win32_ia32.tar.gz +0 -0
  279. package/build/qemu/2.1.1/koffi_win32_x64.tar.gz +0 -0
  280. package/vendor/raylib/CONTRIBUTORS.md +0 -63
  281. package/vendor/raylib/SPONSORS.md +0 -68
  282. package/vendor/raylib/examples/core/core_quat_conversion.c +0 -132
  283. package/vendor/raylib/examples/core/core_quat_conversion.png +0 -0
  284. package/vendor/raylib/examples/models/resources/models/gltf/AnimatedMorphCube.glb +0 -0
  285. package/vendor/raylib/examples/models/resources/models/gltf/AnimatedTriangle.gltf +0 -118
  286. package/vendor/raylib/examples/models/resources/models/gltf/BoxAnimated.glb +0 -0
  287. package/vendor/raylib/examples/models/resources/models/gltf/girl.glb +0 -0
  288. package/vendor/raylib/examples/models/resources/models/gltf/rigged_figure.glb +0 -0
  289. package/vendor/raylib/examples/models/resources/models/gltf/vertex_colored_object.glb +0 -0
  290. package/vendor/raylib/examples/models/resources/models/iqm/vertex_colored_object.iqm +0 -0
  291. package/vendor/raylib/examples/models/rlights.h +0 -183
  292. package/vendor/raylib/examples/others/raudio_standalone.c +0 -152
  293. package/vendor/raylib/examples/others/resources/audio/country.mp3 +0 -0
  294. package/vendor/raylib/examples/others/resources/audio/target.ogg +0 -0
  295. package/vendor/raylib/examples/others/resources/audio/weird.wav +0 -0
  296. package/vendor/raylib/examples/physics/physics_demo.c +0 -128
  297. package/vendor/raylib/examples/physics/physics_demo.png +0 -0
  298. package/vendor/raylib/examples/physics/physics_friction.c +0 -142
  299. package/vendor/raylib/examples/physics/physics_friction.png +0 -0
  300. package/vendor/raylib/examples/physics/physics_movement.c +0 -128
  301. package/vendor/raylib/examples/physics/physics_movement.png +0 -0
  302. package/vendor/raylib/examples/physics/physics_restitution.c +0 -129
  303. package/vendor/raylib/examples/physics/physics_restitution.png +0 -0
  304. package/vendor/raylib/examples/physics/physics_shatter.c +0 -111
  305. package/vendor/raylib/examples/physics/physics_shatter.png +0 -0
  306. package/vendor/raylib/parser/raylib_api.json +0 -6668
  307. package/vendor/raylib/projects/VS2019/raylib/raylib.rc +0 -0
  308. package/vendor/raylib/projects/VS2019/raylib/resource.h +0 -14
  309. package/vendor/raylib/src/extras/physac.h +0 -1977
  310. package/vendor/raylib/src/extras/rmem.h +0 -751
  311. package/vendor/raylib/src/raudio.h +0 -198
@@ -29,7 +29,7 @@
29
29
  * This example is licensed under an unmodified zlib/libpng license, which is an OSI-certified,
30
30
  * BSD-like license that allows static linking with closed source software:
31
31
  *
32
- * Copyright (c) 2014-2021 Ramon Santamaria (@raysan5)
32
+ * Copyright (c) 2014-2022 Ramon Santamaria (@raysan5)
33
33
  *
34
34
  * This software is provided "as-is", without any express or implied warranty. In no event
35
35
  * will the authors be held liable for any damages arising from the use of this software.
@@ -113,9 +113,9 @@ static void DrawRectangleV(Vector2 position, Vector2 size, Color color);
113
113
  //static Matrix MatrixPerspective(double fovy, double aspect, double near, double far);
114
114
  //static Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up);
115
115
 
116
- //----------------------------------------------------------------------------------
117
- // Main Entry point
118
- //----------------------------------------------------------------------------------
116
+ //------------------------------------------------------------------------------------
117
+ // Program main entry point
118
+ //------------------------------------------------------------------------------------
119
119
  int main(void)
120
120
  {
121
121
  // Initialization
@@ -25,8 +25,8 @@ cmd /c if exist %NAMEPART%.exe del /F %NAMEPART%.exe
25
25
  :: -std=c99 : Use C99 language standard
26
26
  :: -Wall : Enable all compilation Warnings
27
27
  :: -mwindows : Compile a Windows executable, no cmd window
28
- gcc -o %NAMEPART%.exe %FILENAME% %RAYLIB_RES_FILE% -s -O2 -I%RAYLIB_INCLUDE_DIR% -I%RAYLIB_LIB_DIR% -lraylib -lopengl32 -lgdi32 -lwinmm -std=c99 -Wall -mwindows
28
+ gcc -o %NAMEPART%.exe %FILENAME% %RAYLIB_RES_FILE% -s -O2 -I%RAYLIB_INCLUDE_DIR% -L%RAYLIB_LIB_DIR% -lraylib -lopengl32 -lgdi32 -lwinmm -std=c99 -Wall -mwindows
29
29
  :: .
30
30
  :: > Executing program
31
31
  :: -------------------------
32
- cmd /c if exist %NAMEPART%.exe %NAMEPART%.exe
32
+ cmd /c if exist %NAMEPART%.exe %NAMEPART%.exe
@@ -3,7 +3,7 @@
3
3
  // Input vertex attributes (from vertex shader)
4
4
  in vec3 fragPosition;
5
5
  in vec2 fragTexCoord;
6
- in vec4 fragColor;
6
+ //in vec4 fragColor;
7
7
  in vec3 fragNormal;
8
8
 
9
9
  // Input uniform values
@@ -4,7 +4,7 @@
4
4
  in vec3 vertexPosition;
5
5
  in vec2 vertexTexCoord;
6
6
  in vec3 vertexNormal;
7
- in vec4 vertexColor;
7
+ //in vec4 vertexColor; // Not required
8
8
 
9
9
  in mat4 instanceTransform;
10
10
 
@@ -28,7 +28,7 @@ void main()
28
28
  // Send vertex attributes to fragment shader
29
29
  fragPosition = vec3(mvpi*vec4(vertexPosition, 1.0));
30
30
  fragTexCoord = vertexTexCoord;
31
- fragColor = vertexColor;
31
+ //fragColor = vertexColor;
32
32
  fragNormal = normalize(vec3(matNormal*vec4(vertexNormal, 1.0)));
33
33
 
34
34
  // Calculate final vertex position
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * LICENSE: zlib/libpng
13
13
  *
14
- * Copyright (c) 2017-2020 Victor Fisac (@victorfisac) and Ramon Santamaria (@raysan5)
14
+ * Copyright (c) 2017-2022 Victor Fisac (@victorfisac) and Ramon Santamaria (@raysan5)
15
15
  *
16
16
  * This software is provided "as-is", without any express or implied warranty. In no event
17
17
  * will the authors be held liable for any damages arising from the use of this software.
@@ -36,7 +36,7 @@
36
36
  //----------------------------------------------------------------------------------
37
37
  // Defines and Macros
38
38
  //----------------------------------------------------------------------------------
39
- #define MAX_LIGHTS 4 // Max dynamic lights supported by shader
39
+ #define MAX_LIGHTS 4 // Max dynamic lights supported by shader
40
40
 
41
41
  //----------------------------------------------------------------------------------
42
42
  // Types and Structures Definition
@@ -45,22 +45,24 @@
45
45
  // Light data
46
46
  typedef struct {
47
47
  int type;
48
+ bool enabled;
48
49
  Vector3 position;
49
50
  Vector3 target;
50
51
  Color color;
51
- bool enabled;
52
+ float attenuation;
52
53
 
53
54
  // Shader locations
54
55
  int enabledLoc;
55
56
  int typeLoc;
56
- int posLoc;
57
+ int positionLoc;
57
58
  int targetLoc;
58
59
  int colorLoc;
60
+ int attenuationLoc;
59
61
  } Light;
60
62
 
61
63
  // Light type
62
64
  typedef enum {
63
- LIGHT_DIRECTIONAL,
65
+ LIGHT_DIRECTIONAL = 0,
64
66
  LIGHT_POINT
65
67
  } LightType;
66
68
 
@@ -128,27 +130,12 @@ Light CreateLight(int type, Vector3 position, Vector3 target, Color color, Shade
128
130
  light.target = target;
129
131
  light.color = color;
130
132
 
131
- // TODO: Below code doesn't look good to me,
132
- // it assumes a specific shader naming and structure
133
- // Probably this implementation could be improved
134
- char enabledName[32] = "lights[x].enabled\0";
135
- char typeName[32] = "lights[x].type\0";
136
- char posName[32] = "lights[x].position\0";
137
- char targetName[32] = "lights[x].target\0";
138
- char colorName[32] = "lights[x].color\0";
139
-
140
- // Set location name [x] depending on lights count
141
- enabledName[7] = '0' + lightsCount;
142
- typeName[7] = '0' + lightsCount;
143
- posName[7] = '0' + lightsCount;
144
- targetName[7] = '0' + lightsCount;
145
- colorName[7] = '0' + lightsCount;
146
-
147
- light.enabledLoc = GetShaderLocation(shader, enabledName);
148
- light.typeLoc = GetShaderLocation(shader, typeName);
149
- light.posLoc = GetShaderLocation(shader, posName);
150
- light.targetLoc = GetShaderLocation(shader, targetName);
151
- light.colorLoc = GetShaderLocation(shader, colorName);
133
+ // NOTE: Lighting shader naming must be the provided ones
134
+ light.enabledLoc = GetShaderLocation(shader, TextFormat("lights[%i].enabled", lightsCount));
135
+ light.typeLoc = GetShaderLocation(shader, TextFormat("lights[%i].type", lightsCount));
136
+ light.positionLoc = GetShaderLocation(shader, TextFormat("lights[%i].position", lightsCount));
137
+ light.targetLoc = GetShaderLocation(shader, TextFormat("lights[%i].target", lightsCount));
138
+ light.colorLoc = GetShaderLocation(shader, TextFormat("lights[%i].color", lightsCount));
152
139
 
153
140
  UpdateLightValues(shader, light);
154
141
 
@@ -168,7 +155,7 @@ void UpdateLightValues(Shader shader, Light light)
168
155
 
169
156
  // Send to shader light position values
170
157
  float position[3] = { light.position.x, light.position.y, light.position.z };
171
- SetShaderValue(shader, light.posLoc, position, SHADER_UNIFORM_VEC3);
158
+ SetShaderValue(shader, light.positionLoc, position, SHADER_UNIFORM_VEC3);
172
159
 
173
160
  // Send to shader light target position values
174
161
  float target[3] = { light.target.x, light.target.y, light.target.z };
@@ -7,13 +7,14 @@
7
7
  *
8
8
  * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3).
9
9
  *
10
- * This example has been created using raylib 3.8 (www.raylib.com)
11
- * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
10
+ * Example originally created with raylib 3.0, last time updated with raylib 4.2
12
11
  *
13
- * Example contributed by Chris Camacho (@codifies, http://bedroomcoders.co.uk/) and
14
- * reviewed by Ramon Santamaria (@raysan5)
12
+ * Example contributed by Chris Camacho (@codifies) and reviewed by Ramon Santamaria (@raysan5)
15
13
  *
16
- * Copyright (c) 2019-2021 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5)
14
+ * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
15
+ * BSD-like license that allows static linking with closed source software
16
+ *
17
+ * Copyright (c) 2019-2022 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5)
17
18
  *
18
19
  ********************************************************************************************/
19
20
 
@@ -30,6 +31,9 @@
30
31
  #define GLSL_VERSION 100
31
32
  #endif
32
33
 
34
+ //------------------------------------------------------------------------------------
35
+ // Program main entry point
36
+ //------------------------------------------------------------------------------------
33
37
  int main(void)
34
38
  {
35
39
  // Initialization
@@ -52,10 +56,10 @@ int main(void)
52
56
  Model model = LoadModelFromMesh(GenMeshPlane(10.0f, 10.0f, 3, 3));
53
57
  Model cube = LoadModelFromMesh(GenMeshCube(2.0f, 4.0f, 2.0f));
54
58
 
59
+ // Load basic lighting shader
55
60
  Shader shader = LoadShader(TextFormat("resources/shaders/glsl%i/base_lighting.vs", GLSL_VERSION),
56
61
  TextFormat("resources/shaders/glsl%i/lighting.fs", GLSL_VERSION));
57
-
58
- // Get some required shader loactions
62
+ // Get some required shader locations
59
63
  shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos");
60
64
  // NOTE: "matModel" location name is automatically assigned on shader loading,
61
65
  // no need to get the location again if using that uniform name
@@ -69,7 +73,7 @@ int main(void)
69
73
  model.materials[0].shader = shader;
70
74
  cube.materials[0].shader = shader;
71
75
 
72
- // Using 4 point lights: gold, red, green and blue
76
+ // Create lights
73
77
  Light lights[MAX_LIGHTS] = { 0 };
74
78
  lights[0] = CreateLight(LIGHT_POINT, (Vector3){ -2, 1, -2 }, Vector3Zero(), YELLOW, shader);
75
79
  lights[1] = CreateLight(LIGHT_POINT, (Vector3){ 2, 1, 2 }, Vector3Zero(), RED, shader);
@@ -86,7 +90,11 @@ int main(void)
86
90
  {
87
91
  // Update
88
92
  //----------------------------------------------------------------------------------
89
- UpdateCamera(&camera); // Update camera
93
+ UpdateCamera(&camera);
94
+
95
+ // Update the shader with the camera view vector (points towards { 0.0f, 0.0f, 0.0f })
96
+ float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z };
97
+ SetShaderValue(shader, shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3);
90
98
 
91
99
  // Check key inputs to enable/disable lights
92
100
  if (IsKeyPressed(KEY_Y)) { lights[0].enabled = !lights[0].enabled; }
@@ -95,14 +103,7 @@ int main(void)
95
103
  if (IsKeyPressed(KEY_B)) { lights[3].enabled = !lights[3].enabled; }
96
104
 
97
105
  // Update light values (actually, only enable/disable them)
98
- UpdateLightValues(shader, lights[0]);
99
- UpdateLightValues(shader, lights[1]);
100
- UpdateLightValues(shader, lights[2]);
101
- UpdateLightValues(shader, lights[3]);
102
-
103
- // Update the shader with the camera view vector (points towards { 0.0f, 0.0f, 0.0f })
104
- float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z };
105
- SetShaderValue(shader, shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3);
106
+ for (int i = 0; i < MAX_LIGHTS; i++) UpdateLightValues(shader, lights[i]);
106
107
  //----------------------------------------------------------------------------------
107
108
 
108
109
  // Draw
@@ -116,15 +117,12 @@ int main(void)
116
117
  DrawModel(model, Vector3Zero(), 1.0f, WHITE);
117
118
  DrawModel(cube, Vector3Zero(), 1.0f, WHITE);
118
119
 
119
- // Draw markers to show where the lights are
120
- if (lights[0].enabled) DrawSphereEx(lights[0].position, 0.2f, 8, 8, YELLOW);
121
- else DrawSphereWires(lights[0].position, 0.2f, 8, 8, ColorAlpha(YELLOW, 0.3f));
122
- if (lights[1].enabled) DrawSphereEx(lights[1].position, 0.2f, 8, 8, RED);
123
- else DrawSphereWires(lights[1].position, 0.2f, 8, 8, ColorAlpha(RED, 0.3f));
124
- if (lights[2].enabled) DrawSphereEx(lights[2].position, 0.2f, 8, 8, GREEN);
125
- else DrawSphereWires(lights[2].position, 0.2f, 8, 8, ColorAlpha(GREEN, 0.3f));
126
- if (lights[3].enabled) DrawSphereEx(lights[3].position, 0.2f, 8, 8, BLUE);
127
- else DrawSphereWires(lights[3].position, 0.2f, 8, 8, ColorAlpha(BLUE, 0.3f));
120
+ // Draw spheres to show where the lights are
121
+ for (int i = 0; i < MAX_LIGHTS; i++)
122
+ {
123
+ if (lights[i].enabled) DrawSphereEx(lights[i].position, 0.2f, 8, 8, lights[i].color);
124
+ else DrawSphereWires(lights[i].position, 0.2f, 8, 8, ColorAlpha(lights[i].color, 0.3f));
125
+ }
128
126
 
129
127
  DrawGrid(10, 1.0f);
130
128
 
@@ -9,10 +9,12 @@
9
9
  * on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders
10
10
  * raylib comes with shaders ready for both versions, check raylib/shaders install folder
11
11
  *
12
- * This example has been created using raylib 1.3 (www.raylib.com)
13
- * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
12
+ * Example originally created with raylib 1.3, last time updated with raylib 4.0
14
13
  *
15
- * Copyright (c) 2015 Ramon Santamaria (@raysan5)
14
+ * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
15
+ * BSD-like license that allows static linking with closed source software
16
+ *
17
+ * Copyright (c) 2015-2022 Ramon Santamaria (@raysan5)
16
18
  *
17
19
  ********************************************************************************************/
18
20
 
@@ -24,6 +26,9 @@
24
26
  #define GLSL_VERSION 100
25
27
  #endif
26
28
 
29
+ //------------------------------------------------------------------------------------
30
+ // Program main entry point
31
+ //------------------------------------------------------------------------------------
27
32
  int main(void)
28
33
  {
29
34
  // Initialization
@@ -73,6 +78,8 @@ int main(void)
73
78
  {
74
79
  // Update
75
80
  //----------------------------------------------------------------------------------
81
+ UpdateCamera(&camera);
82
+
76
83
  Vector2 mousePosition = GetMousePosition();
77
84
 
78
85
  swirlCenter[0] = mousePosition.x;
@@ -80,8 +87,6 @@ int main(void)
80
87
 
81
88
  // Send new value to the shader to be used on drawing
82
89
  SetShaderValue(shader, swirlCenterLoc, swirlCenter, SHADER_UNIFORM_VEC2);
83
-
84
- UpdateCamera(&camera); // Update camera
85
90
  //----------------------------------------------------------------------------------
86
91
 
87
92
  // Draw
@@ -2,24 +2,26 @@
2
2
  *
3
3
  * raylib [shaders] example - Sieve of Eratosthenes
4
4
  *
5
- * Sieve of Eratosthenes, the earliest known (ancient Greek) prime number sieve.
5
+ * NOTE: Sieve of Eratosthenes, the earliest known (ancient Greek) prime number sieve.
6
6
  *
7
- * "Sift the twos and sift the threes,
8
- * The Sieve of Eratosthenes.
9
- * When the multiples sublime,
10
- * the numbers that are left are prime."
7
+ * "Sift the twos and sift the threes,
8
+ * The Sieve of Eratosthenes.
9
+ * When the multiples sublime,
10
+ * the numbers that are left are prime."
11
11
  *
12
12
  * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
13
13
  * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
14
14
  *
15
15
  * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3).
16
16
  *
17
- * This example has been created using raylib 2.5 (www.raylib.com)
18
- * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
17
+ * Example originally created with raylib 2.5, last time updated with raylib 4.0
19
18
  *
20
19
  * Example contributed by ProfJski and reviewed by Ramon Santamaria (@raysan5)
21
20
  *
22
- * Copyright (c) 2019 ProfJski and Ramon Santamaria (@raysan5)
21
+ * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
22
+ * BSD-like license that allows static linking with closed source software
23
+ *
24
+ * Copyright (c) 2019-2022 ProfJski and Ramon Santamaria (@raysan5)
23
25
  *
24
26
  ********************************************************************************************/
25
27
 
@@ -31,6 +33,9 @@
31
33
  #define GLSL_VERSION 100
32
34
  #endif
33
35
 
36
+ //------------------------------------------------------------------------------------
37
+ // Program main entry point
38
+ //------------------------------------------------------------------------------------
34
39
  int main(void)
35
40
  {
36
41
  // Initialization
@@ -7,21 +7,14 @@
7
7
  *
8
8
  * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3).
9
9
  *
10
- * This example has been created using raylib 2.5 (www.raylib.com)
11
- * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
10
+ * Example originally created with raylib 2.5, last time updated with raylib 3.7
12
11
  *
13
12
  * Example contributed by Chris Camacho (@chriscamacho) and reviewed by Ramon Santamaria (@raysan5)
14
13
  *
15
- * Chris Camacho (@chriscamacho - http://bedroomcoders.co.uk/) notes:
14
+ * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
15
+ * BSD-like license that allows static linking with closed source software
16
16
  *
17
- * This is based on the PBR lighting example, but greatly simplified to aid learning...
18
- * actually there is very little of the PBR example left!
19
- * When I first looked at the bewildering complexity of the PBR example I feared
20
- * I would never understand how I could do simple lighting with raylib however its
21
- * a testement to the authors of raylib (including rlights.h) that the example
22
- * came together fairly quickly.
23
- *
24
- * Copyright (c) 2019 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5)
17
+ * Copyright (c) 2019-2022 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5)
25
18
  *
26
19
  ********************************************************************************************/
27
20
 
@@ -38,6 +31,9 @@
38
31
  #define GLSL_VERSION 100
39
32
  #endif
40
33
 
34
+ //------------------------------------------------------------------------------------
35
+ // Program main entry point
36
+ //------------------------------------------------------------------------------------
41
37
  int main(void)
42
38
  {
43
39
  // Initialization
@@ -98,7 +94,7 @@ int main(void)
98
94
  {
99
95
  // Update
100
96
  //----------------------------------------------------------------------------------
101
- UpdateCamera(&camera); // Update camera
97
+ UpdateCamera(&camera);
102
98
 
103
99
  if (IsKeyDown(KEY_UP))
104
100
  {
@@ -5,10 +5,12 @@
5
5
  * NOTE: This example requires raylib OpenGL 3.3 for shaders support and only #version 330
6
6
  * is currently supported. OpenGL ES 2.0 platforms are not supported at the moment.
7
7
  *
8
- * This example has been created using raylib 3.0 (www.raylib.com)
9
- * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
8
+ * Example originally created with raylib 3.0, last time updated with raylib 3.5
10
9
  *
11
- * Copyright (c) 2020 Ramon Santamaria (@raysan5)
10
+ * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
11
+ * BSD-like license that allows static linking with closed source software
12
+ *
13
+ * Copyright (c) 2020-2022 Ramon Santamaria (@raysan5)
12
14
  *
13
15
  ********************************************************************************************/
14
16
 
@@ -23,12 +25,15 @@
23
25
  #define GLSL_VERSION 100
24
26
  #endif
25
27
 
28
+ //------------------------------------------------------------------------------------
29
+ // Program main entry point
30
+ //------------------------------------------------------------------------------------
26
31
  int main(void)
27
32
  {
28
33
  // Initialization
29
34
  //--------------------------------------------------------------------------------------
30
- int screenWidth = 800;
31
- int screenHeight = 450;
35
+ const int screenWidth = 800;
36
+ const int screenHeight = 450;
32
37
 
33
38
  InitWindow(screenWidth, screenHeight, "raylib [shaders] example - hot reloading");
34
39
 
@@ -1,18 +1,20 @@
1
1
  /*******************************************************************************************
2
2
  *
3
- * raylib [shaders] example - julia sets
3
+ * raylib [shaders] example - Julia sets
4
4
  *
5
5
  * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
6
6
  * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
7
7
  *
8
8
  * NOTE: Shaders used in this example are #version 330 (OpenGL 3.3).
9
9
  *
10
- * This example has been created using raylib 2.5 (www.raylib.com)
11
- * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
10
+ * Example originally created with raylib 2.5, last time updated with raylib 4.0
12
11
  *
13
12
  * Example contributed by eggmund (@eggmund) and reviewed by Ramon Santamaria (@raysan5)
14
13
  *
15
- * Copyright (c) 2019 eggmund (@eggmund) and Ramon Santamaria (@raysan5)
14
+ * Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
15
+ * BSD-like license that allows static linking with closed source software
16
+ *
17
+ * Copyright (c) 2019-2022 eggmund (@eggmund) and Ramon Santamaria (@raysan5)
16
18
  *
17
19
  ********************************************************************************************/
18
20
 
@@ -35,6 +37,9 @@ const float pointsOfInterest[6][2] =
35
37
  { -0.70176f, -0.3842f },
36
38
  };
37
39
 
40
+ //------------------------------------------------------------------------------------
41
+ // Program main entry point
42
+ //------------------------------------------------------------------------------------
38
43
  int main(void)
39
44
  {
40
45
  // Initialization