Coder Social home page Coder Social logo

raylib-rs's People

Contributors

alex-velez avatar bitten2up avatar buckle2000 avatar dacode45 avatar evido avatar ewpratten avatar hi-jklmn avatar jestarray avatar ko2fan avatar louiidev avatar mlambir avatar nachasic avatar nebulavenus avatar nemosupremo avatar nicolaracco avatar omerakgoz34 avatar pamarcos avatar pebaz avatar rfaa-se avatar rvnovae avatar ryan1729 avatar sebbl0508 avatar shastro avatar sprixitite avatar stboyden avatar the-odd-hare avatar thechampagne avatar vaimer9 avatar xeniagda avatar yummydev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raylib-rs's Issues

Type mismatch on Raspberry Pi

Hello, I'm searching for a simple abstraction to make stuff on a Raspberry Pi and enjoy the hardware acceleration. And while raylib-rs seems to work on a computer, it fails to compile on a Raspberry Pi due to type mismatch.

    --> /home/pi/.cargo/registry/src/github.com-1ecc6299db9ec823/raylib-0.9.1/src/lib.rs:2673:40
     |
2673 |             Shader(ffi::LoadShaderCode(c_vs_code.as_ptr() as *mut i8, c_fs_code.as_ptr() as *mut i8))
     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected u8, found i8
     |
     = note: expected type `*mut u8`
                found type `*mut i8`

After browsing a bit the code, it seems that raylib-sys uses ::std::os::raw::c_char, as type for shader code types and it seems that they indeed mismatches. CPP Reference even [mentions]1 that default char type on ARM is an unsigned

I haven't got to understand what to do to avoid that except than hardcoding another type for the shader code, but at least I wanted to share you this issue.

Have a nice day and good luck with that wrapper! o/

Update : looks like .into_raw() instead of as_ptr() as ... matches a bit better the intention : it consumes the CString, returns a mutable pointer to c_char, which is what LoadShaderCode requires independantly from the platform.

Inspired from what into_raw()'s examples do to avoid leaking, I tried by replacing this snippet by something like this:

//...
        unsafe {
            let vs_code = c_vs_code.into_raw();
            let fs_code = c_fs_code.into_raw();
            let res = Shader(ffi::LoadShaderCode(vs_code, fs_code));
            let _ = CString::from_raw(vs_code);
            let _ = CString::from_raw(fs_code);
            res
        }
//...

It should make the function work on any platform. I'll try this this evening (GMT+1) to confirm if it works.

Edit : it works, do you need a PR?

Footnotes

  1. https://en.cppreference.com/w/cpp/language/types#Character_types โ†ฉ

Join forces

Hi @deltaphc,

I've also recently started development of a raylib binding crate for Rust. I didn't see yours when I started. Have a look here, dtcristo/raylib-rust.

I propose we join forces! What do you think?

I see you've done lots of work at the API and wrapping all of the low level functions as well as re-implementing the easing and math functions from raylib. I've done work creating an automatic build script, created some auxiliary things such as logos and a scalable repo/crate structure. You have experience with Windows, and I've got experience on Linux and macOS.

The architecture of my project follows the common <crate>-sys and <crate> convention where raw bindings live in a -sys crate:

raylib-sys crate

  • A build script automatically downloads the raylib binary release for your platform (only Linux and macOS right now).
  • It then uses bindgen to automatically create raw bindings during build (providing an easy way to upgrade this package with new releases of raylib).
  • pkg-config is used to configure the linker for the target platform.

raylib crate

Here we wrap the -sys crate with a friendly, safe and idiomatic Rust API. This is lots of work and I've only really completed the core module. It seems that you've done lots of work in your project at this level.

  • I've opted to namespace the functions into modules based on the raylib cheatsheet. Hence, we have modules such as core, audio, etc.
  • I'm using Rust enums and converting them to the integers required by the functions in the -sys layer.

Other

Serde support for Color struct

I'm now realizing that #76 should have included crate::core::color::Color. I may get around to doing this myself, otherwise, it should be pretty simple to replicate what I did in crate::core::math:

#[cfg(feature = "with_serde")]
use serde::{Deserialize, Serialize};
#[cfg(feature = "nalgebra_interop")]
use nalgebra as na;
make_rslice!(RSliceVec4, Vector4, ffi::MemFree);
macro_rules! optional_serde_struct {
($def:item) => {
cfg_if::cfg_if! {
if #[cfg(feature = "with_serde")] {
#[repr(C)]
#[derive(Default, Debug, Copy, Clone, PartialEq, Serialize, Deserialize)]
$def
} else {
#[repr(C)]
#[derive(Default, Debug, Copy, Clone, PartialEq)]
$def
}
}
}
}
optional_serde_struct! {
pub struct Vector2 {
pub x: f32,
pub y: f32,
}
}

Current workaround for JSON

If anyone needs to deserialize JSON into a Color struct right now, this is the best I have come up with:

"color": [
    0,
    0,
    0,
    0
]

Which can be used alongside impl From<(u8, u8, u8, u8)> for Color to convert from arbitrary JSON values to a Color

Set an environment variable to a local raylib download

I would like to be able to set an environment variable to point to a local raylib download I have somewhere (or anywhere) on my system. The build script would then use this rather than downloading raylib.

I would probably copy the raylib download into OUT_DIR, so that cmake can run inside OUT_DIR. This would remove any uncertainty around cargo clean and such. The environment variable could point to a raylib tar archive or a regular raylib directory.

I am willing to implement this, but wanted to "get approval" first.

Would this be a good feature? Any opinion on what the environment variable should be called?

Cannot make it work with HiDPI

I cannot make raylib-rs play with an HiDPI screen. Running this simple code:

let (mut rl, thread) = raylib::init()
        .size(1280, 720)
        .title("Hello, World")
        .build();
    rl.get_window_state()
        .set_window_highdpi(true);

produces a very small window on the screen. I asked for help in the #raylib channel in discord, and they said the SetConfigFlag(FLAG_WINDOW_HIGHDPI); should be executed before creating a window, not after.

So, if what they said is true, it seems this setting should be part of the RaylibBuilder. I tried to clone the repo and tinker with it with the purpose of testing this information and submitting a PR but for some reason (surely my poor experience with rust) I cannot even run the tests without receiving compilation errors.

Link doesn't work on Windows stable MSVC

When i follow the installation steps this happens:

LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of oth er libs; use /NODEFAULTLIB:library libraylib_sys-8c3123562ecb3094.rlib(win32_window.obj) : error LNK2019: unresolved external symbol __imp_DragQueryFileW referenced in function windowPr oc libraylib_sys-8c3123562ecb3094.rlib(win32_window.obj) : error LNK2019: unresolved external symbol __imp_DragQueryPoint referenced in function windowPr oc libraylib_sys-8c3123562ecb3094.rlib(win32_window.obj) : error LNK2019: unresolved external symbol __imp_DragFinish referenced in function windowProc libraylib_sys-8c3123562ecb3094.rlib(win32_window.obj) : error LNK2019: unresolved external symbol __imp_DragAcceptFiles referenced in function createN ativeWindow C:\Development\rust\raylib-test\target\debug\deps\raylib_test-06c6f1ea 19c27695.exe : fatal error LNK1120: 4 unresolved externals

I followed the installation steps and put the raylib.lib in the correct folder

[0.12.0] Plan. Dynamic linking, More platforms, Less unsafe.

My main goal for 0.12 is to support more platforms. This means bringing back dynamic linking for platforms we can't build off hand as well as enabling the user to select which version of raylib (2.5 or master) to include statically. I'd also like to reduce the use of unsafe in the library. Right now, the primary usage is to prevent copies with std::mem::transmute. Bringing in the zero copy crate may drastically reduce the usage of unsafe.

Updating raylib to 2.6?

I have a local copy that I've updated to point to 2.6.0, and it works fine for me, but I don't pretend to know how to test whether it's safe to send up a PR for it. For me, I need 2.6 because my primary machine is a Mac and Camera2D is broken in 2.5 on high dpi displays but is fixed by changes in 2.6.

I'm happy to do some more legwork to help update. If the only step is the one above, then I'm happy to send a PR up, I just am suspecting there's a lot more to do. For now, I'm not blocked, so this isn't urgent in any way.

Thanks for the great bindings!

Physac port

I'm new to rust (an programming in general), but can i try?

What are the formatting rules, naming conventions, stylistic choices, all that kind of stuff?

cargo run --bin <any sample> fails on macOS

Hi. I am unable to build any of the samples on macOS 10.15.7.

cd samples ; cargo run --bin logo
...
CMake Error: The source directory "./raylib-rs/target/debug/build/raylib-sys-a48f350d7ec517f1/out/raylib" does not appear to contain CMakeLists.txt

set_window_icon support?

hi, great project!

am trying to set window icon but i see the functionality in comment here

am i missing something?

Upgrading to raylib 2.5

Second version of raylib has some tasty functionality I'd like to be able to use in my rust projects, look at the changelog

So I've been flirting with the idea of upgrading bindings to work with latest raylib. However, since I only have surface-level familiarity with it, it's hard for me to make estimations.

How feasible would that be? I don't have much experience with FFI (have done it before once), but I'd be happy to help.

Webassembly (Wasm) Supported?

Is compiling to Webassembly supported?

I have found the file https://github.com/deltaphc/raylib-rs/blob/master/samples/Web.toml, copied it to my own project, installed https://github.com/koute/cargo-web and executed
cargo web build.

It started compiling but stopped with the error:

/home/marco/workspace/private/ray-spike/target/wasm32-unknown-emscripten/debug/build/raylib-sys-e1aa135be1052e2a/out/raylib-2.5.0/src/core.c:3496:9: error: implicit declaration of function 'emscripten_sample_gamepad_data' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if (emscripten_sample_gamepad_data() == EMSCRIPTEN_RESULT_SUCCESS) numGamepads = emscripten_get_num_gamepads();
^
/home/marco/workspace/private/ray-spike/target/wasm32-unknown-emscripten/debug/build/raylib-sys-e1aa135be1052e2a/out/raylib-2.5.0/src/core.c:3496:9: note: did you mean 'emscripten_get_gamepad_status'?
/home/marco/.local/share/cargo-web/emscripten/x86_64-unknown-linux-gnu/emscripten/system/include/emscripten/html5.h:399:26: note: 'emscripten_get_gamepad_status' declared here

Can't compile on Windows with MSVC 2019

Hey, compiling doesn't work on my setup.

raylib MSVC lib and dll are at C:\Users\memor.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib

Did I forget something to setup?

image

image

Compiler crashes with:
C:/Users/memor/.cargo/bin/cargo.exe build --color=always --all --all-targets Updating crates.io index Blocking waiting for file lock on the registry index Downloading crates ... Downloaded raylib-sys v0.9.2 Blocking waiting for file lock on raylib-sys-0.9.2.crate Compiling raylib-sys v0.9.2 Compiling raylib-sys v0.11.0 (https://github.com/deltaphc/raylib-rs#e8137560) error: failed to run custom build command for raylib-sys v0.11.0 (https://github.com/deltaphc/raylib-rs#e8137560)`
process didn't exit successfully: C:\Users\memor\Desktop\rust_raylib_space_invaders\target\debug\build\raylib-sys-3bb58d0274d07477\build-script-build (exit code: 101)
--- stdout
out: "C:\Users\memor\Desktop\rust_raylib_space_invaders\target\debug\build\raylib-sys-2ce9a53141825ca3\out"
url: "https://codeload.github.com/raysan5/raylib/tar.gz/2.5.0"
running: "cmake" "C:\Users\memor\Desktop\rust_raylib_space_invaders\target\debug\build\raylib-sys-2ce9a53141825ca3\out\raylib-2.5.0" "-G" "Visual Studio 16 2019" "-Thost=x64" "-Ax64" "-DBUILD_EXAMPLES=OFF" "-DBUILD_GAMES=OFF" "-DCMAKE_BUILD_TYPE=Release" "-DSUPPORT_BUSY_WAIT_LOOP=OFF" "-DSTATIC=TRUE" "-DPLATFORM=Desktop" "-DCMAKE_INSTALL_PREFIX=C:\Users\memor\Desktop\rust_raylib_space_invaders\target\debug\build\raylib-sys-2ce9a53141825ca3\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_RELEASE= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_RELEASE= -nologo -MD -Brepro"

--- stderr
CMake Error: Could not create named generator Visual Studio 16 2019

Generators
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.

thread 'main' panicked at '
command did not execute successfully, got: exit code: 1

build script failed, must exit now', C:\Users\memor.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.42\src\lib.rs:861:5
stack backtrace:
0: std::sys::windows::backtrace::set_frames
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\sys\windows\backtrace\mod.rs:94
1: std::sys::windows::backtrace::unwind_backtrace
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\sys\windows\backtrace\mod.rs:81
2: std::sys_common::backtrace::_print
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\sys_common\backtrace.rs:70
3: std::sys_common::backtrace::print
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\sys_common\backtrace.rs:58
4: std::panicking::default_hook::{{closure}}
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:200
5: std::panicking::default_hook
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:215
6: std::panicking::rust_panic_with_hook
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:478
7: std::panicking::continue_panic_fmt
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:385
8: std::panicking::begin_panic_fmt
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:340
9: cmake::fail
at C:\Users\memor.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.42\src\lib.rs:861
10: cmake::run
at C:\Users\memor.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.42\src\lib.rs:839
11: cmake::Config::build
at C:\Users\memor.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.42\src\lib.rs:674
12: build_script_build::build_with_cmake
at .\build.rs:44
13: build_script_build::main
at .\build.rs:110
14: std::rt::lang_start::{{closure}}<()>
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libstd\rt.rs:64
15: std::rt::lang_start_internal::{{closure}}
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\rt.rs:49
16: std::panicking::try::do_call<closure,i32>
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:297
17: panic_unwind::__rust_maybe_catch_panic
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libpanic_unwind\lib.rs:92
18: std::panicking::try
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panicking.rs:276
19: std::panic::catch_unwind
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\panic.rs:388
20: std::rt::lang_start_internal
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858/src\libstd\rt.rs:48
21: std::rt::lang_start<()>
at /rustc/2aa4c46cfdd726e97360c2734835aa3515e8c858\src\libstd\rt.rs:64
22: main
23: invoke_main
at d:\agent_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
24: __scrt_common_main_seh
at d:\agent_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
25: BaseThreadInitThunk
26: RtlUserThreadStart

Process finished with exit code 101
`

Cannot build without panic_unwind

I'm trying to build my project via xargo and to statically compile everything to shrink the footprint of the compiled binary. But I cannot manage to make raylib-rs compile correctly. It seems from the output it requires the unwind panic strategy.

This is my configuration:

# Xargo.toml
[dependencies]
std = {default-features=false, features=["panic_immediate_abort"]}

[dependencies.panic_abort]
# Cargo.toml

[package.metadata.vcpkg]
git = "https://github.com/microsoft/vcpkg"
rev = "master"
install = ["raylib"]

[package.metadata.vcpkg.target]
x86_64-pc-windows-msvc = { triplet = "x64-windows-static" }

[profile.release]
opt-level = "z"  # Optimize for size.
lto = true
codegen-units = 1
panic = 'abort'

The build errors with the following output:

warning: Patch `rustc-std-workspace-std v1.99.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-std)` was not used in the crate graph.
Check that the patched package version and available features are compatible
with the dependency requirements. If the patch has a different version from
what is locked in the Cargo.lock file, run `cargo update` to use the new
version. This may also occur with an optional dependency that is not enabled.
   Compiling core v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
   Compiling compiler_builtins v0.1.43
   Compiling libc v0.2.93
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
   Compiling alloc v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc)
   Compiling cfg-if v0.1.10
   Compiling panic_abort v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_abort)
    Finished release [optimized] target(s) in 14.17s
warning: Patch `rustc-std-workspace-std v1.99.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-std)` was not used in the crate graph.
Check that the patched package version and available features are compatible
with the dependency requirements. If the patch has a different version from
what is locked in the Cargo.lock file, run `cargo update` to use the new
version. This may also occur with an optional dependency that is not enabled.
   Compiling core v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
   Compiling cc v1.0.67
   Compiling std v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std)
   Compiling unwind v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\unwind)
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
   Compiling compiler_builtins v0.1.43
   Compiling libc v0.2.93
   Compiling alloc v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc)
   Compiling cfg-if v0.1.10
   Compiling rustc-demangle v0.1.18
   Compiling rustc-std-workspace-alloc v1.99.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-alloc)
   Compiling panic_abort v0.0.0 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_abort)
   Compiling std_detect v0.1.5 (C:\Users\nicol\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\stdarch\crates\std_detect)
   Compiling hashbrown v0.11.0
    Finished release [optimized] target(s) in 21.85s
   Compiling libc v0.2.94
   Compiling raylib-sys v3.5.0
error[E0463]: can't find crate for `panic_unwind`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0463`.
error: could not compile `libc`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error[E0460]: found possibly newer version of crate `std` which `cmake` depends on
  --> C:\Users\nicol\.cargo\registry\src\github.com-1ecc6299db9ec823\raylib-sys-3.5.0\build.rs:47:20
   |
47 |     let mut conf = cmake::Config::new(src_path);
   |                    ^^^^^
   |
   = note: perhaps that crate needs to be recompiled?
   = note: the following crate versions were found:
           crate `std`: \\?\C:\Users\nicol\.xargo\HOST\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd-70e9cf4abd0e85e4.rlib
           crate `std`: \\?\C:\Users\nicol\.xargo\HOST\lib\rustlib\x86_64-pc-windows-msvc\lib\std-70e9cf4abd0e85e4.dll
           crate `cmake`: \\?\C:\Users\nicol\dev\rayrusty\target\release\deps\libcmake-e1f4c7fb969a2d0d.rlib

error: aborting due to previous error

error: build failed

Implement DerefMut for RaylibDrawHandle

I'm trying to use the raylib draw handle to copy to the clipboard:

d.set_clipboard_text("test")

This is done because I am passing the raylib draw handle into a function, and I can't mutably borrow the raylib handle twice to drop down to it. However, because DerefMut is not implemented for RaylibDrawHandle, I don't have mutable access to the raylib API.

Would something like this work?

impl<'a> std::ops::DerefMut for RaylibDrawHandle<'a> {
    type Target = RaylibHandle;

    fn deref(&mut self) -> &mut Self::Target {
        &mut self.0
    }
}

TextSubtext not implemented?

Hi
I was porting some examples from C to basically learn more Rust and Raylib at the same time
everything has been working great until I found TextSubtext.

I found that it is part of the ffi implementation, so I tried calling it for there,
didn't have much luck with that

a few questions
is this something that is pending to be implemented?
is there a way I can help?

this is the code I'm trying, could be totally wrong

let title = CString::new("raylib").expect("Cstring failed").as_ptr();
                unsafe {
                    d.draw_text(std::str::from_utf8(*(ffi::TextSubtext("title\0".as_ptr() as *const i8 , 0, letters_count))).unwrap(), SCREEN_WIDTH / 2 - 44, SCREEN_HEIGHT / 2 + 48, 50, Color::fade(&Color::BLACK, alpha));
                }

this is the example where that is used
https://www.raylib.com/examples/web/shapes/loader.html?name=shapes_logo_raylib_anim

Thank you

Is it possible to configure the open gl version ?

When running the raylib-rs examples on an old machine, I got an error because GLFW could not initialize the window.

It seems like it was related to the OpenGL version.
I managed to recompile the raylib examples themselves following https://github.com/raysan5/raylib/wiki/FAQ#can-i-run-raylib-in-my-old-pc

However, would there be a way to configure an application using raylib-rs so that is compiles / recompiles / links against a version of raylib with the proper configuration ?

(I don't know if it is something that can be done in cargo, for example...)

sys build error on windows mingw64

Windows 10 20H2
MinGW64 GCC v10.2.0 by MSYS2

Console log
cargo build
    Updating crates.io index
   Compiling cc v1.0.66
   Compiling fs_extra v1.2.0
   Compiling libc v0.2.80
   Compiling lazy_static v1.4.0
   Compiling cmake v0.1.45
   Compiling raylib-sys v3.0.0
error: failed to run custom build command for `raylib-sys v3.0.0`

Caused by:
  process didn't exit successfully: `C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-804735ce89c4d091\build-script-build` (exit code: 101)
  --- stdout
  running: "cmake" "C:\\Users\\omerakgoz34\\Documents\\Rust\\raylib-deneme\\target\\debug\\build\\raylib-sys-c255182c0da0f4ab\\out\\raylib" "-G" "MinGW Makefiles" "-DBUILD_EXAMPLES=OFF" "-DBUILD_GAMES=OFF" "-DCMAKE_BUILD_TYPE=Release" "-DSUPPORT_BUSY_WAIT_LOOP=OFF" "-DSTATIC=TRUE" "-DPLATFORM=Desktop" "-DCMAKE_INSTALL_PREFIX=C:\\Users\\omerakgoz34\\Documents\\Rust\\raylib-deneme\\target\\debug\\build\\raylib-sys-c255182c0da0f4ab\\out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -m64"
  -- The C compiler identification is GNU 10.2.0
  -- The CXX compiler identification is GNU 10.2.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/Users/omerakgoz34/scoop/apps/msys2/current/mingw64/bin/gcc.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: C:/Users/omerakgoz34/scoop/apps/msys2/current/mingw64/bin/g++.exe - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Performing Test COMPILER_HAS_THOSE_TOGGLES
  -- Performing Test COMPILER_HAS_THOSE_TOGGLES - Success
  -- Testing if -Werror=pointer-arith can be used -- compiles
  -- Testing if -Werror=implicit-function-declaration can be used -- compiles
  -- Testing if -fno-strict-aliasing can be used -- compiles
  -- Testing if file system supports symlinks
  -- Testing if file system supports symlinks -- supported
  -- Using raylib's GLFW
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE
  -- Looking for dinput.h
  -- Looking for dinput.h - found
  -- Looking for xinput.h
  -- Looking for xinput.h - found
  -- Performing Test _GLFW_HAS_DEP
  -- Performing Test _GLFW_HAS_DEP - Success
  -- Performing Test _GLFW_HAS_ASLR
  -- Performing Test _GLFW_HAS_ASLR - Success
  -- Performing Test _GLFW_HAS_64ASLR
  -- Performing Test _GLFW_HAS_64ASLR - Success
  -- Using Win32 for window creation
  -- Audio Backend: miniaudio
  -- Building raylib static library
  -- Generated build type: Release
  -- Compiling with the flags:
  --   PLATFORM=PLATFORM_DESKTOP
  --   GRAPHICS=GRAPHICS_API_OPENGL_33
  -- Configuring done
  -- Generating done
  -- Build files have been written to: C:/Users/omerakgoz34/Documents/Rust/raylib-deneme/target/debug/build/raylib-sys-c255182c0da0f4ab/out/build
  running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--"
  Scanning dependencies of target glfw_objlib
  [  4%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/context.c.obj
  [  8%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/init.c.obj
  [ 12%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/input.c.obj
  [ 16%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/monitor.c.obj
  [ 20%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/vulkan.c.obj
  [ 25%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/window.c.obj
  [ 29%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_init.c.obj
  [ 33%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_joystick.c.obj
  [ 37%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_monitor.c.obj
  [ 41%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_time.c.obj
  [ 45%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_thread.c.obj
  [ 50%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_window.c.obj
  [ 54%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/wgl_context.c.obj
  [ 58%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/egl_context.c.obj
  [ 62%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/osmesa_context.c.obj
  [ 62%] Built target glfw_objlib
  Scanning dependencies of target glfw
  [ 66%] Linking C static library libglfw3.a
  [ 66%] Built target glfw
  Scanning dependencies of target raylib_static
  [ 75%] Building C object src/CMakeFiles/raylib_static.dir/core.c.obj
  [ 75%] Building C object src/CMakeFiles/raylib_static.dir/models.c.obj
  [ 79%] Building C object src/CMakeFiles/raylib_static.dir/raudio.c.obj
  [ 83%] Building C object src/CMakeFiles/raylib_static.dir/shapes.c.obj
  [ 87%] Building C object src/CMakeFiles/raylib_static.dir/text.c.obj
  [ 91%] Building C object src/CMakeFiles/raylib_static.dir/textures.c.obj
  [ 95%] Building C object src/CMakeFiles/raylib_static.dir/utils.c.obj
  [100%] Linking C static library libraylib_static.a
  [100%] Built target raylib_static
  Install the project...
  -- Install configuration: "Release"
  -- Installing: C:/Users/omerakgoz34/Documents/Rust/raylib-deneme/target/debug/build/raylib-sys-c255182c0da0f4ab/out/lib/libraylib_static.a
  -- Installing: C:/Users/omerakgoz34/Documents/Rust/raylib-deneme/target/debug/build/raylib-sys-c255182c0da0f4ab/out/include/raylib.h
  -- Installing: C:/Users/omerakgoz34/Documents/Rust/raylib-deneme/target/debug/build/raylib-sys-c255182c0da0f4ab/out/lib/pkgconfig/raylib.pc
  -- Installing: C:/Users/omerakgoz34/Documents/Rust/raylib-deneme/target/debug/build/raylib-sys-c255182c0da0f4ab/out/lib/cmake/raylib/raylib-config-version.cmake
  -- Installing: C:/Users/omerakgoz34/Documents/Rust/raylib-deneme/target/debug/build/raylib-sys-c255182c0da0f4ab/out/lib/cmake/raylib/raylib-config.cmake
  cargo:root=C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out

  --- stderr
  CMake Warning (dev) in CMakeLists.txt:
    No project() command is present.  The top-level CMakeLists.txt file must
    contain a literal, direct call to the project() command.  Add a line of
    code such as

      project(ProjectName)

    near the top of the file, but after cmake_minimum_required().

    CMake is pretending there is a "project(Project)" command on the first
    line.
  This warning is for project developers.  Use -Wno-dev to suppress it.

  CMake Warning:
    Manually-specified variables were not used by the project:

      CMAKE_ASM_FLAGS


  In file included from C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\raudio.c:197:
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h: In function 'jar_mod_load':
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:370:13: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
    370 |         d[i]=s[i];
        |         ~~~~^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:125:13: note: at offset 0 to object 'title' with size 20 declared here
    125 |     muchar  title[20];
        |             ^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:370:13: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
    370 |         d[i]=s[i];
        |         ~~~~^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:125:13: note: at offset 0 to object 'title' with size 20 declared here
    125 |     muchar  title[20];
        |             ^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:370:13: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
    370 |         d[i]=s[i];
        |         ~~~~^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:125:13: note: at offset 0 to object 'title' with size 20 declared here
    125 |     muchar  title[20];
        |             ^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:370:13: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
    370 |         d[i]=s[i];
        |         ~~~~^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\external/jar_mod.h:125:13: note: at offset 0 to object 'title' with size 20 declared here
    125 |     muchar  title[20];
        |             ^~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\core.c: In function 'GetDirectoryPath':
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\core.c:2028:9: warning: 'strncpy' specified bound depends on the length of the source argument [-Wstringop-overflow=]
   2028 |         strncpy(dirPath + ((filePath[1] != ':')? 2 : 0), filePath, strlen(filePath) - (strlen(lastSlash) - 1));
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\core.c:2028:68: note: length computed here
   2028 |         strncpy(dirPath + ((filePath[1] != ':')? 2 : 0), filePath, strlen(filePath) - (strlen(lastSlash) - 1));
        |                                                                    ^~~~~~~~~~~~~~~~
  In file included from C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\textures.c:60:
  In function 'LoadImageEx',
      inlined from 'GenImageColor' at C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\textures.c:2440:19,
      inlined from 'ImageTextEx' at C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\textures.c:1940:20:
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\raylib.h:106:33: warning: argument 1 range [18446744071562067968, 18446744073709551615] exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
    106 |     #define RL_MALLOC(sz)       malloc(sz)
        |                                 ^~~~~~~~~~
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\textures.c:321:35: note: in expansion of macro 'RL_MALLOC'
    321 |     image.data = (unsigned char *)RL_MALLOC(image.width*image.height*4*sizeof(unsigned char));
        |                                   ^~~~~~~~~
  In file included from C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\textures.c:67:
  C:\Users\omerakgoz34\Documents\Rust\raylib-deneme\target\debug\build\raylib-sys-c255182c0da0f4ab\out\raylib\src\textures.c: In function 'ImageTextEx':
  C:/Users/omerakgoz34/scoop/apps/msys2/current/mingw64/x86_64-w64-mingw32/include/stdlib.h:531:17: note: in a call to allocation function 'malloc' declared here
    531 |   void *__cdecl malloc(size_t _Size);
        |                 ^~~~~~
  thread 'main' panicked at 'filed to create windows library: Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }', C:\Users\omerakgoz34\.cargo\registry\src\github.com-1ecc6299db9ec823\raylib-sys-3.0.0\build.rs:81:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

`cross build --target x86_64-pc-windows-gnu --release` fails when linking

Used cross build --target x86_64-pc-windows-gnu to invoke the build, and it throws this error

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/rsbegin.o" "-L" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.10sqr6bj5bhxfxlm.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.1ezps5wwt9k8xi6.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.1sjt7s50y0ost0nx.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.22oczvioxl82inuq.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.237e6r189tiw6x93.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.23lj72y9ri1bf155.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.23wrf8kca9vyz1r4.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.27h2xvh19esaksfr.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2erpkb0tux1ape7w.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2fw4hh8qrlne746b.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2h8c8pgb8vbgu5c0.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2ic7eexcj5f4ento.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2jfejn9lueish4o.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2jy7c6ydyyjdu3fw.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2k4avcrrwt8hf9k6.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2lorkkpu86i7d715.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2muhv40c4eg2fehg.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2phvw8cppg3zd6ev.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2q77kjgabxxo6bqi.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.2ys6s6kgh14ljpj6.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.36fm13n9r44wwfka.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.3ormmm2yrplb0qo4.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.3sgo2fya27r0spum.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.3yzfb67zpor9sh2y.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.4k7lm3p7vbqcpbsj.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.4oshs2v7dbvmxmrp.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.4y9642h3ryneakxg.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.4yxz8j9gbedksntu.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.516k00phh5ayquxn.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.5and3hj3onik5vgt.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.5c8yjbos5yxwttp0.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.5fawvr9374eb0m2v.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.hjm9vwlkapfw4c7.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.up7fd0flf8ozi0e.rcgu.o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.y5l42qyenmmu2t.rcgu.o" "-o" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.exe" "/target/x86_64-pc-windows-gnu/debug/deps/raylib_test-584c90bf7ca7ec64.17ajpfgviovh6hds.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "/target/x86_64-pc-windows-gnu/debug/deps" "-L" "/target/debug/deps" "-L" "/target/x86_64-pc-windows-gnu/debug/build/raylib-sys-38583f9fa58e6f88/out/lib" "-L" "/usr/local/lib" "-L" "/target/x86_64-pc-windows-gnu/debug/build/raylib-sys-38583f9fa58e6f88/out" "-L" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib" "-Wl,-Bstatic" "/target/x86_64-pc-windows-gnu/debug/deps/libraylib-5ab16a32c776c6ce.rlib" "/target/x86_64-pc-windows-gnu/debug/deps/liblibc-dfc5fee2ca30d918.rlib" "/target/x86_64-pc-windows-gnu/debug/deps/libraylib_sys-7dc04b0e597ddb62.rlib" "-Wl,--start-group" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libstd-94f60f405c1748af.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libpanic_unwind-f56d3aec7c2576d9.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libobject-8e553c585536bfaf.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libaddr2line-3a82c272c5de0489.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libgimli-ef04c21117777245.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/librustc_demangle-b3ae962defb8b363.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libhashbrown-b441247297fa184b.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/librustc_std_workspace_alloc-19bb25a86d3a5b92.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libunwind-d7957714cc30050c.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libcfg_if-abd7bd18212580be.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/liblibc-80187982c9cf70bf.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/liballoc-4172a25dd8c4f2de.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/librustc_std_workspace_core-27282989cc5b80d2.rlib" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libcore-2f52c7ac303d5565.rlib" "-Wl,--end-group" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/libcompiler_builtins-2b00c29940bf9d8a.rlib" "-Wl,-Bdynamic" "-lX11" "-ladvapi32" "-lws2_32" "-luserenv" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "/rust/lib/rustlib/x86_64-pc-windows-gnu/lib/rsend.o"
  = note: /usr/bin/x86_64-w64-mingw32-ld: cannot find -lX11
          collect2: error: ld returned 1 exit status

Using version 3.5.0, getting the same issue as in #66 but it doesn't seem to be fixed for me.

raylib-sys build failed

Compiling cc v1.0.68
Compiling fs_extra v1.2.0
Compiling libc v0.2.97
Compiling lazy_static v1.4.0
Compiling cmake v0.1.45
Compiling raylib-sys v3.5.0
error: failed to run custom build command for 'raylib-sys v3.5.0'

Caused by:
process didn't exit successfully: '`/home/username/VsCodeProjects/Rust/learn/target/debug/build/raylib-sys-30f02b9f8cb9c24a/build-script-build' (exit status: 101)
--- stdout
running: "cmake" "/home/username/VsCodeProjects/Rust/learn/target/debug/build/raylib-sys-f29fe605cf807025/out/raylib" "-DBUILD_EXAMPLES=OFF" "-DBUILD_GAMES=OFF" "-DCMAKE_BUILD_TYPE=Release" "-DSUPPORT_BUSY_WAIT_LOOP=OFF" "-DSTATIC=TRUE" "-DPLATFORM=Desktop" "-DCMAKE_INSTALL_PREFIX=/home/username/VsCodeProjects/Rust/learn/target/debug/build/raylib-sys-f29fe605cf807025/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc"
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test COMPILER_HAS_THOSE_TOGGLES
-- Performing Test COMPILER_HAS_THOSE_TOGGLES - Success
-- Testing if -Werror=pointer-arith can be used -- compiles
-- Testing if -Werror=implicit-function-declaration can be used -- compiles
-- Testing if -fno-strict-aliasing can be used -- compiles
-- Using raylib's GLFW
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Using X11 for window creation
-- Configuring incomplete, errors occurred!
See also "/home/username/VsCodeProjects/Rust/learn/target/debug/build/raylib-sys-f29fe605cf807025/out/build/CMakeFiles/CMakeOutput.log".
See also "/home/username/VsCodeProjects/Rust/learn/target/debug/build/raylib-sys-f29fe605cf807025/out/build/CMakeFiles/CMakeError.log".

--- stderr
CMake Warning (dev) in CMakeLists.txt:
No project() command is present. The top-level CMakeLists.txt file must
contain a literal, direct call to the project() command. Add a line of
code such as

  project(ProjectName)

near the top of the file, but after cmake_minimum_required().

CMake is pretending there is a "project(Project)" command on the first
line.

This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)
Call Stack (most recent call first):
/usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.18/Modules/FindX11.cmake:414 (find_package_handle_standard_args)
src/external/glfw/CMakeLists.txt:204 (find_package)

thread 'main' panicked at '
command did not execute successfully, got: exit status: 1

build script failed, must exit now', /home/username/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.45/src/lib.rs:894:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Missing bindings for GetCharPressed()

Hi, I'm trying to write a program with raylib-rs that captures user input and puts it into a String.

I figured out how to do this using this raylib example in C.

The problem is that this requires unsafe code using the raw ffi bindings instead of something like rl.get_char_pressed().

Is there a reason that get_char_pressed() is not a method/is there another way to do what I'm asking, or should get_char_pressed be implemented?

Missing Raspberry Pi native mode build

Hello,
I have looked the build.rs and I don't found the native mode presented in the official documentation :
https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi

I have seen that in the Dacode45 fork there is an extended version of the build.rs.
Is it planned to backport it ?

I am not really familiar with Rust (I have a strong knowledge of C anc C++) but I have finally found a project to do in order to learn it. And it will use the raspberry pi and raylib.
I could try to do the backport but I'm not sure it will be really clean.

Raylib 3.0 Request Thread

The current bindings are pretty good right now, but they don't have everything Raylib has (rlgl). If there is anything you want me to add to the bindings, comment below, let me know.

Crash on exit when using play_sound_multi

When I use play_sound_multi and then exit the program it hangs for a few seconds and then exits like this:
error: process didn't exit successfully: target\debug\rust-sandbox.exe (exit code: 0xc0000374, STATUS_HEAP_CORRUPTION)

When using play_sound this doesn't occur

This may be an error in raylib itself?

Platform: Windows 10

Raylib builds in my OUT_DIR/lib64 instead of OUT_DIR/lib

I had to hack the build script to make raylib-sys build on Fedora 30.

I'm not a cmake expert, I don't know why raylib was build in lib64 instead of lib. Any ideas?

I'm willing to contribute a fix.

A naive solution would be to check whether a lib or a lib64 directory was created by cmake and use the appropriate directly, but there might be a better solution if we can determine exactly which directory we should expect to be used. In other words, it could be better to understand what cmake is going to do in advance, rather than just reacting "with surprise" to whatever it does after the fact

load_model_from_mesh() doesn't work from generated meshes.

If you use load_model_from_mesh(), it simply won't work. The reason? Raylib's documentation states that LoadModelFromMesh() generates a model with a default material. However, the method in question will actually return an Error if the generated model doesn't have bones or a bindPose.

    pub fn load_model_from_mesh(&mut self, _: &RaylibThread, mesh: &Mesh) -> Result<Model, String> {
        let m = unsafe { ffi::LoadModelFromMesh(mesh.0) };

        if m.meshes.is_null() || m.materials.is_null() || m.bones.is_null() || m.bindPose.is_null()
        {
            return Err("Could not load model from mesh".to_owned());
        }

        Ok(Model(m))
    }
}

The solution? bones and bindPose could have default values provided for them.

As of now, this function is arguably completely broken because there is no instance where you may create a mesh with a provided bones and bindPose using the safe Rust bindings.

cargo build fails with 'rustc --explain E0554'

Thanks for sharing your work.
I'm new to rust, so maybe I'm doing something wrong...
I just cloned this repo and executed cargo build and it fails as in the title...
What am I doing wrong? I would like to run the examples to test it both in my linux pc and on raspberry pi...

How to compile to Android

I'm trying to make a game for Android (and eventually iOS as well), but am totally lost as to how to do it. Can you point to some resources how to accomplish this?

Raylib 3.7

This project should be updated to the latest version of raylib. To quote @raysan5 in discord:

Note that official raylib 3.7 release is expected in the following days but it's already on github main branch.

Once I'm done with Ludum Dare this weekend, I can help bring this repo up to date if needed.

Add raylib-rs to crates.io

Hello ! I think adding raylib-rs to crates.io would be a good move as the current method of adding raylib-rs to a project relies on GitHub and especially on a branch that is continuously developed and this might break projects on the long term.

Cross compiling to windows from linux

I have added the target x86_64-pc-windows-gnu, and installed the toolchains for it and the mingw compiler. But when trying to build the project linking with x86_64-w64-mingw32-gcc failed, as it was trying to link the X11 library for some reason.

How to enable high dpi mode in the window config?

How would I enable high dpi mode as a configuration for the window? I see that such functionality can be found in window.rs but there doesn't seem to be a way to call the function like you would call size() or title() in raylib::init()

MacOS Build Instructions needed??

Hi all,
I followed the instructions on the README to build the simple hello world program that's
in the README. I'm having trouble getting it to link. Full errors below.
Looks like it needs the OpenGL library but I'm still kind of a rust beginner to I don't
know how to fix it. Can anyone point me in the right direction?

Thanks

Compiling raylib v0.1.0 (/Users/davelpz/Projects/rust/raylib) error: linking withcc` failed: exit code: 1
|
= note: "cc" "-m64" "-L" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.1utcxqa195ja75af.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.3g0cez7znltgx6w8.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.3ipjvyeul8xs4uy4.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.3kb5nzpcebenezjj.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.4cw3w27il57exnaf.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.5ewveaeyxkdtfmni.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.a16e0jjcvas2k3y.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.qnz79pduy49v9su.rcgu.o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.vkvq3z0gx1icsv8.rcgu.o" "-o" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/raylib-8f7f8dff8e10598a.bahjhixlgp51xmp.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/davelpz/Projects/rust/raylib/target/debug/deps" "-L" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/libraylib_rs-1526e7832ca5cff2.rlib" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/liblibc-49eab9eaacbfcd6e.rlib" "/Users/davelpz/Projects/rust/raylib/target/debug/deps/liblazy_static-bd7de5c8fabcfd46.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-edeacefc1391b975.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-661c88e34f871df0.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-f7c06680fdd716f3.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-f2e753da53df829c.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-961b28aeeb5bc8e1.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-b6f6b59b6a29ec3a.rlib" "/Users/davelpz/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-f31526d6d86acb04.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
= note: Undefined symbols for architecture x86_64:
"OBJC_CLASS$_NSOpenGLContext", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(nsgl_context.m.o)
"_IOHIDDeviceGetValue", referenced from:
_getElementValue in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDElementGetTypeID", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDElementGetType", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDElementGetLogicalMax", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFArraySortValues", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFArrayCreateMutable", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFDictionaryCreateMutable", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFArrayAppendValue", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDValueGetIntegerValue", referenced from:
_getElementValue in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDManagerSetDeviceMatchingMultiple", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDManagerRegisterDeviceMatchingCallback", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IOHIDManagerRegisterDeviceRemovalCallback", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_kCFRunLoopDefaultMode", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFBundleGetMainBundle", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_CFBundleCopyResourcesDirectoryURL", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_CFURLCopyLastPathComponent", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_NSTextInputContextKeyboardSelectionDidChangeNotification", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
__glfwPlatformTerminate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_CGEventSourceCreate", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_CGEventSourceSetLocalEventsSuppressionInterval", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_CFBundleGetFunctionPointerForName", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
_getProcAddressNSGL in libraylib_rs-1526e7832ca5cff2.rlib(nsgl_context.m.o)
"OBJC_CLASS$_NSScreen", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGReleaseDisplayFadeReservation", referenced from:
_endFadeReservation in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGAcquireDisplayFadeReservation", referenced from:
_beginFadeReservation in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGDisplayFade", referenced from:
_beginFadeReservation in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
_endFadeReservation in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGDisplayModeGetWidth", referenced from:
_vidmodeFromCGDisplayMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_IOHIDElementGetLogicalMin", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CGDisplayModeRelease", referenced from:
__glfwPlatformGetVideoMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwRestoreVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CVDisplayLinkCreateWithCGDisplay", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGDisplayCopyAllDisplayModes", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CFArrayGetValueAtIndex", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
_closeJoystick in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
__glfwPlatformPollJoystick in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CVDisplayLinkRelease", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CFRunLoopRunInMode", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_kIOMasterPortDefault", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGDisplayIsAsleep", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGDisplayScreenSize", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"OBJC_CLASS$_NSOpenGLPixelFormat", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(nsgl_context.m.o)
"_IOServiceMatching", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_IOServiceGetMatchingServices", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CFGetTypeID", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_IODisplayCreateInfoDictionary", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CFDictionarySetValue", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFNumberGetValue", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CGDisplayVendorNumber", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGDisplayModelNumber", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CFDictionaryGetValue", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CFStringGetMaximumSizeForEncoding", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_IOHIDDeviceCopyMatchingElements", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFStringGetCString", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CFBundleGetDataPointerForName", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_CFRelease", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
_updateUnicodeDataNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
__glfwPlatformTerminate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
...
"_IOObjectRelease", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"___CFConstantStringClassReference", referenced from:
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
CFString in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
...
"_CFDictionaryGetValueIfPresent", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"OBJC_CLASS$_NSThread", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glDeleteBuffers", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSMutableAttributedString", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSUserDefaults", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CFStringCompare", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_NSFilenamesPboardType", referenced from:
-[GLFWContentView initWithGlfwWindow:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView performDragOperation:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSCursor", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_kCFAllocatorDefault", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
_getProcAddressNSGL in libraylib_rs-1526e7832ca5cff2.rlib(nsgl_context.m.o)
"OBJC_CLASS$_NSView", referenced from:
OBJC_CLASS$_GLFWContentView in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSEvent", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSMenu", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSBitmapImageRep", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CFStringGetLength", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"OBJC_CLASS$_NSAutoreleasePool", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"OBJC_CLASS$_NSBundle", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSAttributedString", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_NSDefaultRunLoopMode", referenced from:
__glfwPlatformPollEvents in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformWaitEvents in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSTrackingArea", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSMenuItem", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSNumber", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CGAssociateMouseAndMouseCursorPosition", referenced from:
_updateCursorMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSWindow", referenced from:
OBJC_CLASS$_GLFWWindow in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CFRunLoopGetMain", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"OBJC_METACLASS$_NSView", referenced from:
OBJC_METACLASS$_GLFWContentView in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSApplication", referenced from:
OBJC_CLASS$_GLFWApplication in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"__objc_empty_cache", referenced from:
OBJC_CLASS$_GLFWWindowDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWWindowDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWApplicationDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_CLASS$_GLFWApplicationDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_CLASS$_GLFWContentView in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWContentView in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWWindow in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
...
"_glBindAttribLocation", referenced from:
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSObject", referenced from:
OBJC_CLASS$_GLFWWindowDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_CLASS$_GLFWApplicationDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_CLASS$_GLFWLayoutListener in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_NSApp", referenced from:
-[GLFWApplicationDelegate applicationDidFinishLaunching:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformPostEmptyEvent in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView insertText:replacementRange:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWApplication loadMainMenu] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformCreateWindow in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
_initializeAppKit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformFocusWindow in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
...
"_IOHIDDeviceGetProperty", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"OBJC_CLASS$_NSColor", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"OBJC_CLASS$_NSArray", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CGDisplayBounds", referenced from:
__glfwPlatformGetWindowPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
_acquireMonitor in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView firstRectForCharacterRange:actualRange:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformSetWindowPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformSetWindowMonitor in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformSetCursorPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformGetMonitorPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
...
"_objc_msgSendSuper2", referenced from:
-[GLFWWindowDelegate initWithGlfwWindow:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView initWithGlfwWindow:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView dealloc] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView makeBackingLayer] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView updateTrackingAreas] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWApplication sendEvent:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glGetProgramiv", referenced from:
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_METACLASS$_NSWindow", referenced from:
OBJC_METACLASS$_GLFWWindow in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CGDisplayCopyDisplayMode", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glGetProgramInfoLog", referenced from:
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glCreateShader", referenced from:
_CompileShader in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CFArrayGetCount", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
_closeJoystick in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
__glfwPlatformPollJoystick in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glShaderSource", referenced from:
_CompileShader in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSString", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glCompileShader", referenced from:
_CompileShader in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glBindBuffer", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_UpdateBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glReadPixels", referenced from:
_rlReadScreenPixels in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDetachShader", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glAttachShader", referenced from:
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_IOHIDManagerCreate", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glGetShaderInfoLog", referenced from:
_CompileShader in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glLinkProgram", referenced from:
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_kCFTypeDictionaryKeyCallBacks", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CGGetOnlineDisplayList", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glDeleteShader", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glEnableVertexAttribArray", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glActiveTexture", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_IOHIDElementGetUsage", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"OBJC_METACLASS$_NSObject", referenced from:
OBJC_METACLASS$_GLFWWindowDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWApplicationDelegate in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWContentView in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWWindow in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWApplication in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
OBJC_METACLASS$_GLFWLayoutListener in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_glGetFloatv", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDeleteProgram", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CGDisplayModeGetRefreshRate", referenced from:
_vidmodeFromCGDisplayMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glPixelStorei", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_kCFTypeDictionaryValueCallBacks", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glDrawElements", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_objc_msgSend_stret", referenced from:
-[GLFWWindowDelegate windowDidResize:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
_centerCursor in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformGetWindowPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView mouseMoved:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView viewDidChangeBackingProperties] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView updateTrackingAreas] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView performDragOperation:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
...
"_CGDisplayModeGetIOFlags", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwPlatformGetVideoModes in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glGenTextures", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glTexImage2D", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CGDisplaySetDisplayMode", referenced from:
__glfwSetVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
__glfwRestoreVideoModeNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glTexParameteriv", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSImage", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glEnable", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glTexParameteri", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_METACLASS$_NSApplication", referenced from:
OBJC_METACLASS$_GLFWApplication in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_CFURLGetFileSystemRepresentation", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_glUniformMatrix4fv", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_IOIteratorNext", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glGetIntegerv", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glBindTexture", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_kCFTypeArrayCallBacks", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_CGSetDisplayTransferByTable", referenced from:
__glfwPlatformSetGammaRamp in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glGetShaderiv", referenced from:
_CompileShader in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CGDisplayUnitNumber", referenced from:
__glfwPollMonitorsNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glDrawArrays", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDeleteVertexArrays", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glGetString", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_NSSelectorFromString", referenced from:
_initializeAppKit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glGetStringi", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDepthFunc", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CGDisplayModeGetHeight", referenced from:
_vidmodeFromCGDisplayMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_glGetAttribLocation", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CFBundleGetBundleWithIdentifier", referenced from:
__glfwPlatformInit in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
__glfwInitNSGL in libraylib_rs-1526e7832ca5cff2.rlib(nsgl_context.m.o)
"OBJC_CLASS$_NSDictionary", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glGenVertexArrays", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CGDisplayMoveCursorToPoint", referenced from:
__glfwPlatformSetCursorPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glGetUniformLocation", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_IOHIDManagerOpen", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glCompressedTexImage2D", referenced from:
_rlLoadTexture in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDeleteTextures", referenced from:
_rlDeleteTextures in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glCreateProgram", referenced from:
_LoadShaderProgram in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CVDisplayLinkGetNominalOutputVideoRefreshPeriod", referenced from:
_vidmodeFromCGDisplayMode in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_monitor.m.o)
"_CGWarpMouseCursorPosition", referenced from:
__glfwPlatformSetCursorPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glClearDepth", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSNotificationCenter", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_init.m.o)
"_glVertexAttribPointer", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glCullFace", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CGMainDisplayID", referenced from:
__glfwPlatformGetWindowPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
_acquireMonitor in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWContentView firstRectForCharacterRange:actualRange:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformSetWindowPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformSetWindowMonitor in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformSetCursorPos in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glBindVertexArray", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_UpdateBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDisable", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glGenBuffers", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glBlendFunc", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glDisableVertexAttribArray", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glViewport", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_SetupViewport in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_WindowSizeCallback in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CFStringCreateWithCString", referenced from:
_getProcAddressNSGL in libraylib_rs-1526e7832ca5cff2.rlib(nsgl_context.m.o)
"_IOHIDElementGetUsagePage", referenced from:
_matchCallback in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glFrontFace", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glBufferSubData", referenced from:
_UpdateBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glUseProgram", referenced from:
_rlglClose in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_CFNumberCreate", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glUniform4f", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_glClearColor", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_InitWindow in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_ClearBackground in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"_IOHIDManagerScheduleWithRunLoop", referenced from:
__glfwInitJoysticksNS in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_joystick.m.o)
"_glClear", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_InitWindow in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_ClearBackground in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
_WindowSizeCallback in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSPasteboard", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_objc_msgSend", referenced from:
-[GLFWWindowDelegate windowDidResize:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWWindowDelegate windowDidMove:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
_acquireMonitor in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWWindowDelegate windowDidResignKey:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWApplicationDelegate applicationDidChangeScreenParameters:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
-[GLFWApplicationDelegate applicationDidFinishLaunching:] in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
__glfwPlatformPostEmptyEvent in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
...
"_glUniform1i", referenced from:
_DrawBuffersDefault in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
"OBJC_CLASS$_NSDate", referenced from:
objc-class-ref in libraylib_rs-1526e7832ca5cff2.rlib(cocoa_window.m.o)
"_glBufferData", referenced from:
_rlglInit in libraylib_rs-1526e7832ca5cff2.rlib(core.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: Could not compile raylib.

To learn more, run the command again with --verbose.

`

High CPU usage running the Hello World example

On latest macOS, installing went like a charm. However, running the current README's hello world example, even built in release mode using cargo build --release, I get a CPU usage of over 75%.

Am I missing something? I'm quite new to the Rust ecosystem.

Edit It looks like a mistake on my behalf that is out of scope for this library (which is awesome btw). I just needed to cap the FPS with:

rl.set_target_fps(60u32);

Might be worth putting in your Hello World example. Thanks again!

Fields of safe types are exposed as FFI types

Hello! I've been trying out a bunch of wrappers for raylib in different languages, so I've been playing around with some simple font rendering code that i've been porting around. So far, I think I like raylib-rs the best of everything i've tried, but I did notice a problem with how types are being wrapped in the library.

For example, let's say you create a Font like this, and try to change the texture filter:

let mut font = rl.load_font("res/MyFont.ttf");
rl.set_texture_filter(&font.texture, TextureFilter::Point);

Doing this will give you a compilation error, because font.texture is a ffi:Texture2D, not one of the "safe" Texture2Ds.

I believe the problem is that the make_thin_wrapper! macro isn't smart enough to understand that the members have to be wrapped. Probably any FFI types that have non-primitive fields (Font, Material, Shader, etc) need to be implemented manually instead of using a macro, so it's not just a problem with Font and Texture2D.

I would try to make a patch, but I'm fairly new to rust and not sure exactly how to best expose a "safe" Texture2D but that doesn't hold ownership (a Font already maintains its Texture2D, so the exposed font.texture should only have a reference). Maybe you have some ideas?

raygui support

Hi @deltaphc , have you considered supporting raygui?

I have created bindings of most functions

These are left unimplemented.

// TODO please write those for me
// GuiTextBox|bounds: Rectangle, text: *mut ::std::os::raw::c_char, textSize: i32, editMode: bool|bool
// GuiTextBoxMulti|bounds: Rectangle, text: *mut ::std::os::raw::c_char, textSize: i32, editMode: bool|bool
// GuiListViewEx|bounds: Rectangle, text: *mut *mut ::std::os::raw::c_char, count: i32, enabled: *mut i32, active: *mut i32, focus: *mut i32, scrollIndex: *mut i32, editMode: bool|bool
// GuiLoadStyleProps|props: *const i32, count: i32|

Missing additional linked libraries for Raspberry Pi

Hello again. I finally got to make raylib-rs work on my Pi3. Raylib-rs lacks a few a links to the system libraries for this target to properly compile and run.

In raylib-sys's build.rs fil, in the linux config scope, I added:

        println!("cargo:rustc-link-search=/opt/vc/lib");
        println!("cargo:rustc-link-lib=bcm_host");
        println!("cargo:rustc-link-lib=brcmEGL");
        println!("cargo:rustc-link-lib=brcmGLESv2");
        println!("cargo:rustc-link-lib=vcos");

I haven't got to make a PR because I don't know the proper way to patch this only when targeting the Raspberry nor how to add them independantly of the distribution (here, it compiles on Raspbian) but those libraries should be enough to work.

Thanks for the hard work in your wrapper.

Windows MinGW64 build error

C:/Users/ME/.cargo/bin/cargo.exe build --color=always --package VoxelLands --bin VoxelLands --message-format=json-diagnostic-rendered-ansi
   Compiling raylib-sys v3.5.0
error: failed to run custom build command for `raylib-sys v3.5.0`
Caused by:
  process didn't exit successfully: `C:\Users\ME\Desktop\MyGames\VoxelLands\target\debug\build\raylib-sys-42c963b1dd57a9b2\build-script-build` (exit code: 101)
  --- stdout
  running: "cmake" "C:\\Users\\ME\\Desktop\\MyGames\\VoxelLands\\target\\debug\\build\\raylib-sys-04f0b8d384bc617c\\out\\raylib" "-G" "MinGW Makefiles" "-DBUILD_EXAMPLES=OFF" "-DBUILD_GAMES=OFF" "-DCMAKE_BUILD_TYPE=Release" "-DSUPPORT_BUSY_WAIT_LOOP=OFF" "-DSTATIC=TRUE" "-DPLATFORM=Desktop" "-DCMAKE_INSTALL_PREFIX=C:\\Users\\ME\\Desktop\\MyGames\\VoxelLands\\target\\debug\\build\\raylib-sys-04f0b8d384bc617c\\out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -m64"
  -- The C compiler identification is GNU 8.1.0
  -- The CXX compiler identification is GNU 8.1.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Performing Test COMPILER_HAS_THOSE_TOGGLES
  -- Performing Test COMPILER_HAS_THOSE_TOGGLES - Success
  -- Testing if -Werror=pointer-arith can be used -- compiles
  -- Testing if -Werror=implicit-function-declaration can be used -- compiles
  -- Testing if -fno-strict-aliasing can be used -- compiles
  -- Using raylib's GLFW
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE  
  -- Looking for dinput.h
  -- Looking for dinput.h - found
  -- Looking for xinput.h
  -- Looking for xinput.h - found
  -- Performing Test _GLFW_HAS_DEP
  -- Performing Test _GLFW_HAS_DEP - Success
  -- Performing Test _GLFW_HAS_ASLR
  -- Performing Test _GLFW_HAS_ASLR - Success
  -- Performing Test _GLFW_HAS_64ASLR
  -- Performing Test _GLFW_HAS_64ASLR - Success
  -- Using Win32 for window creation
  -- Audio Backend: miniaudio
  -- Building raylib static library
  -- Generated build type: Release
  -- Compiling with the flags:
  --   PLATFORM=PLATFORM_DESKTOP
  --   GRAPHICS=GRAPHICS_API_OPENGL_33
  -- Configuring done
  -- Generating done
  -- Build files have been written to: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/build
  running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--"
  Scanning dependencies of target glfw_objlib
  [  4%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/context.c.obj
  [  8%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/init.c.obj
  [ 12%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/input.c.obj
  [ 16%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/monitor.c.obj
  [ 20%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/vulkan.c.obj
  [ 25%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/window.c.obj
  [ 29%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_init.c.obj
  [ 33%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_joystick.c.obj
  [ 37%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_monitor.c.obj
  [ 41%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_time.c.obj
  [ 50%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_window.c.obj
  [ 50%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/win32_thread.c.obj
  [ 54%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/egl_context.c.obj
  [ 58%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/wgl_context.c.obj
  [ 62%] Building C object src/external/glfw/src/CMakeFiles/glfw_objlib.dir/osmesa_context.c.obj
  [ 62%] Built target glfw_objlib
  Scanning dependencies of target glfw
  [ 66%] Linking C static library libglfw3.a
  [ 66%] Built target glfw
  Scanning dependencies of target raylib_static
  [ 70%] Building C object src/CMakeFiles/raylib_static.dir/core.c.obj
  [ 75%] Building C object src/CMakeFiles/raylib_static.dir/models.c.obj
  [ 79%] Building C object src/CMakeFiles/raylib_static.dir/raudio.c.obj
  [ 83%] Building C object src/CMakeFiles/raylib_static.dir/shapes.c.obj
  [ 87%] Building C object src/CMakeFiles/raylib_static.dir/text.c.obj
  [ 91%] Building C object src/CMakeFiles/raylib_static.dir/textures.c.obj
  [ 95%] Building C object src/CMakeFiles/raylib_static.dir/utils.c.obj
  [100%] Linking C static library libraylib.a
  [100%] Built target raylib_static
  Install the project...
  -- Install configuration: "Release"
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/lib/libraylib.a
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/include/raylib.h
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/lib/pkgconfig/raylib.pc
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/lib/cmake/raylib/raylib-config-version.cmake
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/lib/cmake/raylib/raylib-config.cmake
  -- Up-to-date: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/include/raylib.h
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/include/rlgl.h
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/include/physac.h
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/include/raymath.h
  -- Installing: C:/Users/ME/Desktop/MyGames/VoxelLands/target/debug/build/raylib-sys-04f0b8d384bc617c/out/include/raudio.h
  cargo:root=C:\Users\ME\Desktop\MyGames\VoxelLands\target\debug\build\raylib-sys-04f0b8d384bc617c\out
  --- stderr
  CMake Warning (dev) in CMakeLists.txt:
    No project() command is present.  The top-level CMakeLists.txt file must
    contain a literal, direct call to the project() command.  Add a line of
    code such as
      project(ProjectName)
    near the top of the file, but after cmake_minimum_required().
    CMake is pretending there is a "project(Project)" command on the first
    line.
  This warning is for project developers.  Use -Wno-dev to suppress it.
  CMake Warning:
    Manually-specified variables were not used by the project:
      BUILD_GAMES
      CMAKE_ASM_FLAGS
  C:\Users\ME\Desktop\MyGames\VoxelLands\target\debug\build\raylib-sys-04f0b8d384bc617c\out\raylib\src\raudio.c: In function 'SaveWAV':
  C:\Users\ME\Desktop\MyGames\VoxelLands\target\debug\build\raylib-sys-04f0b8d384bc617c\out\raylib\src\raudio.c:1967:45: warning: passing argument 2 of 'drwav_init_memory_write' from incompatible pointer type [-Wincompatible-pointer-types]
       success = drwav_init_memory_write(&wav, &fileData, &fileDataSize, &format, NULL);
                                               ^~~~~~~~~
  In file included from C:\Users\ME\Desktop\MyGames\VoxelLands\target\debug\build\raylib-sys-04f0b8d384bc617c\out\raylib\src\raudio.c:223:
  C:\Users\ME\Desktop\MyGames\VoxelLands\target\debug\build\raylib-sys-04f0b8d384bc617c\out\raylib\src\external/dr_wav.h:3409:68: note: expected 'void **' but argument is of type 'unsigned char **'
   DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks)
                                                               ~~~~~~~^~~~~~
  thread 'main' panicked at 'filed to create windows library', C:\Users\ME\.cargo\registry\src\github.com-1ecc6299db9ec823\raylib-sys-3.5.0\build.rs:88:13
  stack backtrace:
     0: std::panicking::begin_panic
               at C:\Users\ME\.cargo\registry\src\github.com-1ecc6299db9ec823\cc-1.0.66/C:\Users\ME\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\library\std\src/panicking.rs:521:12
     1: build_script_build::build_with_cmake
               at .\C:\Users\ME\.cargo\registry\src\github.com-1ecc6299db9ec823\raylib-sys-3.5.0/build.rs:88:13
     2: build_script_build::main
               at .\C:\Users\ME\.cargo\registry\src\github.com-1ecc6299db9ec823\raylib-sys-3.5.0/build.rs:198:5
     3: core::ops::function::FnOnce::call_once
               at .\C:\Users\ME\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\library\core\src\ops/function.rs:227:5
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Process finished with exit code 101

In this case, the library compiles successfully, but with a different name: "libraylib.a".

image

This fixes manually by renaming the file to "raylib_static.lib" and running the build.

rl.get_key_pressed() is only firing for some keys

The only keys I could get to work with this function:

Some(KEY_ONE)
Some(KEY_TWO)
Some(KEY_THREE)
Some(KEY_FOUR)
Some(KEY_FIVE)
Some(KEY_SIX)
Some(KEY_SEVEN)
Some(KEY_EIGHT)
Some(KEY_NINE)
Some(KEY_ZERO)
Some(KEY_MINUS)
Some(KEY_EQUAL)
Some(KEY_EQUAL)
Some(KEY_GRAVE)
Some(KEY_SPACE)
Some(KEY_BACKSLASH)
Some(KEY_RIGHT_BRACKET)
Some(KEY_LEFT_BRACKET)
Some(KEY_SEMICOLON)
Some(KEY_APOSTROPHE)
Some(KEY_SLASH)
Some(KEY_PERIOD)
Some(KEY_COMMA)

I'm not sure if this is a core issue or a rust level issue

0.11.0 Plan

I know 0.10.0 isn't even out yet at this time of writing, but I already have in mind that it will mostly be ergonomics and making things idiomatic for Rust. Meanwhile, there will probably be bigger changes for 0.11.0.

  • Update binding to the upcoming raylib 2.5
  • raylib-sys: bundled flag for automatically downloading and compiling raylib source, and making use of bindgen at build time ( #6 )
  • Add raygui support ( #7 ) behind raygui flag
  • Possibly investigate porting physac.h to Rust. There's a lot in there, so we'll see
  • Finally port raylib example code into an examples directory
  • Beef up documentation with more pervasive examples, and filling in the raylib types

The update to raylib 2.5 (which raysan is currently working on) will probably be the most affecting change for the rest of the tasks. I feel it would be wise to do that first (with the raylib git version first) before continuing with other major features.

Issue following current README.md

Long story short, following the Installation section of README.md, gave me an error.

Recreating issue:

  1. cargo new raylib_test
  2. Add dependency as per instruction.
  3. Copy and paste README.md sample code in main.rs
  4. cargo run

Result:
LHK3_8uk

I talked to Ray and he asked me to post this here. Thanks in advance! (:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.