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.
- package/ChangeLog.md +6 -0
- package/build/qemu/2.1.2/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.2/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.2/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.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
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*
|
|
23
23
|
* LICENSE: zlib/libpng
|
|
24
24
|
*
|
|
25
|
-
* Copyright (c) 2015-
|
|
25
|
+
* Copyright (c) 2015-2022 Ramon Santamaria (@raysan5)
|
|
26
26
|
*
|
|
27
27
|
* This software is provided "as-is", without any express or implied warranty. In no event
|
|
28
28
|
* will the authors be held liable for any damages arising from the use of this software.
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
// Module Functions Declaration
|
|
104
104
|
//----------------------------------------------------------------------------------
|
|
105
105
|
|
|
106
|
-
#
|
|
106
|
+
#if defined(__cplusplus)
|
|
107
107
|
extern "C" { // Prevents name mangling of functions
|
|
108
108
|
#endif
|
|
109
109
|
|
|
@@ -119,7 +119,7 @@ void SetCameraMoveControls(int keyFront, int keyBack,
|
|
|
119
119
|
int keyUp, int keyDown); // Set camera move controls (1st person and 3rd person cameras)
|
|
120
120
|
#endif
|
|
121
121
|
|
|
122
|
-
#
|
|
122
|
+
#if defined(__cplusplus)
|
|
123
123
|
}
|
|
124
124
|
#endif
|
|
125
125
|
|
|
@@ -150,7 +150,7 @@ void SetCameraMoveControls(int keyFront, int keyBack,
|
|
|
150
150
|
#endif
|
|
151
151
|
|
|
152
152
|
// Camera mouse movement sensitivity
|
|
153
|
-
#define CAMERA_MOUSE_MOVE_SENSITIVITY 0.
|
|
153
|
+
#define CAMERA_MOUSE_MOVE_SENSITIVITY 0.5f // TODO: it should be independant of framerate
|
|
154
154
|
#define CAMERA_MOUSE_SCROLL_SENSITIVITY 1.5f
|
|
155
155
|
|
|
156
156
|
// FREE_CAMERA
|
|
@@ -163,7 +163,7 @@ void SetCameraMoveControls(int keyFront, int keyBack,
|
|
|
163
163
|
#define CAMERA_FREE_PANNING_DIVIDER 5.1f
|
|
164
164
|
|
|
165
165
|
// ORBITAL_CAMERA
|
|
166
|
-
#define CAMERA_ORBITAL_SPEED 0.
|
|
166
|
+
#define CAMERA_ORBITAL_SPEED 0.5f // Radians per second
|
|
167
167
|
|
|
168
168
|
// FIRST_PERSON
|
|
169
169
|
//#define CAMERA_FIRST_PERSON_MOUSE_SENSITIVITY 0.003f
|
|
@@ -171,9 +171,11 @@ void SetCameraMoveControls(int keyFront, int keyBack,
|
|
|
171
171
|
#define CAMERA_FIRST_PERSON_MIN_CLAMP 89.0f
|
|
172
172
|
#define CAMERA_FIRST_PERSON_MAX_CLAMP -89.0f
|
|
173
173
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
#define
|
|
174
|
+
// When walking, y-position of the player moves up-down at step frequency (swinging) but
|
|
175
|
+
// also the body slightly tilts left-right on every step, when all the body weight is left over one foot (tilting)
|
|
176
|
+
#define CAMERA_FIRST_PERSON_STEP_FREQUENCY 1.8f // Step frequency when walking (steps per second)
|
|
177
|
+
#define CAMERA_FIRST_PERSON_SWINGING_DELTA 0.03f // Maximum up-down swinging distance when walking
|
|
178
|
+
#define CAMERA_FIRST_PERSON_TILTING_DELTA 0.005f // Maximum left-right tilting distance when walking
|
|
177
179
|
|
|
178
180
|
// THIRD_PERSON
|
|
179
181
|
//#define CAMERA_THIRD_PERSON_MOUSE_SENSITIVITY 0.003f
|
|
@@ -183,7 +185,7 @@ void SetCameraMoveControls(int keyFront, int keyBack,
|
|
|
183
185
|
#define CAMERA_THIRD_PERSON_OFFSET (Vector3){ 0.4f, 0.0f, 0.0f }
|
|
184
186
|
|
|
185
187
|
// PLAYER (used by camera)
|
|
186
|
-
#define PLAYER_MOVEMENT_SENSITIVITY
|
|
188
|
+
#define PLAYER_MOVEMENT_SENSITIVITY 2.0f
|
|
187
189
|
|
|
188
190
|
//----------------------------------------------------------------------------------
|
|
189
191
|
// Types and Structures Definition
|
|
@@ -204,7 +206,6 @@ typedef struct {
|
|
|
204
206
|
float targetDistance; // Camera distance from position to target
|
|
205
207
|
float playerEyesPosition; // Player eyes position from ground (in meters)
|
|
206
208
|
Vector2 angle; // Camera angle in plane XZ
|
|
207
|
-
Vector2 previousMousePosition; // Previous mouse position
|
|
208
209
|
|
|
209
210
|
// Camera movement control keys
|
|
210
211
|
int moveControl[6]; // Move controls (CAMERA_FIRST_PERSON)
|
|
@@ -221,7 +222,6 @@ static CameraData CAMERA = { // Global CAMERA state context
|
|
|
221
222
|
.targetDistance = 0,
|
|
222
223
|
.playerEyesPosition = 1.85f,
|
|
223
224
|
.angle = { 0 },
|
|
224
|
-
.previousMousePosition = { 0 },
|
|
225
225
|
.moveControl = { 'W', 'S', 'D', 'A', 'E', 'Q' },
|
|
226
226
|
.smoothZoomControl = 341, // raylib: KEY_LEFT_CONTROL
|
|
227
227
|
.altControl = 342, // raylib: KEY_LEFT_ALT
|
|
@@ -265,8 +265,6 @@ void SetCameraMode(Camera camera, int mode)
|
|
|
265
265
|
|
|
266
266
|
CAMERA.playerEyesPosition = camera.position.y; // Init player eyes position to camera Y position
|
|
267
267
|
|
|
268
|
-
CAMERA.previousMousePosition = GetMousePosition(); // Init mouse position
|
|
269
|
-
|
|
270
268
|
// Lock cursor for first person and third person cameras
|
|
271
269
|
if ((mode == CAMERA_FIRST_PERSON) || (mode == CAMERA_THIRD_PERSON)) DisableCursor();
|
|
272
270
|
else EnableCursor();
|
|
@@ -281,13 +279,12 @@ void SetCameraMode(Camera camera, int mode)
|
|
|
281
279
|
// Keys: IsKeyDown()
|
|
282
280
|
void UpdateCamera(Camera *camera)
|
|
283
281
|
{
|
|
284
|
-
static
|
|
282
|
+
static float swingCounter = 0.0f; // Used for 1st person swinging movement
|
|
285
283
|
|
|
286
284
|
// TODO: Compute CAMERA.targetDistance and CAMERA.angle here (?)
|
|
287
285
|
|
|
288
286
|
// Mouse movement detection
|
|
289
|
-
Vector2 mousePositionDelta =
|
|
290
|
-
Vector2 mousePosition = GetMousePosition();
|
|
287
|
+
Vector2 mousePositionDelta = GetMouseDelta();
|
|
291
288
|
float mouseWheelMove = GetMouseWheelMove();
|
|
292
289
|
|
|
293
290
|
// Keys input detection
|
|
@@ -302,14 +299,6 @@ void UpdateCamera(Camera *camera)
|
|
|
302
299
|
IsKeyDown(CAMERA.moveControl[MOVE_UP]),
|
|
303
300
|
IsKeyDown(CAMERA.moveControl[MOVE_DOWN]) };
|
|
304
301
|
|
|
305
|
-
if (CAMERA.mode != CAMERA_CUSTOM)
|
|
306
|
-
{
|
|
307
|
-
mousePositionDelta.x = mousePosition.x - CAMERA.previousMousePosition.x;
|
|
308
|
-
mousePositionDelta.y = mousePosition.y - CAMERA.previousMousePosition.y;
|
|
309
|
-
|
|
310
|
-
CAMERA.previousMousePosition = mousePosition;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
302
|
// Support for multiple automatic camera modes
|
|
314
303
|
// NOTE: In case of CAMERA_CUSTOM nothing happens here, user must update it manually
|
|
315
304
|
switch (CAMERA.mode)
|
|
@@ -388,9 +377,9 @@ void UpdateCamera(Camera *camera)
|
|
|
388
377
|
else
|
|
389
378
|
{
|
|
390
379
|
// Camera panning
|
|
391
|
-
camera->target.x += ((mousePositionDelta.x*CAMERA_FREE_MOUSE_SENSITIVITY)*cosf(CAMERA.angle.x) + (mousePositionDelta.y
|
|
380
|
+
camera->target.x += ((mousePositionDelta.x*CAMERA_FREE_MOUSE_SENSITIVITY)*cosf(CAMERA.angle.x) + (mousePositionDelta.y*-CAMERA_FREE_MOUSE_SENSITIVITY)*sinf(CAMERA.angle.x)*sinf(CAMERA.angle.y))*(CAMERA.targetDistance/CAMERA_FREE_PANNING_DIVIDER);
|
|
392
381
|
camera->target.y += ((mousePositionDelta.y*CAMERA_FREE_MOUSE_SENSITIVITY)*cosf(CAMERA.angle.y))*(CAMERA.targetDistance/CAMERA_FREE_PANNING_DIVIDER);
|
|
393
|
-
camera->target.z += ((mousePositionDelta.x*-CAMERA_FREE_MOUSE_SENSITIVITY)*sinf(CAMERA.angle.x) + (mousePositionDelta.y
|
|
382
|
+
camera->target.z += ((mousePositionDelta.x*-CAMERA_FREE_MOUSE_SENSITIVITY)*sinf(CAMERA.angle.x) + (mousePositionDelta.y*-CAMERA_FREE_MOUSE_SENSITIVITY)*cosf(CAMERA.angle.x)*sinf(CAMERA.angle.y))*(CAMERA.targetDistance/CAMERA_FREE_PANNING_DIVIDER);
|
|
394
383
|
}
|
|
395
384
|
}
|
|
396
385
|
|
|
@@ -402,7 +391,7 @@ void UpdateCamera(Camera *camera)
|
|
|
402
391
|
} break;
|
|
403
392
|
case CAMERA_ORBITAL: // Camera just orbits around target, only zoom allowed
|
|
404
393
|
{
|
|
405
|
-
CAMERA.angle.x += CAMERA_ORBITAL_SPEED; // Camera orbit angle
|
|
394
|
+
CAMERA.angle.x += CAMERA_ORBITAL_SPEED*GetFrameTime(); // Camera orbit angle
|
|
406
395
|
CAMERA.targetDistance -= (mouseWheelMove*CAMERA_MOUSE_SCROLL_SENSITIVITY); // Camera zoom
|
|
407
396
|
|
|
408
397
|
// Camera distance clamp
|
|
@@ -419,20 +408,20 @@ void UpdateCamera(Camera *camera)
|
|
|
419
408
|
camera->position.x += (sinf(CAMERA.angle.x)*direction[MOVE_BACK] -
|
|
420
409
|
sinf(CAMERA.angle.x)*direction[MOVE_FRONT] -
|
|
421
410
|
cosf(CAMERA.angle.x)*direction[MOVE_LEFT] +
|
|
422
|
-
cosf(CAMERA.angle.x)*direction[MOVE_RIGHT])
|
|
411
|
+
cosf(CAMERA.angle.x)*direction[MOVE_RIGHT])*PLAYER_MOVEMENT_SENSITIVITY*GetFrameTime();
|
|
423
412
|
|
|
424
413
|
camera->position.y += (sinf(CAMERA.angle.y)*direction[MOVE_FRONT] -
|
|
425
414
|
sinf(CAMERA.angle.y)*direction[MOVE_BACK] +
|
|
426
|
-
1.0f*direction[MOVE_UP] - 1.0f*direction[MOVE_DOWN])
|
|
415
|
+
1.0f*direction[MOVE_UP] - 1.0f*direction[MOVE_DOWN])*PLAYER_MOVEMENT_SENSITIVITY*GetFrameTime();
|
|
427
416
|
|
|
428
417
|
camera->position.z += (cosf(CAMERA.angle.x)*direction[MOVE_BACK] -
|
|
429
418
|
cosf(CAMERA.angle.x)*direction[MOVE_FRONT] +
|
|
430
419
|
sinf(CAMERA.angle.x)*direction[MOVE_LEFT] -
|
|
431
|
-
sinf(CAMERA.angle.x)*direction[MOVE_RIGHT])
|
|
420
|
+
sinf(CAMERA.angle.x)*direction[MOVE_RIGHT])*PLAYER_MOVEMENT_SENSITIVITY*GetFrameTime();
|
|
432
421
|
|
|
433
422
|
// Camera orientation calculation
|
|
434
|
-
CAMERA.angle.x
|
|
435
|
-
CAMERA.angle.y
|
|
423
|
+
CAMERA.angle.x -= mousePositionDelta.x*CAMERA_MOUSE_MOVE_SENSITIVITY*GetFrameTime();
|
|
424
|
+
CAMERA.angle.y -= mousePositionDelta.y*CAMERA_MOUSE_MOVE_SENSITIVITY*GetFrameTime();
|
|
436
425
|
|
|
437
426
|
// Angle clamp
|
|
438
427
|
if (CAMERA.angle.y > CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD) CAMERA.angle.y = CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD;
|
|
@@ -490,15 +479,17 @@ void UpdateCamera(Camera *camera)
|
|
|
490
479
|
camera->target.y = camera->position.y - matTransform.m13;
|
|
491
480
|
camera->target.z = camera->position.z - matTransform.m14;
|
|
492
481
|
|
|
493
|
-
// If movement detected (some key pressed), increase swinging
|
|
494
|
-
for (int i = 0; i < 6; i++) if (direction[i]) { swingCounter++; break; }
|
|
495
|
-
|
|
496
482
|
// Camera position update
|
|
497
483
|
// NOTE: On CAMERA_FIRST_PERSON player Y-movement is limited to player 'eyes position'
|
|
498
|
-
camera->position.y = CAMERA.playerEyesPosition
|
|
484
|
+
camera->position.y = CAMERA.playerEyesPosition;
|
|
485
|
+
|
|
486
|
+
// Camera swinging (y-movement), only when walking (some key pressed)
|
|
487
|
+
for (int i = 0; i < 6; i++) if (direction[i]) { swingCounter += GetFrameTime(); break; }
|
|
488
|
+
camera->position.y -= sinf(2*PI*CAMERA_FIRST_PERSON_STEP_FREQUENCY*swingCounter)*CAMERA_FIRST_PERSON_SWINGING_DELTA;
|
|
499
489
|
|
|
500
|
-
|
|
501
|
-
camera->up.
|
|
490
|
+
// Camera waiving (xz-movement), only when walking (some key pressed)
|
|
491
|
+
camera->up.x = sinf(2*PI*CAMERA_FIRST_PERSON_STEP_FREQUENCY*swingCounter)*CAMERA_FIRST_PERSON_TILTING_DELTA;
|
|
492
|
+
camera->up.z = -sinf(2*PI*CAMERA_FIRST_PERSON_STEP_FREQUENCY*swingCounter)*CAMERA_FIRST_PERSON_TILTING_DELTA;
|
|
502
493
|
|
|
503
494
|
} break;
|
|
504
495
|
case CAMERA_THIRD_PERSON: // Camera moves as in a third-person game, following target at a distance, controls are configurable
|
|
@@ -506,16 +497,16 @@ void UpdateCamera(Camera *camera)
|
|
|
506
497
|
camera->position.x += (sinf(CAMERA.angle.x)*direction[MOVE_BACK] -
|
|
507
498
|
sinf(CAMERA.angle.x)*direction[MOVE_FRONT] -
|
|
508
499
|
cosf(CAMERA.angle.x)*direction[MOVE_LEFT] +
|
|
509
|
-
cosf(CAMERA.angle.x)*direction[MOVE_RIGHT])
|
|
500
|
+
cosf(CAMERA.angle.x)*direction[MOVE_RIGHT])*PLAYER_MOVEMENT_SENSITIVITY*GetFrameTime();
|
|
510
501
|
|
|
511
502
|
camera->position.y += (sinf(CAMERA.angle.y)*direction[MOVE_FRONT] -
|
|
512
503
|
sinf(CAMERA.angle.y)*direction[MOVE_BACK] +
|
|
513
|
-
1.0f*direction[MOVE_UP] - 1.0f*direction[MOVE_DOWN])
|
|
504
|
+
1.0f*direction[MOVE_UP] - 1.0f*direction[MOVE_DOWN])*PLAYER_MOVEMENT_SENSITIVITY*GetFrameTime();
|
|
514
505
|
|
|
515
506
|
camera->position.z += (cosf(CAMERA.angle.x)*direction[MOVE_BACK] -
|
|
516
507
|
cosf(CAMERA.angle.x)*direction[MOVE_FRONT] +
|
|
517
508
|
sinf(CAMERA.angle.x)*direction[MOVE_LEFT] -
|
|
518
|
-
sinf(CAMERA.angle.x)*direction[MOVE_RIGHT])
|
|
509
|
+
sinf(CAMERA.angle.x)*direction[MOVE_RIGHT])*PLAYER_MOVEMENT_SENSITIVITY*GetFrameTime();
|
|
519
510
|
|
|
520
511
|
// Camera orientation calculation
|
|
521
512
|
CAMERA.angle.x += (mousePositionDelta.x*-CAMERA_MOUSE_MOVE_SENSITIVITY);
|