Skip to content

Releases: jeremyletang/rust-sfml

0.22.0

19 Sep 15:13
Compare
Choose a tag to compare

Added

  • Added is_rgb method for Texture, RenderWindow, and RenderTexture
  • Add RcTexture::raw_texture to get the underlying Texture of an RcTexture
  • Add direction arrow cursors from SFML 2.6 to CursorType
  • Add Scancode API from SFML 2.6.
  • Add tip about environment variables to README

Changed

  • Image::set_pixel and Image::pixel_at are now safe, checked functions. Added unsafe unchecked variants.
  • Renamed SetPixelError to PixelAccessError
  • Rust requirement bumped to 1.81
  • Made Context::get_function a safe function

Fixed

  • Minor doc fixes, including typos
  • Fixed compilation error on Windows MinGW

SFML 2.6 compatibility

24 Jul 08:57
Compare
Choose a tag to compare

SFML 2.6 update

rust-sfml 0.21 requires SFML 2.6. It will not work with 2.5.

Added

  • Added RcFont and RcText for reference counted text (see examples/rc-resources.rs)
  • pub const DEFAULT for Vertex
  • is_smooth and set_smooth methods for Font
  • RenderWindow::recreate method to recreate a window with new parameters

Changed

  • Update RcSprite and RcTexture documentation.

Fixed

  • Missing #includes in CSFML
  • Too restrictive lifetime for Music

v0.20.0

21 Jan 18:32
Compare
Choose a tag to compare

Added

  • Default impl for Color (transparent)
  • Help on using LD_LIBRARY_PATH for finding SFML shared libraries on *nix.
  • RcTexture and RcSprite for reference counted textures (see examples/rc-resources.rs)

Changed

  • Removed Sprite::disable_texture, due to being an unsound API
  • Methods that used to take &Rect now take Rect by value
  • listener::set_up_vector now Takes Vector3f instead of &Vector3f
  • Use usize instead of u32 for CustomShapePoints
  • Use usize instead of u32 for Shape methods
  • Use usize instead of u32 in CircleShape and ConvexShape methods

Internal improvements

  • Remove needless raw conversion methods for Rect
  • Remove needless raw conversion methods for Vector2/Vector3

0.19.0

31 Oct 08:15
Compare
Choose a tag to compare

Added

  • Basic support for statically linking SFML

Fixed

  • Wrong doc comment for RenderTexture::new
  • Joystick axis was inacessible in the JoystickMoved event

Changed

  • joystick::Axis is now a proper enum

v0.18.0

20 Aug 18:05
Compare
Choose a tag to compare

Added

  • Examples for Vector3
  • Examples for Vector2
  • Examples for Rect
  • Examples for RenderWindow
  • Examples for Font
  • Info about SFML_INCLUDE_DIR and SFML_LIBS_DIR environment variables

Changed

  • window::clipboard::get_string() now returns String instead of &'static SfStr
  • Color now has public fields, removed the unnecessary getter/setter methods.

Fixed

  • Update requirements in the crate documentation
  • Make set_mouse_cursor unsafe, as the cursor must stay alive while in use.
  • Fix wrong Vector3::{AddAssign, SubAssign} impls
  • Add Hash impl for CursorType

v0.17.0

03 Aug 18:42
Compare
Choose a tag to compare

Changelog

  • Replaced CSFML dependency with a vendored CSFML fork, which is built by rust-sfml and linked statically.
    Now there is no dependency on CSFML anymore.
    However, a C++ compiler is now required to build-rust SFML, as we are building our own CSFML-like binding.
  • Added spritemark example to show off the rendering speed that can be achieved with vertex arrays.
  • Fixed unsoundness in InputStream
  • Added RectangleShape::from_rect
  • Removed VertexArray in favor of RenderTarget::draw_primitives, which takes a slice of vertices.
  • Added graphics::vertex_array_bounds to replace VertexArray::get_bounds
  • Enabled null pointer optimization to a bunch of types that are never null
  • Added Rust version of the SFML OpenGL example
  • Made Shader constructors only allow valid combinations of vertex/fragment/geometry
  • Made pong example more exciting. It speeds up as the game goes on.
  • Derived a bunch more traits like Hash for some types
  • Made a bunch of previously wrongly-safe functions unsafe
  • Added a bunch of conversion functions for conversion between different Vector2/Vector3 types
  • Added optional support for serde for a few types, like Rect
  • Removed SfBool completely. Now you can just use bool everywhere.
  • Once again, a bunch of other various (breaking) changes. Sorry.

v0.16.0

28 Mar 17:45
Compare
Choose a tag to compare

New features

  • Implement VertexBuffer
  • Add a few previously missing derives to a few types
  • Add system_handle method to Window and RenderWindow.

Soundness fixes

  • Add some thread safety checks for the window module. See #227.
  • CircleShape::set_radius now takes &mut self

API improvements

  • Add #[must_use] attribute to APIs that return things that should not be ignored.
  • Make a bunch of APIs const fn
  • Allow SfBox to be used in generic contexts, using the SfResource trait.

Refactorings/Breaking changes

  • Transition various enums that were previously transmuted to associated consts. This avoids unnecessary unsafe code and maps more cleanly to the underlying C API of CSFML. This means a bunch of names are now UPPER_CASE instead of CamelCase. For example Key::Equal becomes Key::EQUAL, because it's an associated const.
  • Remove a few API elements that are deprecated in SFML, like Key::Return. Use Key::ENTER instead.
  • Network module is removed entirely. It has been broken and unmaintained for a long time, and there are much better alternatives when using Rust, including the standard library.
  • SfBox now lives in the crate root, not system.
  • Due to the thread safety fixes, Window/RenderWindow can only be used on the main thread. They can't be accessed from different threads.
  • Various minor refactorings/improvements

Fix potential undefined behavior with opaque types

26 Oct 11:58
Compare
Choose a tag to compare
v0.15.1

Bump version number to 0.15.1

SFML 2.5 compatibility

19 Oct 21:28
Compare
Choose a tag to compare

This release brings SFML 2.5 compatibility, although not all new APIs are implemented.

There are also a few minor API improvements.

Minor breaking API changes, add missing SoundBufferRef::samples

07 Oct 09:07
Compare
Choose a tag to compare