Skip to content

v5.5.3

Choose a tag to compare

@brettchalupa brettchalupa released this 24 Apr 13:43
· 39 commits to main since this release
Immutable release. Only release title and notes can be modified.
2d9d8ae

Doc improvements and bug fixes ported from upstream raylib-rs, scoped to
soundness and correctness. Thanks to all the original authors linked below.

Breaking

  • Image::export_image_to_memory now returns Result<Vec<u8>, Error> instead
    of Result<&[u8], Error>. The previous signature leaked on every call
    (raylib's buffer was never freed) and had an unsound lifetime. Adapted from
    raylib-rs #250 / #247.

Deprecated

  • RaylibMesh::indicies / indicies_mut — use indices / indices_mut. The
    typo'd names stay through 5.x and are removed in 6.0.

Fixed

  • Soundness: RaylibMesh accessors return an empty slice when the
    underlying buffer is null instead of invoking UB via
    slice::from_raw_parts(null, _) (raylib-rs#257).
  • Soundness: RaylibMesh::indices length is now triangleCount * 3 (what
    raylib allocates) rather than vertexCount (raylib-rs#257).
  • Soundness: Sound::alias lifetimes correctly bind the sound's lifetime to
    the receiver (4d53bd4).
  • Use-after-free: load_model_animations frees only the outer array via
    MemFree, rather than UnloadModelAnimations which also tore down the
    animations the Vec had just taken ownership of (ccc0827).
  • Data corruption: AudioStream::update passes element count (not byte
    size) to ffi::UpdateAudioStream, matching the C API
    (raylib-rs#212).
  • Texture2D::update_texture_rec validates the destination rectangle and sizes
    the expected pixel buffer from rect dimensions (cb0c004).
  • Closure-based draw helpers (draw, draw_mode2D, etc.) no longer call
    ffi::End*() twice — the handle's Drop already does
    (aadf1a7).
  • gui_text_box and gui_text_input_box grow the buffer and round-trip the
    null terminator, so text input works (e2be94b).
  • gui_panel passes a null pointer for empty strings, matching GuiPanel's C
    API (95234d1).

Other

  • Add docs to README on drop ordering.
  • CI and just ok build with --all-targets so examples are exercised
    alongside the library crates.
  • Examples look better on High DPI screens.
  • just examples to quickly run a bunch of different examples.