Releases: jeremyletang/rust-sfml
Releases · jeremyletang/rust-sfml
0.22.0
Added
- Added
is_rgb
method forTexture
,RenderWindow
, andRenderTexture
- Add
RcTexture::raw_texture
to get the underlyingTexture
of anRcTexture
- 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
andImage::pixel_at
are now safe, checked functions. Added unsafe unchecked variants.- Renamed
SetPixelError
toPixelAccessError
- 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
SFML 2.6 update
rust-sfml 0.21 requires SFML 2.6. It will not work with 2.5.
Added
- Added
RcFont
andRcText
for reference counted text (seeexamples/rc-resources.rs
) - pub const DEFAULT for
Vertex
is_smooth
andset_smooth
methods forFont
RenderWindow::recreate
method to recreate a window with new parameters
Changed
- Update
RcSprite
andRcTexture
documentation.
Fixed
- Missing
#include
s in CSFML - Too restrictive lifetime for Music
v0.20.0
Added
Default
impl forColor
(transparent)- Help on using
LD_LIBRARY_PATH
for finding SFML shared libraries on *nix. RcTexture
andRcSprite
for reference counted textures (seeexamples/rc-resources.rs
)
Changed
- Removed
Sprite::disable_texture
, due to being an unsound API - Methods that used to take
&Rect
now takeRect
by value listener::set_up_vector
now TakesVector3f
instead of&Vector3f
- Use
usize
instead ofu32
forCustomShapePoints
- Use
usize
instead ofu32
forShape
methods - Use
usize
instead ofu32
inCircleShape
andConvexShape
methods
Internal improvements
- Remove needless raw conversion methods for Rect
- Remove needless raw conversion methods for Vector2/Vector3
0.19.0
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
Added
- Examples for Vector3
- Examples for Vector2
- Examples for Rect
- Examples for RenderWindow
- Examples for Font
- Info about
SFML_INCLUDE_DIR
andSFML_LIBS_DIR
environment variables
Changed
window::clipboard::get_string()
now returnsString
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 forCursorType
v0.17.0
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 ofRenderTarget::draw_primitives
, which takes a slice of vertices. - Added
graphics::vertex_array_bounds
to replaceVertexArray::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 usebool
everywhere. - Once again, a bunch of other various (breaking) changes. Sorry.
v0.16.0
New features
- Implement VertexBuffer
- Add a few previously missing derives to a few types
- Add
system_handle
method toWindow
andRenderWindow
.
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 ofCamelCase
. For exampleKey::Equal
becomesKey::EQUAL
, because it's an associated const. - Remove a few API elements that are deprecated in SFML, like
Key::Return
. UseKey::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, notsystem
.- 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
v0.15.1 Bump version number to 0.15.1
SFML 2.5 compatibility
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
v0.14.0 Bump version to 0.14.0