From 93c672150cf2f3b1680b31d8b78eba9c5b1a6c67 Mon Sep 17 00:00:00 2001 From: florianvazelle Date: Fri, 19 Sep 2025 19:16:48 +0200 Subject: [PATCH 01/12] ci: automate changelog generation (#231) --- .github/workflows/changelog.yml | 42 ++++ CHANGELOG.md | 72 +++++++ changelog.md | 360 -------------------------------- cliff.toml | 120 +++++++++++ 4 files changed, 234 insertions(+), 360 deletions(-) create mode 100644 .github/workflows/changelog.yml create mode 100644 CHANGELOG.md delete mode 100644 changelog.md create mode 100644 cliff.toml diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 00000000..c4d6e0ec --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,42 @@ +name: changelog + +on: + push: + branches: ["master"] + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + changelog: + name: Generate changelog + runs-on: ubuntu-24.04 + outputs: + release_body: ${{ steps.git-cliff.outputs.content }} + + steps: + - name: Checkout + uses: actions/checkout@v5 + with: + fetch-depth: 0 + ref: master + + - name: Generate changelog + uses: orhun/git-cliff-action@v4 + with: + config: cliff.toml + args: --verbose v0.14.36..HEAD + env: + OUTPUT: CHANGELOG.md + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + commit-message: 'chore: update CHANGELOG.md' + author: changelog-updater + signoff: false + branch: update-changelog + delete-branch: true + title: 'chore: update CHANGELOG.md' \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..4059b173 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,72 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Changed +- Automate changelog generation + +## [0.15.1] - 2025-09-14 + +### Added +- Add basic TTF_TextEngine wrapper ([#221](https://github.com/vhspace/sdl3-rs/pull/221)) +- Add set_scale_mode and scale_mode to unsafe Texture ([#224](https://github.com/vhspace/sdl3-rs/pull/224)) + +### Changed +- Bump minor version, sort of breaking changes +- Update log enums ([#222](https://github.com/vhspace/sdl3-rs/pull/222)) +- Add lint pr title workflow ([#229](https://github.com/vhspace/sdl3-rs/pull/229)) +- Remove build cache ([#228](https://github.com/vhspace/sdl3-rs/pull/228)) + +### Fixed +- Expose viewport wrapper publicly ([#227](https://github.com/vhspace/sdl3-rs/pull/227)) + +### Removed +- Remove PixelFormatEnum ([#223](https://github.com/vhspace/sdl3-rs/pull/223)) + +### Dependencies +- Bump actions/checkout from 4 to 5 ([#211](https://github.com/vhspace/sdl3-rs/pull/211)) +- Bump bitflags from 2.9.1 to 2.9.4 ([#225](https://github.com/vhspace/sdl3-rs/pull/225)) +- Bump amannn/action-semantic-pull-request from 5 to 6 ([#230](https://github.com/vhspace/sdl3-rs/pull/230)) + +## [0.14.42] - 2025-09-04 + +### Dependencies +- Bump sdl3-sys from 0.5.0+SDL3-3.2.12 to 0.5.5+SDL3-3.2.22 ([#226](https://github.com/vhspace/sdl3-rs/pull/226)) + +## [0.14.41] - 2025-08-24 + +### Added +- Add Viewport wrapper and RenderPass::set_scissor ([#220](https://github.com/vhspace/sdl3-rs/pull/220)) +- Add fence and blit operations ([#218](https://github.com/vhspace/sdl3-rs/pull/218)) + +## [0.14.40] - 2025-08-18 + +### Added +- Added IOStream::from_vec. + +### Changed +- Rework checks workflows ([#203](https://github.com/vhspace/sdl3-rs/pull/203)) +- Replace unsound gpu enums with wrapper structs ([#200](https://github.com/vhspace/sdl3-rs/pull/200)) +- Fix GPU compute pass binding count and expose storage bindings ([#199](https://github.com/vhspace/sdl3-rs/pull/199)) + +### Fixed +- Use new enum format ([#202](https://github.com/vhspace/sdl3-rs/pull/202)) +- Allow to bind samplers for compute pass ([#201](https://github.com/vhspace/sdl3-rs/pull/201)) + +### Dependencies +- Bump libc from 0.2.172 to 0.2.174 ([#210](https://github.com/vhspace/sdl3-rs/pull/210)) +- Bump bitflags from 2.9.0 to 2.9.1 ([#207](https://github.com/vhspace/sdl3-rs/pull/207)) +- Bump actions/cache from 3 to 4 ([#208](https://github.com/vhspace/sdl3-rs/pull/208)) + +[unreleased]: https://github.com/vhspace/sdl3-rs/compare/v0.15.1...HEAD +[0.15.1]: https://github.com/vhspace/sdl3-rs/compare/v0.14.42...v0.15.1 +[0.14.42]: https://github.com/vhspace/sdl3-rs/compare/v0.14.41...v0.14.42 +[0.14.41]: https://github.com/vhspace/sdl3-rs/compare/v0.14.40...v0.14.41 +[0.14.40]: https://github.com/vhspace/sdl3-rs/compare/v0.14.36...v0.14.40 + + diff --git a/changelog.md b/changelog.md deleted file mode 100644 index 0557fb77..00000000 --- a/changelog.md +++ /dev/null @@ -1,360 +0,0 @@ -In this file will be listed the changes, especially the breaking ones that one should be careful of -when upgrading from a version of sdl3 to another. - -# Major Version - -## v0.1.0 - SDL3 Migration - -Full documentation on changes in SDL3: https://github.com/libsdl-org/SDL/blob/main/docs/README-migration.md - -- The barest rewrite to support SDL3. Almost certainly broken in many ways but an attempt to jump-start SDL3 support in Rust. -- The Gamecontroller subsystem was renamed to Gamepad. -- Most coordinates for rectangles and points now use f32 instead of u32. -- New distinctions between screen and pixel size for scaled displays. - -### Unreleased - -[PR #1270](https://github.com/Rust-SDL2/rust-sdl2/pull/1270) **BREAKING CHANGE** Remove &mut self requirement in `TimerSubsystem::delay`; Add `TimerSubsystem::ticks64` - -[PR #1225](https://github.com/Rust-SDL2/rust-sdl2/pull/1225) Update wgpu to 0.12 and fix raw-window-handle-with-wgpu example -[PR #1250](https://github.com/Rust-SDL2/rust-sdl2/pull/1250) Add `lib64` to native library search path when using bundled feature - -[PR #1240](https://github.com/Rust-SDL2/rust-sdl2/pull/1240) **BREAKING CHANGE** Take `PixelMasks` by refrence - -[PR #1254](https://github.com/Rust-SDL2/rust-sdl2/pull/1254) **BREAKING CHANGE** Make `SdlDrop` and `SubsystemDrop` safer; forbid external code from constructing `SdlDrop` - -### v0.35.2 - -[PR #1173](https://github.com/Rust-SDL2/rust-sdl2/pull/1173) Fix segfault when using timer callbacks - -[PR #1183](https://github.com/Rust-SDL2/rust-sdl2/pull/1183) WinRT support for raw-window-handle - -[PR #1182](https://github.com/Rust-SDL2/rust-sdl2/pull/1182) Updated raw-window-handle to 0.4 - -[PR #1189](https://github.com/Rust-SDL2/rust-sdl2/pull/1189) Added `AudioQueue::queue_audio` and deprecated `AudioQueue::queue` - -[PR #1164](https://github.com/Rust-SDL2/rust-sdl2/pull/1164) Added raw-window-handle support for Android - -[PR #1165](https://github.com/Rust-SDL2/rust-sdl2/pull/1165) Added binding for `SDL_GetDisplayOrientation` and `SDL_DISPLAYEVENT` - -### v0.35.0 - -- **BREAKING CHANGE** Update `sdl2-sys/sdl_bindings.rs` to use enums instead of consts. If you were using `sdl2-sys`'s - enum variants directly in your project, you may be affected. If you only used sdl2 calls, there should not be any problems. - -- **BREAKING CHANGE** SDL 2.0.14 or higher is now recommended due to the new binding being added for `SDL_OpenURL`. If you get linking errors, upgrade your SDL2 libraries, or swap to using the `bundled` feature. - -[PR #1138](https://github.com/Rust-SDL2/rust-sdl2/pull/1138) Added binding for `SDL_OpenURL` - -[PR #1150](https://github.com/Rust-SDL2/rust-sdl2/pull/1150) Do not download SDL2 sources when using bundled feature - -[PR #1112](https://github.com/Rust-SDL2/rust-sdl2/pull/1112) Add wrapper functions for `SDL_RenderSetIntegerScale` and `SDL_RenderGetIntegerScale` - -[PR #1156](https://github.com/Rust-SDL2/rust-sdl2/pull/1156) **Maybe breaking change**: new variants to enum `GameController`, and prevent panic with unrecognized buttons. - -[PR #1153](https://github.com/Rust-SDL2/rust-sdl2/pull/1153) `SDL_GL_GetCurrentContext` and `SDL_RenderFlush` added. - -[PR #1131](https://github.com/Rust-SDL2/rust-sdl2/pull/1131) Added Sensor API. - -### v0.34.5 - -[PR #1100](https://github.com/Rust-SDL2/rust-sdl2/pull/1100) Added binding for `SDL_GetDisplayUsableBounds` - -[PR #1102](https://github.com/Rust-SDL2/rust-sdl2/pull/1102) Correctly se linux and macSO built libraries when using bundled without static-link. - -[PR #1098](https://github.com/Rust-SDL2/rust-sdl2/pull/1098) Fix potential heap corruption when using AudioCVT::convert - -[PR #1088](https://github.com/Rust-SDL2/rust-sdl2/pull/1088) Rollback of PR #1081: Broke dynamic linking on Windows - -Various fixes to CI. - -### v0.34.4 - -[PR #1086](https://github.com/Rust-SDL2/rust-sdl2/pull/1086) Update bundled to use SDL2 2.0.14 - -[PR #1033](https://github.com/Rust-SDL2/rust-sdl2/pull/1033) Changed signature of TimerSubsystem::ticks to accept `&self`. - -[PR #1057](https://github.com/Rust-SDL2/rust-sdl2/pull/1057): fix memory safety bug in set_error - -[PR #1081](https://github.com/Rust-SDL2/rust-sdl2/pull/1081): Allow bundled build to be built in debug mode. Fixes issue when linking binary with mixed debug+release CRT dependencies. - -[PR #1080](https://github.com/Rust-SDL2/rust-sdl2/pull/1080): Fix line endings of patches to lf so patching of sources works on Windows. - -[PR #1031](https://github.com/Rust-SDL2/rust-sdl2/pull/1031): Add patch to fix metal detection (https://bugzilla.libsdl.org/show_bug.cgi?id=4988) - -### v0.34.3 - -[PR #1027](https://github.com/Rust-SDL2/rust-sdl2/pull/1027): upgrade "bundled" version of SDL2 to 2.0.12 -[PR #1020](https://github.com/Rust-SDL2/rust-sdl2/pull/1020): revert undefined behavior introduction. -[Commit](https://github.com/Rust-SDL2/rust-sdl2/commit/9d1851b7dfa53168d22c5c17ca941088e9ab4b34): Fix clippy issue -[Commit](https://github.com/Rust-SDL2/rust-sdl2/commit/eaa01c597e08f08962b47a862dfdc2b5a0f63b5d): Temporarily suppress dangerous clippy hints -[PR#1014](https://github.com/Rust-SDL2/rust-sdl2/pull/1014): add `load_texture_bytes` interface for load texture from buffer - -### v0.34.2 - -[PR #1012](https://github.com/Rust-SDL2/rust-sdl2/pull/1012) -Fix use after free with AudioDevice::open and AudioDevice::open_queue - -[PR #1010](https://github.com/Rust-SDL2/rust-sdl2/pull/1010) -Fix compilation with gcc10. - -[PR #1009](https://github.com/Rust-SDL2/rust-sdl2/pull/1009) -Add support for linking to development libraries from vcpkg, and automatically setting up a vcpkg installation using `cargo-vcpkg`. - -### v0.34.1 - -[PR #1004](https://github.com/Rust-SDL2/rust-sdl2/pull/1004) + [PR #1005](https://github.com/Rust-SDL2/rust-sdl2/pull/1005): -Add convenience functions for Window and Event. - -[PR #996](https://github.com/Rust-SDL2/rust-sdl2/pull/996): -Impl `From` for `WindowPos`. - -[PR #988](https://github.com/Rust-SDL2/rust-sdl2/pull/988): -Add convenience functions for `Texture`. - -### v0.34.0 - -[PR #962](https://github.com/Rust-SDL2/rust-sdl2/pull/962): -Added `raw-window-handle` support for Windows, Linux (X11 and Wayland) and macOS. - -[PR #964](https://github.com/Rust-SDL2/rust-sdl2/pull/964): -**Breaking change**: Change joystick instance IDs from i32 to u32. - -[PR #965](https://github.com/Rust-SDL2/rust-sdl2/pull/965): -Added invert method for Color, and added more Color names as constants. - -[PR #968](https://github.com/Rust-SDL2/rust-sdl2/pull/968) -Pass SDL2 include directories to `sdl2-sys`'s dependant crates through `DEP_SDL2_INCLUDE`. - -[PR #970](https://github.com/Rust-SDL2/rust-sdl2/pull/970) -Add `Chunk::from_buffer` in mixer. - -[PR #976](https://github.com/Rust-SDL2/rust-sdl2/pull/976) -Fix compilation with `use-bingen` feature. - -[PR #977](https://github.com/Rust-SDL2/rust-sdl2/pull/977) -Add `cpuinfo::has_avx2` and `cpuinfo::has_avx512f` - -[PR #982](https://github.com/Rust-SDL2/rust-sdl2/pull/982) -Support for loading Opus format in mixer. - -[PR #980](https://github.com/Rust-SDL2/rust-sdl2/pull/980) -Fix compilation on Windows. - -### v0.33 - -[PR #956](https://github.com/Rust-SDL2/rust-sdl2/pull/956) + [PR #960](https://github.com/Rust-SDL2/rust-sdl2/pull/960) + [PR #951](https://github.com/Rust-SDL2/rust-sdl2/pull/951): -Fix some build targets. - -[PR #948](https://github.com/Rust-SDL2/rust-sdl2/pull/948) + [PR #957](https://github.com/Rust-SDL2/rust-sdl2/pull/957): -Remove the `num` dependency. - -[PR #947](https://github.com/Rust-SDL2/rust-sdl2/pull/947): -Upgraded the "bundled" version of SDL2 to 2.0.10 - -[PR #940](https://github.com/Rust-SDL2/rust-sdl2/pull/940): -**Breaking change** Removed the `rand` dependency for random colors. You will have to implement your own random colors from now on. - -[PR #933](https://github.com/Rust-SDL2/rust-sdl2/pull/933): -**Breaking change** Removed AudioFormatNum::zero(), use AudioFormatNum::SILENCE constant instead. - -[PR #907](https://github.com/Rust-SDL2/rust-sdl2/pull/907): -Changed the data type to i32 for the `which` field for the events `ControllerDeviceAdded` and `JoyDeviceAdded`. - -[PR #882](https://github.com/Rust-SDL2/rust-sdl2/pull/882): -Ignore unknown bits in `SDL_Keysym`'s `mod` field (key modifiers) when constructing `Event::KeyDown` and `Event::KeyUp`. Deprecate `sdl2::event::Event::unwrap_keymod`, which had been made public accidentally. - -[PR #898](https://github.com/Rust-SDL2/rust-sdl2/pull/898): -Implements `TryFrom` for `PixelFormat` - -### v0.32.2 - -[PR #868](https://github.com/Rust-SDL2/rust-sdl2/pull/868): -Added inplace operations for `rect::Point`. - -[PR #827](https://github.com/Rust-SDL2/rust-sdl2/pull/827): -Added 32-bit array pixelformats - -[PR #824](https://github.com/Rust-SDL2/rust-sdl2/pull/824): -Added `controller::set_rumble` and `joystick::set_rumble`, wrappers for `SDL_GameControllerRumble` and `SDL_JoystickRumble` respectively. - -[PR #867](https://github.com/Rust-SDL2/rust-sdl2/pull/867): -Added `Window::opacity` and `Window::set_opacity`, wrappers for `SDL_GetWindowOpacity` and `SDL_SetWindowOpacity` respectively. This bumps the minimum `SDL2` version requirement from `2.0.4` to `2.0.5`. - -### v0.32 - -[PR #790](https://github.com/Rust-SDL2/rust-sdl2/pull/790): Added missing `window_id` field to `Event::DropFile` - -[PR #789](https://github.com/Rust-SDL2/rust-sdl2/pull/789): Audio Safety Fixes - -[PR #785](https://github.com/Rust-SDL2/rust-sdl2/pull/785): Vulkan Support - -[PR #782](https://github.com/Rust-SDL2/rust-sdl2/pull/782) - -- Move ffi of features (mixer, ...) into `sys` -- Updated SDL2's default version to 2.0.8 - -[PR #780](https://github.com/Rust-SDL2/rust-sdl2/pull/780): Fixed a panic in `keyboard::Mod` - -[PR #775](https://github.com/Rust-SDL2/rust-sdl2/pull/775): Added `get_platform` - -[PR #774](https://github.com/Rust-SDL2/rust-sdl2/pull/774): `add_timer` is now must_use - -[PR #764](https://github.com/Rust-SDL2/rust-sdl2/pull/764): impl `Hash` for `Point` and `Rect` - -[PR #763](https://github.com/Rust-SDL2/rust-sdl2/pull/763): Allow `-sys` to build for `windows-gnu` target - -[PR #751](https://github.com/Rust-SDL2/rust-sdl2/pull/751): -**Breaking change** `gl_setswap_interval` now returns a `Result` instead of a `bool`. - -[PR #759](https://github.com/Rust-SDL2/rust-sdl2/pull/759): Expose Joystick power level - -[PR #751](https://github.com/Rust-SDL2/rust-sdl2/pull/751) - -- Fix memory leak in `filesystem::base_path()` -- Fix memory leak on `ClipboardUtil::clipboard_text()` - -[PR #740](https://github.com/Rust-SDL2/rust-sdl2/pull/740): Implement Debug for Event - -[PR #737](https://github.com/Rust-SDL2/rust-sdl2/pull/737): -Fix `ClipboardUtil::set_clipboard_text` to return an Ok when it went well. - -[PR #733](https://github.com/Rust-SDL2/rust-sdl2/pull/733): -Add `video::border_size -> Result<(u16, u16, u16, u16), String>` equivalent of `SDL_GetWindowBorderSize()` - -[PR #732](https://github.com/Rust-SDL2/rust-sdl2/pull/732): -Implemented `From<(u8, u8, u8)>` and `From<(u8, u8, u8, u8)>` for `pixels::Color`. -`Canvas.set_draw_color` can now be called with tuples or other types which implements `Into` - -[PR #279](https://github.com/Rust-SDL2/rust-sdl2/pull/729) - -- **Breaking change** set_video_minimize_on_focus_lost was renamed to …minimize_on_focus_loss, as it should be. As a bonus, it works now. -- Although this is a breaking change, this function was not working in the first place, so this is hardly a true breaking change - -### v0.31 - -[PR #693](https://github.com/Rust-SDL2/rust-sdl2/pull/693), [PR #720](https://github.com/Rust-SDL2/rust-sdl2/pull/720) - -- Adds feature "bundled" as well as "static-link". Entirely compatible wit hthe "use-bindgen" feature. Windows-gnu is not supported yet, any help is needed on that side, but every other major platform should be supported. - -[PR #711](https://github.com/Rust-SDL2/rust-sdl2/pull/711) - -- **Breaking change** Change HatState::Leftdown casing into HatState::LeftDown to be consistent with naming. - -[PR #695](https://github.com/Rust-sdl2/rust-sdl2/pull/695) - -- sdl2-sys can now be generated at compile time by bindgen (Opt-in required - with "use-bindgen" feature) -- The new sdl2-sys source code is generated by bindgen, hence **almost everything - that uses sdl2-sys will be broken**. The fixes are small but still preset. - -[PR #673](https://github.com/Rust-sdl2/rust-sdl2/pull/673) - -- Support Audio Capture in AudioCallbacks. - -[PR #684](https://github.com/Rust-sdl2/rust-sdl2/pull/684) - -- **Breaking change** Make get_swap_interval return an enum instead of i32 -- The signature of set_swap_interval has been changed as well, but it shouldn't - breaking existing code too much. - -[PR #683](https://github.com/Rust-sdl2/rust-sdl2/pull/683) - -- Adds the `unsafe_textures` feature to this crate, allowing to get rid of the lifetimes - in `Texture`s in the `render` module. - -[PR #704](https://github.com/Rust-SDL2/rust-sdl2/pull/704) - -- Adds the `Music::from_static_bytes` function, which creates a Music instance with the - static lifetime from a buffer that also has a static lifetime. - -[PR #708](https://github.com/Rust-SDL2/rust-sdl2/pull/708) - -- Makes the fields of the `sdl2::mixer::Channel(i32)` and `sdl::mixer::Group(i32)` structs - public so they can be instantiated directly, and deprecates `sdl2::mixer::channel(i32)`. - -[PR #714](https://github.com/Rust-SDL2/rust-sdl2/pull/714) - -- **Breaking change** Updates the `which` fields of `sdl2::Event::ControllerDeviceAdded` and `sdl2::Event::JoyDeviceAdded` to be `u32`s so they can be used with `sdl2::GameControllerSubsystem` and `sdl::JoystickSubsystem` methods directly. -- **Breaking change** Updates `sdl2::HapticSubsystem::open_from_joystick_id` to correctly advertise `joystick_index` as being a `u32`. -- This should only mean removing type conversions which were previously needed to use these values, or changing incorrect assumptions in existing code. - -### v0.30 - -Re-exported sdl2_sys as sdl2::sys - -[PR #632](https://github.com/AngryLawyer/rust-sdl2/pull/632) - -The path of soundness isn't an easy one; sometimes ease of use has to be sacrificed -for soundness and safety! This change is a breaking change, and a **huge** one at that. - -**You will probably have to refactor some parts of your code**, but this is the price to -pay for soundness and runtime safety. - -**Breaking Changes:** - -- `Renderer` has been renamed and split into `Canvas` and `TextureCreator`. -- `Canvas` can store a `Surface` or a `Window`, and can be used to render into these as well. - `TextureCreator` creates `Texture`s and is used by Texture to make sure they don't live - longer than expected. -- `set_render_target` has been removed and has been replaced with `Canvas::with_texture_canvas` - and `Canvas::with_multiple_texture_canvas` -- Deleted `WindowRef`, it wasn't useful anymore. - -Other Changes: - -- Added `PixelFormatEnum::supports_alpha(&self) -> bool` method. -- A single Game Of Life example has been added to show the basic capabilities of the new `Canvas` - and `TextureCreator` structs, as well as adding a very basic game to show how to handle input / game - changes in a basic game. - -You won't have to worry about what target your `Renderer` has at runtime anymore, everything -is done at compile time now ! - -[PR #628](https://github.com/AngryLawyer/rust-sdl2/pull/628) - -- Changed signature of `Surface::fill_rects` ([old](https://docs.rs/sdl2/0.29.1/sdl2/surface/struct.SurfaceRef.html#method.fill_rects) | [new](https://docs.rs/sdl2/0.30.0/sdl2/surface/struct.SurfaceRef.html#method.fill_rects)) -- Changed various `Option` parameters into `Into>` parameters. For instance, it is now possible to do this: - -```rust -surface.blit(None,Rect::new(5,5,5,5)); // instead of surface.blit(None,Some(Rect::new(5,5,5,5))); -``` - -[PR #639](https://github.com/AngryLawyer/rust-sdl2/pull/639) - -- Added hint-specific functions to `sdl2::hint` - -```rust -sdl2::hint::set_video_minimize_on_focus_lost(bool) -> bool; -sdl2::hint::set_video_minimize_on_focus_lost_with_priority(bool, sdl2::hint::Hint) -> bool; -sdl2::hint::get_video_minimize_on_focus_lost() -> bool; -``` - -[PR #629](https://github.com/AngryLawyer/rust-sdl2/pull/629) - -- **Breaking Change: Changed Color to be a struct rather than an enum.** -- Takes less space, easier to use, old constructors are still available. -- Matching is no longer necessary to read the component values. -- Struct rather than variant construction is required in static initializers. - -```rust -let color = Color { r: 255, g: 0, b: 0, a: 255 }; -let color = Color::RGBA(255, 0, 0, 255); -let color = Color::RGB(255, 0, 0); -let (r, g, b) = color.rgb(); -let (r, g, b, a) = color.rgba(); -``` - -[PR #651](https://github.com/AngryLawyer/rust-sdl2/pull/629) - -- **VideoSystem::display_name** now returns a `Result` instead of a `String`. -- This prevents a segfault when the requested display index is out of bounds - -[commit e9681a0fe](https://github.com/AngryLawyer/rust-sdl2/commit/e9681a0fe) - -- `window.surface()` has been changed and is now more intuitive to use. -- The example in `examples/no-renderer.rs` shows how to use this feature. - -[PR #635](https://github.com/AngryLawyer/rust-sdl2/pull/635) - -- **Deprecated `Rect::contains`**, added `Rect::contains_point` and `Rect::contains_rect`. **`contains` and `contains_point` are close but different ! See [here](https://github.com/AngryLawyer/rust-sdl2/issues/569)** diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 00000000..3d9da690 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,120 @@ +# git-cliff ~ configuration file +# https://git-cliff.org/docs/configuration + +[remote.github] +owner = "vhspace" +repo = "sdl3-rs" + +[changelog] +# A Tera template to be rendered as the changelog's header. +# See https://keats.github.io/tera/docs/#introduction +header = """ +# Changelog\n +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n +""" +# A Tera template to be rendered for each release in the changelog. +# See https://keats.github.io/tera/docs/#introduction +body = """ +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% if version -%} + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else -%} + ## [Unreleased] +{% endif -%} + +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | upper_first }} + {%- for commit in commits %} + - {{ commit.message | split(pat="\n") | first | upper_first | trim }}\ + {% endfor %} +{% endfor %} + +""" +# A Tera template to be rendered as the changelog's footer. +# See https://keats.github.io/tera/docs/#introduction +footer = """ +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% for release in releases -%} + {% if release.version -%} + {% if release.previous.version -%} + [{{ release.version | trim_start_matches(pat="v") }}]: \ + {{ self::remote_url() }}/compare/{{ release.previous.version }}...{{ release.version }} + {% endif -%} + {% else -%} + {% if release.previous.version -%} + [unreleased]: {{ self::remote_url() }}/compare/{{ release.previous.version }}...HEAD + {% else -%} + [unreleased]: {{ self::remote_url() }}/compare/21b9f0c7a763a8612c9c153fb0935f70fc88abbd...HEAD + {% endif -%} + {% endif -%} +{% endfor %} + +""" +# Remove leading and trailing whitespaces from the changelog's body. +trim = true +# Render body even when there are no releases to process. +render_always = true +# An array of regex based postprocessors to modify the changelog. +postprocessors = [ + # Replace the placeholder with a URL. + { pattern = '', replace = "https://github.com/vhspace/sdl3-rs" }, +] + +[git] +# Parse commits according to the conventional commits specification. +# See https://www.conventionalcommits.org +conventional_commits = true +# Exclude commits that do not match the conventional commits specification. +filter_unconventional = false +# An array of regex based parsers to modify commit messages prior to further processing. +commit_preprocessors = [ + # Replace issue numbers with link templates to be updated in `changelog.postprocessors`. + { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/pull/${2}))" }, + # Check spelling of the commit message using https://github.com/crate-ci/typos. + # If the spelling is incorrect, it will be fixed automatically. + #{ pattern = '.*', replace_command = 'typos --write-changes -' }, +] +# An array of regex based parsers for extracting data from the commit message. +# Assigns commits to groups. +# Optionally sets the commit's scope and can decide to exclude commits from further processing. +commit_parsers = [ + { message = "^feat", group = "Added" }, + { message = "^doc", group = "Documentation" }, + { message = "^perf", group = "Changed" }, + { message = "^test", group = "Fixed" }, + { message = "^fix", group = "Fixed" }, + { message = "^refactor", group = "Changed" }, + { message = "^style", skip = true }, + { message = "^chore: Release sdl3 version", skip = true }, + { message = "^chore: update CHANGELOG.md", skip = true }, + { message = "^chore\\(deps.*\\)", group = "Dependencies" }, + { message = "^chore|^ci", group = "Changed" }, + { message = "^revert", group = "Changed" }, + + # No conventional commit support + { message = "^[a|A]dd", group = "Added" }, + { message = "^[s|S]upport", group = "Added" }, + { message = "^[r|R]emove", group = "Removed" }, + { message = "^.*: add", group = "Added" }, + { message = "^.*: support", group = "Added" }, + { message = "^.*: remove", group = "Removed" }, + { message = "^.*: delete", group = "Removed" }, + { message = "^.*: fix", group = "Fixed" }, + { message = "^.*", group = "Changed" }, +] +# Exclude commits that are not matched by any commit parser. +filter_commits = false +# Order releases topologically instead of chronologically. +topo_order = false +# Order of commits in each group/release within the changelog. +# Allowed values: newest, oldest +sort_commits = "newest" From 551b286c0f17d8f95d9af554e493f09ccb5bc452 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 10:54:50 -0700 Subject: [PATCH 02/12] chore: update CHANGELOG.md (#234) Co-authored-by: changelog-updater --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4059b173..2de24895 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed -- Automate changelog generation +- Automate changelog generation ([#231](https://github.com/vhspace/sdl3-rs/pull/231)) ## [0.15.1] - 2025-09-14 From 0f6021a6e6b427f20bac2665e7f2d2dd429bb733 Mon Sep 17 00:00:00 2001 From: Rein Fernhout Date: Tue, 23 Sep 2025 21:28:39 +0200 Subject: [PATCH 03/12] feat: add draw_debug_text() (#233) --- src/sdl3/render.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/sdl3/render.rs b/src/sdl3/render.rs index d391b4f2..fb7bc63c 100644 --- a/src/sdl3/render.rs +++ b/src/sdl3/render.rs @@ -41,7 +41,7 @@ use libc::{c_double, c_int, c_void}; use pixels::PixelFormat; use std::convert::{Into, TryFrom, TryInto}; use std::error; -use std::ffi::CStr; +use std::ffi::{c_char, CStr, CString}; use std::fmt; #[cfg(not(feature = "unsafe_textures"))] use std::marker::PhantomData; @@ -1380,6 +1380,31 @@ impl Canvas { } } + /// Draw debug text to an SDL_Renderer. + /// Errors if drawing fails for any reason (e.g. driver failure) + #[doc(alias = "SDL_RenderDebugText")] + pub fn draw_debug_text>( + &mut self, + string: &str, + point: P, + ) -> Result<(), Error> { + let string = CString::new(string).unwrap(); + let point = point.into(); + let result = unsafe { + sys::render::SDL_RenderDebugText( + self.context.raw, + point.x, + point.y, + string.as_ptr() as *const c_char, + ) + }; + if !result { + Err(get_error()) + } else { + Ok(()) + } + } + /// Draws a series of connected lines on the current rendering target. /// Errors if drawing fails for any reason (e.g. driver failure) #[doc(alias = "SDL_RenderLines")] From ec36432930d7695b8cf291cafd4973d98933b6da Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:20:46 -0700 Subject: [PATCH 04/12] chore: update CHANGELOG.md (#235) Co-authored-by: changelog-updater --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2de24895..5373d4ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added +- Add draw_debug_text() ([#233](https://github.com/vhspace/sdl3-rs/pull/233)) + ### Changed - Automate changelog generation ([#231](https://github.com/vhspace/sdl3-rs/pull/231)) From 2a50f91d0190836b30f8196a798b688e119d55c6 Mon Sep 17 00:00:00 2001 From: Trangar Date: Fri, 3 Oct 2025 22:20:37 +0200 Subject: [PATCH 05/12] fix: Change acquire_swapchain_texture to return an Option (#240) --- src/sdl3/gpu/pass.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/sdl3/gpu/pass.rs b/src/sdl3/gpu/pass.rs index 1e216ca5..c7b5b69d 100644 --- a/src/sdl3/gpu/pass.rs +++ b/src/sdl3/gpu/pass.rs @@ -130,11 +130,24 @@ impl CommandBuffer { } } + /// Try to acquire the swapchain texture without waiting. This may return `None` if all the swapchains allocated by + /// your GPU driver are already in use. + /// + /// To guarantee there is a swapchain available, you can either use [`wait_and_acquire_swapchain_texture`], or + /// submit your command buffer with a fence: + /// + /// ```rs + /// # let sdl = sdl3::init()?; + /// # let device = Device::new(ShaderFormat::INVALID, true)?; + /// # let command_buffer = device.acquire_command_buffer()?; + /// let fence = command_buffer.submit_and_acquire_fence(&device)?; + /// device.wait_fences(true, &[fence])?; + /// ``` #[doc(alias = "SDL_AcquireGPUSwapchainTexture")] pub fn acquire_swapchain_texture<'a>( &'a mut self, w: &crate::video::Window, - ) -> Result, Error> { + ) -> Result>, Error> { let mut swapchain = std::ptr::null_mut(); let mut width = 0; let mut height = 0; @@ -148,7 +161,11 @@ impl CommandBuffer { ) }; if success { - Ok(Texture::new_sdl_managed(swapchain, width, height)) + if swapchain.is_null() { + Ok(None) + } else { + Ok(Some(Texture::new_sdl_managed(swapchain, width, height))) + } } else { Err(get_error()) } From 5349d0ad6040611c82784bc4ea3cd87d550bfd41 Mon Sep 17 00:00:00 2001 From: florianvazelle Date: Sun, 12 Oct 2025 23:02:39 +0200 Subject: [PATCH 06/12] ci: remove rust cache (#245) * ci: remove custom key for Swatinem/rust-cache action * ci: remove rust cache --- .github/workflows/checks.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 4b5f764c..2372e294 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -39,11 +39,6 @@ jobs: toolchain: stable components: clippy - - name: Cache cargo output - uses: Swatinem/rust-cache@v2 - with: - key: stable-${{ matrix.feature }} - - name: Fetch dependencies run: cargo +stable fetch --locked @@ -88,11 +83,6 @@ jobs: with: toolchain: stable - - name: Cache cargo output - uses: Swatinem/rust-cache@v2 - with: - key: stable-${{ matrix.os }}-${{ matrix.feature }} - - name: Fetch dependencies run: cargo +stable fetch --locked From 86416ee8766dd2cb8eba6dd8c172f25625fa2928 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 12 Oct 2025 14:13:44 -0700 Subject: [PATCH 07/12] chore: update CHANGELOG.md (#242) Co-authored-by: changelog-updater --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5373d4ea..8b86262b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add draw_debug_text() ([#233](https://github.com/vhspace/sdl3-rs/pull/233)) ### Changed +- Remove rust cache ([#245](https://github.com/vhspace/sdl3-rs/pull/245)) - Automate changelog generation ([#231](https://github.com/vhspace/sdl3-rs/pull/231)) +### Fixed +- Change acquire_swapchain_texture to return an Option ([#240](https://github.com/vhspace/sdl3-rs/pull/240)) + ## [0.15.1] - 2025-09-14 ### Added From 2451a4cb1d58006c5f24bd34c3608dabce1c7732 Mon Sep 17 00:00:00 2001 From: Mischa Spiegelmock Date: Thu, 16 Oct 2025 21:49:52 -0700 Subject: [PATCH 08/12] update deps --- Cargo.lock | 404 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 256 insertions(+), 148 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e8a59ae6..b36b1258 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -22,9 +22,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -37,37 +37,37 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", - "once_cell", - "windows-sys", + "once_cell_polyfill", + "windows-sys 0.60.2", ] [[package]] @@ -87,9 +87,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "bit-set" @@ -129,24 +129,24 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.9.3" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", @@ -161,18 +161,19 @@ checksum = "fdd7a427adc0135366d99db65b36dae9237130997e560ed61118041fb72be6e8" [[package]] name = "cc" -version = "1.2.22" +version = "1.2.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" +checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" dependencies = [ + "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -201,9 +202,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "core-foundation" @@ -243,9 +244,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" dependencies = [ "log", "regex", @@ -270,6 +271,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -385,13 +392,13 @@ dependencies = [ [[package]] name = "gpu-descriptor" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" +checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ "bitflags 2.9.4", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.15.5", ] [[package]] @@ -405,13 +412,19 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + [[package]] name = "heck" version = "0.5.0" @@ -426,12 +439,12 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.0", ] [[package]] @@ -442,9 +455,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "jiff" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" dependencies = [ "jiff-static", "log", @@ -455,9 +468,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" dependencies = [ "proc-macro2", "quote", @@ -472,9 +485,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ "once_cell", "wasm-bindgen", @@ -505,41 +518,40 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets", + "windows-link", ] [[package]] name = "litrs" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "malloc_buf" @@ -552,9 +564,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "metal" @@ -590,7 +602,7 @@ dependencies = [ "spirv", "strum", "termcolor", - "thiserror 2.0.12", + "thiserror 2.0.17", "unicode-xid", ] @@ -623,9 +635,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" dependencies = [ "objc2-encode", ] @@ -642,6 +654,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "ordered-float" version = "4.6.0" @@ -653,9 +671,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -663,15 +681,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-link", ] [[package]] @@ -704,9 +722,9 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" @@ -734,24 +752,24 @@ checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] [[package]] name = "profiling" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" +checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -800,18 +818,18 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags 2.9.4", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -821,9 +839,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -832,9 +850,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "renderdoc-sys" @@ -856,9 +874,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "scopeguard" @@ -905,15 +923,15 @@ dependencies = [ [[package]] name = "sdl3-src" -version = "3.2.22" +version = "3.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8447739fe8a492670e2f8c60bf821bb0f4260bd05019e4333ed483602a5cfe75" +checksum = "560203d4fd508d45068ceedf0a11e264665f2bc974f9b34919f8b7fabf860bfa" [[package]] name = "sdl3-sys" -version = "0.5.5+SDL3-3.2.22" +version = "0.5.7+SDL3-3.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488b4c68d9c0a450087a8b7c9dc6921483354127b0e60033d2d9b8f6a281331b" +checksum = "1208bd508b0e6c34d16878663b2a00674755db4a6a6e4e6c60863f7c2d160884" dependencies = [ "ash", "cmake", @@ -943,18 +961,27 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -978,9 +1005,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "spirv" @@ -1021,9 +1048,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -1050,11 +1077,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -1070,9 +1097,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -1081,9 +1108,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-width" @@ -1117,27 +1144,28 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" dependencies = [ "bumpalo", "log", @@ -1149,9 +1177,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" dependencies = [ "cfg-if", "js-sys", @@ -1162,9 +1190,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1172,9 +1200,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", @@ -1185,18 +1213,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" dependencies = [ "js-sys", "wasm-bindgen", @@ -1204,9 +1232,9 @@ dependencies = [ [[package]] name = "wgpu" -version = "24.0.3" +version = "24.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35904fb00ba2d2e0a4d002fcbbb6e1b89b574d272a50e5fc95f6e81cf281c245" +checksum = "6b0b3436f0729f6cdf2e6e9201f3d39dc95813fad61d826c1ed07918b4539353" dependencies = [ "arrayvec", "bitflags 2.9.4", @@ -1230,9 +1258,9 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "24.0.2" +version = "24.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c25545d479b47d3f0a8e373aceb2060b67c6eb841b24ac8c32348151c7a0c" +checksum = "7f0aa306497a238d169b9dc70659105b4a096859a34894544ca81719242e1499" dependencies = [ "arrayvec", "bit-vec", @@ -1249,7 +1277,7 @@ dependencies = [ "raw-window-handle", "rustc-hash", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.17", "wgpu-hal", "wgpu-types", ] @@ -1292,7 +1320,7 @@ dependencies = [ "renderdoc-sys", "rustc-hash", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.17", "wasm-bindgen", "web-sys", "wgpu-types", @@ -1314,11 +1342,11 @@ dependencies = [ [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -1328,7 +1356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ "windows-core", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1341,7 +1369,7 @@ dependencies = [ "windows-interface", "windows-result", "windows-strings", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1366,13 +1394,19 @@ dependencies = [ "syn", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-result" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1382,16 +1416,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ "windows-result", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] name = "windows-sys" -version = "0.59.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets", + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", ] [[package]] @@ -1400,14 +1443,31 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -1416,68 +1476,116 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "xml-rs" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", From aae07f9ba161e6a20e8c7e93abd801dfc8bfbe23 Mon Sep 17 00:00:00 2001 From: Mischa Spiegelmock Date: Thu, 16 Oct 2025 21:50:05 -0700 Subject: [PATCH 09/12] chore: Release sdl3 version 0.16.0 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b36b1258..1edad40e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -886,7 +886,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdl3" -version = "0.15.1" +version = "0.16.0" dependencies = [ "bitflags 2.9.4", "c_vec", diff --git a/Cargo.toml b/Cargo.toml index 24a31e69..bf3c4ad3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "sdl3" description = "Cross-platform multimedia" repository = "https://github.com/vhspace/sdl3-rs" documentation = "https://docs.rs/sdl3/latest/sdl3/" -version = "0.15.1" +version = "0.16.0" license = "MIT" authors = [ "Tony Aldridge ", From 2a51e79d5045805621f7eb358072de97dc36b6a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 21:51:37 -0700 Subject: [PATCH 10/12] chore: update CHANGELOG.md (#246) Co-authored-by: changelog-updater --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b86262b..ae57912a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.16.0] - 2025-10-17 ### Added - Add draw_debug_text() ([#233](https://github.com/vhspace/sdl3-rs/pull/233)) ### Changed +- Update deps - Remove rust cache ([#245](https://github.com/vhspace/sdl3-rs/pull/245)) - Automate changelog generation ([#231](https://github.com/vhspace/sdl3-rs/pull/231)) @@ -70,7 +71,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump bitflags from 2.9.0 to 2.9.1 ([#207](https://github.com/vhspace/sdl3-rs/pull/207)) - Bump actions/cache from 3 to 4 ([#208](https://github.com/vhspace/sdl3-rs/pull/208)) -[unreleased]: https://github.com/vhspace/sdl3-rs/compare/v0.15.1...HEAD +[0.16.0]: https://github.com/vhspace/sdl3-rs/compare/v0.15.1...v0.16.0 [0.15.1]: https://github.com/vhspace/sdl3-rs/compare/v0.14.42...v0.15.1 [0.14.42]: https://github.com/vhspace/sdl3-rs/compare/v0.14.41...v0.14.42 [0.14.41]: https://github.com/vhspace/sdl3-rs/compare/v0.14.40...v0.14.41 From c4951c60821c5960f8e7b5a2647328faa22bcfd4 Mon Sep 17 00:00:00 2001 From: Edgar Simo-Serra Date: Fri, 17 Oct 2025 13:52:43 +0900 Subject: [PATCH 11/12] Added EventSubsystem::set_event_enabled and EventSubsystem::event_enable. (#237) --- src/sdl3/event.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/sdl3/event.rs b/src/sdl3/event.rs index c2c7eb11..07e2521f 100644 --- a/src/sdl3/event.rs +++ b/src/sdl3/event.rs @@ -266,6 +266,16 @@ impl crate::EventSubsystem { ) -> EventWatch<'a, CB> { EventWatch::add(callback) } + + #[doc(alias = "SDL_SetEventEnabled")] + pub fn set_event_enabled(event_type: EventType, enabled: bool) { + unsafe { sys::events::SDL_SetEventEnabled(event_type.into(), enabled) }; + } + + #[doc(alias = "SDL_EventEnabled")] + pub fn event_enabled(event_type: EventType) -> bool { + unsafe { sys::events::SDL_EventEnabled(event_type.into()) } + } } /// Types of events that can be delivered. From 30b866581abe1d36a8f7ebadaf0190db1db3e2c5 Mon Sep 17 00:00:00 2001 From: Mischa Spiegelmock Date: Thu, 16 Oct 2025 21:54:11 -0700 Subject: [PATCH 12/12] chore: Release sdl3 version 0.16.1 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1edad40e..a49abc4f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -886,7 +886,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdl3" -version = "0.16.0" +version = "0.16.1" dependencies = [ "bitflags 2.9.4", "c_vec", diff --git a/Cargo.toml b/Cargo.toml index bf3c4ad3..1b70d45c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "sdl3" description = "Cross-platform multimedia" repository = "https://github.com/vhspace/sdl3-rs" documentation = "https://docs.rs/sdl3/latest/sdl3/" -version = "0.16.0" +version = "0.16.1" license = "MIT" authors = [ "Tony Aldridge ",