koffi 2.1.1 → 2.1.3
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.
- package/ChangeLog.md +12 -0
- package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
- package/doc/templates/badges.html +3 -0
- package/package.json +2 -2
- package/src/abi_arm64.cc +35 -1
- package/src/abi_x64_win.cc +2 -8
- package/src/abi_x86.cc +1 -7
- package/src/ffi.cc +2 -2
- package/src/ffi.hh +1 -1
- package/src/util.hh +6 -0
- package/test/raylib.js +37 -5
- package/vendor/libcc/libcc.cc +430 -196
- package/vendor/libcc/libcc.hh +1417 -1283
- package/vendor/raylib/BINDINGS.md +87 -70
- package/vendor/raylib/CHANGELOG +263 -50
- package/vendor/raylib/CMakeLists.txt +12 -0
- package/vendor/raylib/CMakeOptions.txt +8 -1
- package/vendor/raylib/CONVENTIONS.md +2 -3
- package/vendor/raylib/FAQ.md +137 -0
- package/vendor/raylib/HISTORY.md +62 -29
- package/vendor/raylib/LICENSE +1 -1
- package/vendor/raylib/README.md +22 -17
- package/vendor/raylib/ROADMAP.md +8 -7
- package/vendor/raylib/cmake/CompileDefinitions.cmake +19 -15
- package/vendor/raylib/cmake/GlfwImport.cmake +2 -0
- package/vendor/raylib/cmake/LibraryConfigurations.cmake +22 -16
- package/vendor/raylib/cmake/raylib-config.cmake +52 -49
- package/vendor/raylib/examples/CMakeLists.txt +14 -9
- package/vendor/raylib/examples/Makefile +112 -125
- package/vendor/raylib/examples/Makefile.Android +1 -1
- package/vendor/raylib/examples/Makefile.Web +145 -158
- package/vendor/raylib/examples/README.md +141 -141
- package/vendor/raylib/examples/audio/audio_module_playing.c +9 -4
- package/vendor/raylib/examples/audio/audio_multichannel_sound.c +8 -3
- package/vendor/raylib/examples/audio/audio_music_stream.c +16 -11
- package/vendor/raylib/examples/audio/audio_raw_stream.c +57 -9
- package/vendor/raylib/examples/audio/audio_sound_loading.c +8 -3
- package/vendor/raylib/examples/audio/audio_stream_effects.c +179 -0
- package/vendor/raylib/examples/audio/audio_stream_effects.png +0 -0
- package/vendor/raylib/examples/build.zig +17 -6
- package/vendor/raylib/examples/core/core_2d_camera.c +8 -4
- package/vendor/raylib/examples/core/core_2d_camera_mouse_zoom.c +105 -0
- package/vendor/raylib/examples/core/core_2d_camera_mouse_zoom.png +0 -0
- package/vendor/raylib/examples/core/core_2d_camera_platformer.c +11 -6
- package/vendor/raylib/examples/core/core_3d_camera_first_person.c +9 -4
- package/vendor/raylib/examples/core/core_3d_camera_free.c +9 -4
- package/vendor/raylib/examples/core/core_3d_camera_mode.c +8 -3
- package/vendor/raylib/examples/core/core_3d_picking.c +9 -4
- package/vendor/raylib/examples/core/core_basic_screen_manager.c +9 -7
- package/vendor/raylib/examples/core/core_basic_window.c +8 -3
- package/vendor/raylib/examples/core/core_basic_window_web.c +13 -11
- package/vendor/raylib/examples/core/core_custom_frame_control.c +9 -4
- package/vendor/raylib/examples/core/core_custom_logging.c +12 -8
- package/vendor/raylib/examples/core/core_drop_files.c +20 -12
- package/vendor/raylib/examples/core/core_input_gamepad.c +20 -15
- package/vendor/raylib/examples/core/core_input_gestures.c +19 -15
- package/vendor/raylib/examples/core/core_input_keys.c +8 -3
- package/vendor/raylib/examples/core/core_input_mouse.c +8 -3
- package/vendor/raylib/examples/core/core_input_mouse_wheel.c +8 -3
- package/vendor/raylib/examples/core/core_input_multitouch.c +8 -3
- package/vendor/raylib/examples/core/core_loading_thread.c +10 -6
- package/vendor/raylib/examples/core/core_random_values.c +8 -3
- package/vendor/raylib/examples/core/core_scissor_test.c +8 -3
- package/vendor/raylib/examples/core/core_smooth_pixelperfect.c +9 -4
- package/vendor/raylib/examples/core/core_split_screen.c +8 -3
- package/vendor/raylib/examples/core/core_storage_values.c +109 -3
- package/vendor/raylib/examples/core/core_vr_simulator.c +15 -7
- package/vendor/raylib/examples/core/core_window_flags.c +8 -3
- package/vendor/raylib/examples/core/core_window_letterbox.c +13 -18
- package/vendor/raylib/examples/core/core_window_should_close.c +77 -0
- package/vendor/raylib/examples/core/core_window_should_close.png +0 -0
- package/vendor/raylib/examples/core/core_world_screen.c +9 -4
- package/vendor/raylib/examples/examples_template.c +8 -3
- package/vendor/raylib/examples/models/models_animation.c +11 -7
- package/vendor/raylib/examples/models/models_billboard.c +9 -4
- package/vendor/raylib/examples/models/models_box_collisions.c +8 -3
- package/vendor/raylib/examples/models/models_cubicmap.c +9 -4
- package/vendor/raylib/examples/models/models_first_person_maze.c +9 -4
- package/vendor/raylib/examples/models/models_geometric_shapes.c +8 -3
- package/vendor/raylib/examples/models/models_heightmap.c +9 -4
- package/vendor/raylib/examples/models/models_loading.c +21 -17
- package/vendor/raylib/examples/models/models_loading_gltf.c +15 -41
- package/vendor/raylib/examples/models/models_loading_vox.c +9 -4
- package/vendor/raylib/examples/models/models_mesh_generation.c +71 -58
- package/vendor/raylib/examples/models/models_mesh_picking.c +25 -7
- package/vendor/raylib/examples/models/models_orthographic_projection.c +8 -5
- package/vendor/raylib/examples/models/models_rlgl_solar_system.c +6 -4
- package/vendor/raylib/examples/models/models_skybox.c +16 -12
- package/vendor/raylib/examples/models/models_waving_cubes.c +9 -4
- package/vendor/raylib/examples/models/models_yaw_pitch_roll.c +12 -7
- package/vendor/raylib/examples/models/resources/LICENSE.md +9 -10
- package/vendor/raylib/examples/models/resources/models/gltf/LICENSE +2 -23
- package/vendor/raylib/examples/models/resources/models/gltf/{raylib_32x32.glb → raylib_logo_3d.glb} +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/robot.blend +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/robot.glb +0 -0
- package/vendor/raylib/examples/others/easings_testbed.c +10 -8
- package/vendor/raylib/examples/others/easings_testbed.png +0 -0
- package/vendor/raylib/examples/others/embedded_files_loading.c +10 -5
- package/vendor/raylib/examples/others/embedded_files_loading.png +0 -0
- package/vendor/raylib/examples/others/raylib_opengl_interop.c +10 -6
- package/vendor/raylib/{src/extras/easings.h → examples/others/reasings.h} +38 -38
- package/vendor/raylib/examples/others/rlgl_compute_shader.c +21 -20
- package/vendor/raylib/examples/others/rlgl_compute_shader.png +0 -0
- package/vendor/raylib/examples/others/rlgl_standalone.c +4 -4
- package/vendor/raylib/examples/others/rlgl_standalone.png +0 -0
- package/vendor/raylib/examples/raylib_compile_execute.bat +2 -2
- package/vendor/raylib/examples/shaders/resources/shaders/glsl330/lighting.fs +1 -1
- package/vendor/raylib/examples/shaders/resources/shaders/glsl330/{base_lighting_instanced.vs → lighting_instancing.vs} +2 -2
- package/vendor/raylib/examples/shaders/rlights.h +14 -27
- package/vendor/raylib/examples/shaders/shaders_basic_lighting.c +24 -26
- package/vendor/raylib/examples/shaders/shaders_custom_uniform.c +10 -5
- package/vendor/raylib/examples/shaders/shaders_eratosthenes.c +13 -8
- package/vendor/raylib/examples/shaders/shaders_fog.c +8 -12
- package/vendor/raylib/examples/shaders/shaders_hot_reloading.c +10 -5
- package/vendor/raylib/examples/shaders/shaders_julia_set.c +9 -4
- package/vendor/raylib/examples/shaders/shaders_mesh_instancing.c +45 -119
- package/vendor/raylib/examples/shaders/shaders_model_shader.c +10 -5
- package/vendor/raylib/examples/shaders/shaders_multi_sample2d.c +8 -3
- package/vendor/raylib/examples/shaders/shaders_palette_switch.c +8 -3
- package/vendor/raylib/examples/shaders/shaders_postprocessing.c +9 -4
- package/vendor/raylib/examples/shaders/shaders_raymarching.c +14 -11
- package/vendor/raylib/examples/shaders/shaders_shapes_textures.c +8 -3
- package/vendor/raylib/examples/shaders/shaders_simple_mask.c +10 -5
- package/vendor/raylib/examples/shaders/shaders_spotlight.c +10 -6
- package/vendor/raylib/examples/shaders/shaders_texture_drawing.c +9 -4
- package/vendor/raylib/examples/shaders/shaders_texture_outline.c +8 -3
- package/vendor/raylib/examples/shaders/shaders_texture_waves.c +8 -3
- package/vendor/raylib/{src/extras → examples/shapes}/raygui.h +1290 -1141
- package/vendor/raylib/examples/{others/easings.h → shapes/reasings.h} +40 -40
- package/vendor/raylib/examples/shapes/shapes_basic_shapes.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_bouncing_ball.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_collision_area.c +10 -4
- package/vendor/raylib/examples/shapes/shapes_colors_palette.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_draw_circle_sector.c +9 -4
- package/vendor/raylib/examples/shapes/shapes_draw_rectangle_rounded.c +9 -4
- package/vendor/raylib/examples/shapes/shapes_draw_ring.c +10 -6
- package/vendor/raylib/examples/shapes/shapes_easings_ball_anim.c +9 -4
- package/vendor/raylib/examples/shapes/shapes_easings_box_anim.c +9 -4
- package/vendor/raylib/examples/shapes/shapes_easings_rectangle_array.c +9 -4
- package/vendor/raylib/examples/shapes/shapes_following_eyes.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_lines_bezier.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_logo_raylib.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_logo_raylib_anim.c +8 -3
- package/vendor/raylib/examples/shapes/shapes_rectangle_scaling.c +14 -5
- package/vendor/raylib/examples/shapes/shapes_top_down_lights.c +355 -0
- package/vendor/raylib/examples/shapes/shapes_top_down_lights.png +0 -0
- package/vendor/raylib/examples/text/resources/DotGothic16-Regular.ttf +0 -0
- package/vendor/raylib/examples/text/resources/DotGothic16-Regular_OFL.txt +93 -0
- package/vendor/raylib/examples/text/resources/LICENSE.md +1 -1
- package/vendor/raylib/examples/text/text_codepoints_loading.c +138 -0
- package/vendor/raylib/examples/text/text_codepoints_loading.png +0 -0
- package/vendor/raylib/examples/text/text_draw_3d.c +42 -33
- package/vendor/raylib/examples/text/text_font_filters.c +14 -11
- package/vendor/raylib/examples/text/text_font_loading.c +9 -4
- package/vendor/raylib/examples/text/text_font_sdf.c +9 -4
- package/vendor/raylib/examples/text/text_font_spritefont.c +12 -6
- package/vendor/raylib/examples/text/text_format_text.c +8 -3
- package/vendor/raylib/examples/text/text_input_box.c +8 -3
- package/vendor/raylib/examples/text/text_raylib_fonts.c +9 -4
- package/vendor/raylib/examples/text/text_rectangle_bounds.c +9 -5
- package/vendor/raylib/examples/text/text_unicode.c +9 -7
- package/vendor/raylib/examples/text/text_writing_anim.c +8 -3
- package/vendor/raylib/examples/textures/resources/scarfy_run.gif +0 -0
- package/vendor/raylib/examples/textures/textures_background_scrolling.c +8 -3
- package/vendor/raylib/examples/textures/textures_blend_modes.c +8 -3
- package/vendor/raylib/examples/textures/textures_bunnymark.c +8 -3
- package/vendor/raylib/examples/textures/textures_draw_tiled.c +14 -10
- package/vendor/raylib/examples/textures/textures_fog_of_war.c +154 -0
- package/vendor/raylib/examples/textures/textures_fog_of_war.png +0 -0
- package/vendor/raylib/examples/textures/textures_gif_player.c +121 -0
- package/vendor/raylib/examples/textures/textures_gif_player.png +0 -0
- package/vendor/raylib/examples/textures/textures_image_drawing.c +8 -3
- package/vendor/raylib/examples/textures/textures_image_generation.c +8 -3
- package/vendor/raylib/examples/textures/textures_image_loading.c +8 -3
- package/vendor/raylib/examples/textures/textures_image_processing.c +8 -3
- package/vendor/raylib/examples/textures/textures_image_text.c +8 -3
- package/vendor/raylib/examples/textures/textures_logo_raylib.c +8 -3
- package/vendor/raylib/examples/textures/textures_mouse_painting.c +9 -4
- package/vendor/raylib/examples/textures/textures_npatch_drawing.c +8 -3
- package/vendor/raylib/examples/textures/textures_particles_blending.c +8 -3
- package/vendor/raylib/examples/textures/textures_polygon.c +9 -5
- package/vendor/raylib/examples/textures/textures_raw_data.c +8 -3
- package/vendor/raylib/examples/textures/{textures_rectangle.c → textures_sprite_anim.c} +11 -5
- package/vendor/raylib/examples/textures/{textures_rectangle.png → textures_sprite_anim.png} +0 -0
- package/vendor/raylib/examples/textures/textures_sprite_button.c +8 -3
- package/vendor/raylib/examples/textures/textures_sprite_explosion.c +8 -3
- package/vendor/raylib/examples/textures/textures_srcrec_dstrec.c +8 -3
- package/vendor/raylib/examples/textures/textures_to_image.c +8 -3
- package/vendor/raylib/parser/LICENSE +1 -1
- package/vendor/raylib/parser/Makefile +28 -0
- package/vendor/raylib/parser/README.md +49 -5
- package/vendor/raylib/parser/output/raylib_api.json +10717 -0
- package/vendor/raylib/parser/output/raylib_api.lua +7435 -0
- package/vendor/raylib/parser/{raylib_api.txt → output/raylib_api.txt} +1371 -824
- package/vendor/raylib/parser/{raylib_api.xml → output/raylib_api.xml} +827 -595
- package/vendor/raylib/parser/raylib_parser.c +1174 -196
- package/vendor/raylib/projects/4coder/Makefile +2 -4
- package/vendor/raylib/projects/4coder/main.c +0 -1
- package/vendor/raylib/projects/CMake/CMakeLists.txt +13 -16
- package/vendor/raylib/projects/CMake/README.md +27 -0
- package/vendor/raylib/projects/CMake/core_basic_window.c +52 -31
- package/vendor/raylib/projects/CodeBlocks/README.md +4 -4
- package/vendor/raylib/projects/Geany/core_basic_window.c +1 -1
- package/vendor/raylib/projects/Notepad++/c_raylib.xml +168 -128
- package/vendor/raylib/projects/Notepad++/npes_saved_tcc.txt +0 -0
- package/vendor/raylib/projects/Notepad++/npes_saved_w64devkit.txt +0 -0
- package/vendor/raylib/projects/Notepad++/npes_saved_zig.txt +0 -0
- package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_npp.xml +168 -84
- package/vendor/raylib/projects/Notepad++/raylib_npp_parser/raylib_to_parse.h +67 -51
- package/vendor/raylib/projects/README.md +1 -1
- package/vendor/raylib/projects/VSCode/.vscode/c_cpp_properties.json +1 -1
- package/vendor/raylib/projects/VSCode/Makefile +8 -11
- package/vendor/raylib/projects/VSCode/main.c +53 -26
- package/vendor/raylib/projects/VSCode/resources/LICENSE +1 -0
- package/vendor/raylib/projects/scripts/build-linux.sh +6 -6
- package/vendor/raylib/projects/scripts/build-osx.sh +6 -6
- package/vendor/raylib/projects/scripts/build-rpi.sh +6 -6
- package/vendor/raylib/projects/scripts/build-windows.bat +2 -2
- package/vendor/raylib/src/CMakeLists.txt +6 -7
- package/vendor/raylib/src/Makefile +209 -103
- package/vendor/raylib/src/build.zig +56 -20
- package/vendor/raylib/src/config.h +32 -27
- package/vendor/raylib/src/external/cgltf.h +342 -104
- package/vendor/raylib/src/external/dr_wav.h +487 -225
- package/vendor/raylib/src/external/glfw/src/posix_time.c +1 -3
- package/vendor/raylib/src/external/glfw/src/wl_init.c +1 -3
- package/vendor/raylib/src/external/jar_xm.h +2 -1
- package/vendor/raylib/src/external/miniaudio.h +62251 -42061
- package/vendor/raylib/src/external/qoi.h +671 -0
- package/vendor/raylib/src/external/stb_vorbis.h +1 -1
- package/vendor/raylib/src/external/vox_loader.h +30 -25
- package/vendor/raylib/src/minshell.html +82 -0
- package/vendor/raylib/src/raudio.c +359 -201
- package/vendor/raylib/src/raylib.dll.rc +5 -5
- package/vendor/raylib/src/raylib.dll.rc.data +0 -0
- package/vendor/raylib/src/raylib.h +95 -63
- package/vendor/raylib/src/raylib.rc +5 -5
- package/vendor/raylib/src/raylib.rc.data +0 -0
- package/vendor/raylib/src/raymath.h +391 -133
- package/vendor/raylib/src/rcamera.h +32 -41
- package/vendor/raylib/src/rcore.c +775 -471
- package/vendor/raylib/src/rgestures.h +5 -5
- package/vendor/raylib/src/rglfw.c +3 -3
- package/vendor/raylib/src/rlgl.h +184 -144
- package/vendor/raylib/src/rmodels.c +207 -144
- package/vendor/raylib/src/rshapes.c +105 -47
- package/vendor/raylib/src/rtext.c +255 -38
- package/vendor/raylib/src/rtextures.c +167 -71
- package/vendor/raylib/src/shell.html +63 -63
- package/vendor/raylib/src/utils.c +49 -3
- package/vendor/raylib/src/utils.h +3 -3
- package/build/qemu/2.1.1/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.1/koffi_win32_x64.tar.gz +0 -0
- package/vendor/raylib/CONTRIBUTORS.md +0 -63
- package/vendor/raylib/SPONSORS.md +0 -68
- package/vendor/raylib/examples/core/core_quat_conversion.c +0 -132
- package/vendor/raylib/examples/core/core_quat_conversion.png +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/AnimatedMorphCube.glb +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/AnimatedTriangle.gltf +0 -118
- package/vendor/raylib/examples/models/resources/models/gltf/BoxAnimated.glb +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/girl.glb +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/rigged_figure.glb +0 -0
- package/vendor/raylib/examples/models/resources/models/gltf/vertex_colored_object.glb +0 -0
- package/vendor/raylib/examples/models/resources/models/iqm/vertex_colored_object.iqm +0 -0
- package/vendor/raylib/examples/models/rlights.h +0 -183
- package/vendor/raylib/examples/others/raudio_standalone.c +0 -152
- package/vendor/raylib/examples/others/resources/audio/country.mp3 +0 -0
- package/vendor/raylib/examples/others/resources/audio/target.ogg +0 -0
- package/vendor/raylib/examples/others/resources/audio/weird.wav +0 -0
- package/vendor/raylib/examples/physics/physics_demo.c +0 -128
- package/vendor/raylib/examples/physics/physics_demo.png +0 -0
- package/vendor/raylib/examples/physics/physics_friction.c +0 -142
- package/vendor/raylib/examples/physics/physics_friction.png +0 -0
- package/vendor/raylib/examples/physics/physics_movement.c +0 -128
- package/vendor/raylib/examples/physics/physics_movement.png +0 -0
- package/vendor/raylib/examples/physics/physics_restitution.c +0 -129
- package/vendor/raylib/examples/physics/physics_restitution.png +0 -0
- package/vendor/raylib/examples/physics/physics_shatter.c +0 -111
- package/vendor/raylib/examples/physics/physics_shatter.png +0 -0
- package/vendor/raylib/parser/raylib_api.json +0 -6668
- package/vendor/raylib/projects/VS2019/raylib/raylib.rc +0 -0
- package/vendor/raylib/projects/VS2019/raylib/resource.h +0 -14
- package/vendor/raylib/src/extras/physac.h +0 -1977
- package/vendor/raylib/src/extras/rmem.h +0 -751
- package/vendor/raylib/src/raudio.h +0 -198
package/ChangeLog.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## History
|
|
4
4
|
|
|
5
|
+
### Koffi 2.1.3
|
|
6
|
+
|
|
7
|
+
**Main changes:**
|
|
8
|
+
|
|
9
|
+
- Support up to 16 output parameters (instead of 8)
|
|
10
|
+
|
|
11
|
+
### Koffi 2.1.2
|
|
12
|
+
|
|
13
|
+
**Main changes:**
|
|
14
|
+
|
|
15
|
+
- Support up to 8 output parameters (instead of 4)
|
|
16
|
+
|
|
5
17
|
### Koffi 2.1.1
|
|
6
18
|
|
|
7
19
|
**Main fixes:**
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
<div style="text-align: center; margin-top: 2em;">
|
|
2
2
|
<a href="https://www.npmjs.com/package/koffi"><img src="https://img.shields.io/badge/NPM-{{ stable }}-brightgreen" alt="NPM"/></a>
|
|
3
3
|
<a href="https://github.com/Koromix/luigi/tree/master/koffi"><img src="https://img.shields.io/badge/GitHub-Koffi-ff6600" alt="GitHub"/></a>
|
|
4
|
+
|
|
5
|
+
<br><br>
|
|
6
|
+
<iframe src="https://github.com/sponsors/Koromix/button" title="Sponsor Koromix" height="35" width="116" style="border: 0;"></iframe>
|
|
4
7
|
</div>
|
package/package.json
CHANGED
package/src/abi_arm64.cc
CHANGED
|
@@ -142,6 +142,11 @@ bool AnalyseFunction(Napi::Env, InstanceData *, FunctionInfo *func)
|
|
|
142
142
|
|
|
143
143
|
int gpr_avail = 8;
|
|
144
144
|
int vec_avail = 8;
|
|
145
|
+
#ifdef _M_ARM64EC
|
|
146
|
+
if (func->variadic) {
|
|
147
|
+
gpr_avail = 4;
|
|
148
|
+
}
|
|
149
|
+
#endif
|
|
145
150
|
|
|
146
151
|
for (ParameterInfo ¶m: func->parameters) {
|
|
147
152
|
switch (param.type->primitive) {
|
|
@@ -179,6 +184,23 @@ bool AnalyseFunction(Napi::Env, InstanceData *, FunctionInfo *func)
|
|
|
179
184
|
case PrimitiveKind::Record: {
|
|
180
185
|
int hfa = IsHFA(param.type);
|
|
181
186
|
|
|
187
|
+
#ifdef _M_ARM64EC
|
|
188
|
+
if (func->variadic) {
|
|
189
|
+
if (IsRegularSize(param.type->size, 8) && gpr_avail) {
|
|
190
|
+
param.gpr_count = 1;
|
|
191
|
+
gpr_avail--;
|
|
192
|
+
} else {
|
|
193
|
+
if (gpr_avail) {
|
|
194
|
+
param.gpr_count = 1;
|
|
195
|
+
gpr_avail--;
|
|
196
|
+
}
|
|
197
|
+
param.use_memory = true;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
#endif
|
|
203
|
+
|
|
182
204
|
#if defined(_WIN32)
|
|
183
205
|
if (param.variadic) {
|
|
184
206
|
hfa = 0;
|
|
@@ -210,7 +232,7 @@ bool AnalyseFunction(Napi::Env, InstanceData *, FunctionInfo *func)
|
|
|
210
232
|
// Big types (more than 16 bytes) are replaced by a pointer
|
|
211
233
|
if (gpr_avail) {
|
|
212
234
|
param.gpr_count = 1;
|
|
213
|
-
gpr_avail
|
|
235
|
+
gpr_avail--;
|
|
214
236
|
}
|
|
215
237
|
param.use_memory = true;
|
|
216
238
|
}
|
|
@@ -265,6 +287,18 @@ bool CallData::Prepare(const Napi::CallbackInfo &info)
|
|
|
265
287
|
gpr_ptr[8] = (uint64_t)return_ptr;
|
|
266
288
|
}
|
|
267
289
|
|
|
290
|
+
#ifdef _M_ARM64EC
|
|
291
|
+
if (func->variadic) {
|
|
292
|
+
gpr_ptr[4] = (uint64_t)args_ptr;
|
|
293
|
+
gpr_ptr[5] = 0;
|
|
294
|
+
|
|
295
|
+
for (Size i = 4; i < func->parameters.len; i++) {
|
|
296
|
+
const ParameterInfo ¶m = func->parameters[i];
|
|
297
|
+
gpr_ptr[5] += std::max((Size)8, param.type->size);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
#endif
|
|
301
|
+
|
|
268
302
|
#ifdef __APPLE__
|
|
269
303
|
#define PUSH_INTEGER(CType) \
|
|
270
304
|
do { \
|
package/src/abi_x64_win.cc
CHANGED
|
@@ -109,18 +109,12 @@ RG_STATIC_ASSERT(RG_LEN(Trampolines) == MaxTrampolines * 2);
|
|
|
109
109
|
|
|
110
110
|
static RG_THREAD_LOCAL CallData *exec_call;
|
|
111
111
|
|
|
112
|
-
static inline bool IsRegular(Size size)
|
|
113
|
-
{
|
|
114
|
-
bool regular = (size <= 8 && !(size & (size - 1)));
|
|
115
|
-
return regular;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
112
|
bool AnalyseFunction(Napi::Env, InstanceData *, FunctionInfo *func)
|
|
119
113
|
{
|
|
120
|
-
func->ret.regular =
|
|
114
|
+
func->ret.regular = IsRegularSize(func->ret.type->size, 8);
|
|
121
115
|
|
|
122
116
|
for (ParameterInfo ¶m: func->parameters) {
|
|
123
|
-
param.regular =
|
|
117
|
+
param.regular = IsRegularSize(param.type->size, 8);
|
|
124
118
|
func->forward_fp |= IsFloat(param.type);
|
|
125
119
|
}
|
|
126
120
|
|
package/src/abi_x86.cc
CHANGED
|
@@ -115,12 +115,6 @@ RG_STATIC_ASSERT(RG_LEN(Trampolines) == MaxTrampolines * 2);
|
|
|
115
115
|
|
|
116
116
|
static RG_THREAD_LOCAL CallData *exec_call;
|
|
117
117
|
|
|
118
|
-
static inline bool IsRegular(Size size)
|
|
119
|
-
{
|
|
120
|
-
bool regular = (size <= 8 && !(size & (size - 1)));
|
|
121
|
-
return regular;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
118
|
bool AnalyseFunction(Napi::Env env, InstanceData *instance, FunctionInfo *func)
|
|
125
119
|
{
|
|
126
120
|
if (!func->lib && func->convention != CallConvention::Cdecl &&
|
|
@@ -137,7 +131,7 @@ bool AnalyseFunction(Napi::Env env, InstanceData *instance, FunctionInfo *func)
|
|
|
137
131
|
func->ret.trivial = true;
|
|
138
132
|
#if defined(_WIN32) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
|
139
133
|
} else {
|
|
140
|
-
func->ret.trivial =
|
|
134
|
+
func->ret.trivial = IsRegularSize(func->ret.type->size, 8);
|
|
141
135
|
#endif
|
|
142
136
|
}
|
|
143
137
|
#ifndef _WIN32
|
package/src/ffi.cc
CHANGED
|
@@ -684,7 +684,7 @@ static bool ParseClassicFunction(Napi::Env env, Napi::String name, Napi::Value r
|
|
|
684
684
|
return false;
|
|
685
685
|
}
|
|
686
686
|
if ((param.directions & 2) && ++func->out_parameters >= MaxOutParameters) {
|
|
687
|
-
ThrowError<Napi::TypeError>(env, "Functions cannot have more than
|
|
687
|
+
ThrowError<Napi::TypeError>(env, "Functions cannot have more than %1 output parameters", MaxOutParameters);
|
|
688
688
|
return false;
|
|
689
689
|
}
|
|
690
690
|
|
|
@@ -1031,7 +1031,7 @@ static Napi::Value TranslateVariadicCall(const Napi::CallbackInfo &info)
|
|
|
1031
1031
|
return env.Null();
|
|
1032
1032
|
}
|
|
1033
1033
|
if (RG_UNLIKELY((param.directions & 2) && ++func.out_parameters >= MaxOutParameters)) {
|
|
1034
|
-
ThrowError<Napi::TypeError>(env, "Functions cannot have more than
|
|
1034
|
+
ThrowError<Napi::TypeError>(env, "Functions cannot have more than %1 output parameters", MaxOutParameters);
|
|
1035
1035
|
return env.Null();
|
|
1036
1036
|
}
|
|
1037
1037
|
|
package/src/ffi.hh
CHANGED
|
@@ -28,7 +28,7 @@ static const int DefaultMaxAsyncCalls = 64;
|
|
|
28
28
|
|
|
29
29
|
static const int MaxAsyncCalls = 256;
|
|
30
30
|
static const Size MaxParameters = 32;
|
|
31
|
-
static const Size MaxOutParameters =
|
|
31
|
+
static const Size MaxOutParameters = 16;
|
|
32
32
|
static const Size MaxTrampolines = 16;
|
|
33
33
|
|
|
34
34
|
extern const int TypeInfoMarker;
|
package/src/util.hh
CHANGED
|
@@ -47,6 +47,12 @@ static inline bool IsFloat(const TypeInfo *type)
|
|
|
47
47
|
return fp;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
static inline bool IsRegularSize(Size size, Size max)
|
|
51
|
+
{
|
|
52
|
+
bool regular = (size <= max && !(size & (size - 1)));
|
|
53
|
+
return regular;
|
|
54
|
+
}
|
|
55
|
+
|
|
50
56
|
const TypeInfo *ResolveType(Napi::Value value, int *out_directions = nullptr);
|
|
51
57
|
const TypeInfo *ResolveType(InstanceData *instance, Span<const char> str, int *out_directions = nullptr);
|
|
52
58
|
const TypeInfo *MakePointerType(InstanceData *instance, const TypeInfo *type, int count = 1);
|
package/test/raylib.js
CHANGED
|
@@ -75,14 +75,26 @@ main();
|
|
|
75
75
|
|
|
76
76
|
async function main() {
|
|
77
77
|
try {
|
|
78
|
-
|
|
78
|
+
let display = false;
|
|
79
|
+
|
|
80
|
+
for (let i = 2; i < process.argv.length; i++) {
|
|
81
|
+
let arg = process.argv[i];
|
|
82
|
+
|
|
83
|
+
if (arg == '-d' || arg == '--display') {
|
|
84
|
+
display = true;
|
|
85
|
+
} else if (arg[0] == '-') {
|
|
86
|
+
throw new Error(`Unknown option '${process.argv[i]}'`)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
await test(display);
|
|
79
91
|
} catch (err) {
|
|
80
92
|
console.error(err);
|
|
81
93
|
process.exit(1);
|
|
82
94
|
}
|
|
83
95
|
}
|
|
84
96
|
|
|
85
|
-
async function test() {
|
|
97
|
+
async function test(display) {
|
|
86
98
|
let lib_filename = __dirname + '/build/raylib' + koffi.extension;
|
|
87
99
|
let lib = koffi.load(lib_filename);
|
|
88
100
|
|
|
@@ -94,11 +106,20 @@ async function test() {
|
|
|
94
106
|
const MeasureTextEx = lib.func('MeasureTextEx', Vector2, [Font, 'str', 'float', 'float']);
|
|
95
107
|
const ImageDrawTextEx = lib.func('ImageDrawTextEx', 'void', [koffi.pointer(Image), Font, 'str', Vector2, 'float', 'float', Color]);
|
|
96
108
|
const ExportImage = lib.func('ExportImage', 'bool', [Image, 'str']);
|
|
109
|
+
const DrawTextEx = lib.func('DrawTextEx', 'void', [Font, 'str', Vector2, 'float', 'float', Color]);
|
|
110
|
+
const BeginDrawing = lib.func('BeginDrawing', 'void', []);
|
|
111
|
+
const EndDrawing = lib.func('EndDrawing', 'void', []);
|
|
112
|
+
const ClearBackground = lib.func('ClearBackground', 'void', [Color]);
|
|
113
|
+
const LoadTextureFromImage = lib.func('LoadTextureFromImage', 'Texture', [Image]);
|
|
114
|
+
const DrawTexture = lib.func('DrawTexture', 'void', [Texture, 'int', 'int', Color]);
|
|
115
|
+
const WindowShouldClose = lib.func('WindowShouldClose', 'bool', []);
|
|
116
|
+
const PollInputEvents = lib.func('PollInputEvents', 'void', []);
|
|
97
117
|
|
|
98
118
|
// We need to call InitWindow before using anything else (such as fonts)
|
|
99
119
|
SetTraceLogLevel(4); // Warnings
|
|
100
|
-
|
|
101
|
-
|
|
120
|
+
if (!display)
|
|
121
|
+
SetWindowState(0x80); // Hidden
|
|
122
|
+
InitWindow(800, 600, "Raylib Test");
|
|
102
123
|
|
|
103
124
|
let img = GenImageColor(800, 600, { r: 0, g: 0, b: 0, a: 255 });
|
|
104
125
|
let font = GetFontDefault();
|
|
@@ -122,6 +143,17 @@ async function test() {
|
|
|
122
143
|
ImageDrawTextEx(img, font, text, pos, 10, 1, color);
|
|
123
144
|
}
|
|
124
145
|
|
|
146
|
+
if (display) {
|
|
147
|
+
BeginDrawing();
|
|
148
|
+
ClearBackground({r: 0, g: 0, b: 0, a: 255});
|
|
149
|
+
let tex = LoadTextureFromImage(img);
|
|
150
|
+
DrawTexture(tex, 0, 0, {r: 255, g: 255, b: 255, a: 255});
|
|
151
|
+
EndDrawing();
|
|
152
|
+
|
|
153
|
+
while (!WindowShouldClose())
|
|
154
|
+
PollInputEvents();
|
|
155
|
+
}
|
|
156
|
+
|
|
125
157
|
// In theory we could directly checksum the image data, but we can't do it easily right now
|
|
126
158
|
// until koffi gives us something to transform a pointer to a buffer.
|
|
127
159
|
let tmp_dir = fs.mkdtempSync(path.join(os.tmpdir(), 'raylib'));
|
|
@@ -144,7 +176,7 @@ async function test() {
|
|
|
144
176
|
reject(err);
|
|
145
177
|
}
|
|
146
178
|
});
|
|
147
|
-
let expected = '
|
|
179
|
+
let expected = '3cd12ec1cf3d001abe5526c8529fc445ebd2aa710e75cf277b33e59db1e51eb4';
|
|
148
180
|
|
|
149
181
|
console.log('Computed checksum: ' + sha256);
|
|
150
182
|
console.log('Expected: ' + expected);
|