Changelog
SFML 2.5.0
Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.5.0
General
- Replaced FindSFML.cmake with SFMLConfig.cmake (#1335)
- Markdown'd and updated readme, changelog, contributing and license files (#1196, #1368, #1317)
- Improve packaging support (#1173)
- Added Tagfile generation and search (#1327)
- Added CMake variables to select the modules to be built (#798, #800)
- Do not install extlibs if
SFML_USE_SYSTEM_DEPS
is true (#1236, #1237) - Fixed various type conversion/comparison warnings (#1325)
- [Android] Increased minimum API version to 14 (#1362)
- [Android] Removed custom toolchain and added support for the newest NDK version and Gradle (#1350, #1393)
- [iOS] Updated the binary libs from exlibs/libs-ios (#1207, #1209)
- [iOS] Use a CMake toolchain file for iOS build (#1268, #1269)
- [iOS] Install extlibs if needed (#1348)
- [iOS] Drop 32 bit support (#1374)
- [iOS] Force correct iOS architecture for cmake (#1373, #1377)
- [iOS] Added iOS example (#1378)
- [macOS] Fixed launch of cocoa examples (#1334)
- [macOS] Improved application signing process (#1020, #1036, #1194)
- [macOS] Improved CMake script (#1215, #1371)
- [macOS] Use
-stdlib=libc++
(#1361) - [OpenBSD] Added support for OpenBSD (#1330)
System
Bugfixes
- Added protected destructor to
sf::NonCopyable
to prevent possible resource leaks (#1125, #1161) - Fixed crash when
sf::Clock
is constructed in a global scope (#1258)
Window
Features
- Implemented Cursor API (#269, #784, #827)
- Implemented Clipboard API (#715, #1204, #1221)
- Renamed a few key codes (#1395)
- Added joystick example (#1363)
- [Windows] Added support for interfacing with joysticks via DirectInput when it is available (#1251, #1326)
- [Windows] Fix discrete GPU preference symbols being exported from the wrong place (#1192, #1406)
Bugfixes
- [Android] Return correct key code for delete/backspace (#1309, #1362)
- [iOS] Don't need to find vorbisfile or vorbisenc (#1347)
- [Linux] Fixed
sf::Window::getPosition()
returning incorrect position because of differences in window managers (#1228, #1266) - [Linux] Fix X11 key repeat handling not filtering out events from other windows (#1223, #1230, #1291)
- [Linux] Restore fullscreen of a non-visible window (#1339)
- [macOS] Fixed window menu not working (#1091, #1180, #1193)
- [macOS] Fixed crash with application messing hardware detection e.g. TeamViewer (#1323)
- [macOS] Added support for (some) Hat/POV axis (#1248)
- [Windows] Prevent uninitialized read by zeroing memory (#1264)
- [Windows] Fixed modifier keys handling (#1357)
Graphics
Features
- Implemented additional line spacing and letter spacing in
sf::Text
(#928, #1366) - Added
sf::VertexBuffer
class (#1308) - Added GPU local texture copying support, allowing performance optimizations and texture swapping (#1119, #1319, #1320)
- Optimize performance by skipping
glTexCoordPointer()
call if not needed (#1015) - Generate shape outline vertices only if necessary (#925, #1356)
- Removed dependency to libjpeg, stb_image_write now supports writing JPEG files (#1278, #1279)
- Enable comparing
sf::Transform
and optimize resetting OpenGL back to the identity matrix (#1298) - Added missing
setActive()
virtual method tosf::RenderTarget
(#1157) - Updated stb_image to v2.16 and stb_image_write to v1.07 (#1270)
- Added
sf::RenderTexture
stencil and multisampling support (#1274, #1285) - Added example demonstrating
sf::VertexBuffer
,sf::Shader
andsf::Thread
usage (#1352) - Optimized
sf::RenderTexture
performance (#1379)
Bugfixes
- Properly free memory in
sf::Font::cleanup()
(#1119) - Fixed memory leak in
sf::Font
(#1216) - Fix OpenGL texture coordinate pointer not being updated correctly under certain conditions (#1297)
- Fix for broken text when the font is reloaded (#1345)
- Fix memory leak in
sf::Text
(#1233, #1360) - Fixed strict aliasing punning warning when generating the key of a glyph in Font.cpp (#1187, #1396)
- Fixed OpenGL version string being parsed incorrectly on some platforms (#1249, #1390)
- [macOS] Worked around render target bug (#1132, #1342)
- [Windows] Replaced time-based joystick poll with a hardware event handler (#1179, #1195, #1198, #1199, #1421)
Audio
Features
- Added loop point support to
sf::Music
(#177, #629) - Added support for the extensible PCM wave file format (#1296)
- [iOS] Enable audio module (#1338)
Bugfixes
- Fixed inconsistent seek behavior in
sf::SoundStream
(#1118) - Fixed stack overflow in
sf::SoundStream::fillAndPushBuffer()
(#1154) - Fixed seeking quirks in the FLAC reader (#966, #1162)
- Allow polymorphism with
sf::SoundSource
(#1185) - Fixed WAV file writer writing wrong header values (#1280, #1281)
- Small bugfix to argument of
alcCaptureOpenDevice()
(#1304, #1305) - [iOS] Find OpenAL correctly (#1263, #1376)
- [Windows] Updated OpenAL Soft to 1.18.1 fixing crashes (#1247, #1260)
Network
Features
Bugfixes