-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: 4.5.0 + various redesign #149
base: master
Are you sure you want to change the base?
Conversation
While (im)mutable handles are fundamentally not a bad idea, the Rust semantics of mutable borrow mecanism doesn't really match what we are trying to do and can cause some weird errors. It is actually best to make things a lot simpler while losing a bit on guaranties on raylib state. Additionally, replace the rather confusing "renderloop" with a simple frame callback mecanism.
Add support for some unimplemented raylib 4.5.0. Replace impl Into<ffi::VectorN> with mint vectors. Remove some wrappers, move their implementation into raylib-sys's structures. Cleanup various parts. Improve raylib-sys, may be able to use other raylib librairies.
Actually makes things simpler, and avoids invalid nested begin*mode.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small Changes
Co-authored-by: Dacode45 <[email protected]>
Co-authored-by: Dacode45 <[email protected]>
Makes the structure declaration in line with everything else. Not sure if that changes anything in term of behavior.
How is the status of this? I would love to have this merged and usable. |
It is somewhat usable (not thoroughly tested). |
…er things. Raygui wasn't really safe, as it relied on "use after free" to be fine, this review made it less reliant on this undefined behavior.
it is outdated, right? |
Built on top of https://github.com/deltaphc/raylib-rs/tree/4.2.0
Along with 4.5.0 support (albeit without its added features), this branches features this :
make_bound_thin_wrapper!
to create raylib objects that has a shorter lifetime than RaylibHandle, port relevant types to this, including appropriate lifetime parametersRaylibHandle
is droppedupdate_audio_stream
a bit saferRaylibBuffer<T>
instead of "rslices"get_dropped_files
with iteratorsRaylibBuffer<T>
get_window_state
RaylibRenderLoop
to manageRaylibDrawHandle
and probably some other things
Samples still need to be updated.