SFML 2.5.0 Released

SFML have just release SFML 2.5.0.  SFML, or Simple & Fast Multimedia Library, is a cross platform C++ powered 2D game framework providing low level game related functionality such as 2D graphics, audio, networking and window creation code.  If you are interested in learning to use SFML be sure to check out our SFML tutorial series available here.  The 2.5.0 release includes a new cursor API, new clipboard API, a new VertexBuffer class, loop point support in the Music class.  Of course there were a ton more minor changes and fixes in this release.

Complete details from the release notes:

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 to sf::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 and sf::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
  • Add append/overwrite parameter to Ftp::upload (#1072, #1399)
Bugfixes
  • Fixed wrong condition for building network support (#1253)
  • Changed TCP listen backlog from 0 to SOMAXCONN (#1369, #1407)
  • Fixed socket reuse not conforming to documentation (#1346, #1408)

GameDev News


Scroll to Top