diff --git a/changelog.md b/changelog.md index e83bb2c1..d53d2ea7 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,33 @@ when upgrading from a version of rust-sdl2 to another. ### v0.30 +[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_target`. +* 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)) @@ -24,7 +51,7 @@ sdl2::hint::get_video_minimize_on_focus_lost() -> bool; [PR #629](https://github.com/AngryLawyer/rust-sdl2/pull/629) -* Breaking: Changed Color to be a struct rather than an enum. +* **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.