1# Changelog 2 3## SFML 2.5.1 4 5Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.5.1 6 7### General 8 9 * Various CMake fixes (#1414, #1416, #1436, #1439, #1467, #1470) 10 * Fixed the installation of pkg-config files (#1466) 11 * Fixed two conversion warnings (#1454) 12 * [Android] Fixes all symbols in sfml-main are hidden (#1457, #1460) 13 * [Android] Fixed some `#define` flag problem (#1458) 14 * [Android] Fix deadlock in main cleanup (#1265) 15 * [iOS] Modernized toolchain file (#1411) 16 * [iOS] Check that `<SFML/Main.hpp>` is used (#1412) 17 * [macOS] Add `-ObjC` flag to fix static linking on macOS (#1485) 18 19### Window 20 21**Bugfixes** 22 23 * [iOS] Use default supported rotations when none are specified (#1417) 24 * [iOS] Fixed autocomplete window overlaps keyboard (#1473, #1482) 25 * [Linux] Fixed dual monitor issue (#1226, #1238) 26 * [Linux] Fixed issue where fullscreen window didn't go over task bars on top and left on in Ubuntu (#1224) 27 * [Linux] Fixed the Unix clipboard implementation causing an abort due to internal data races in Xlib (#1437) 28 * [macOS] Added additional system cursors (#1401, #1413, #1425) 29 * [Windows] Fixed swapped colors for custom cursors (#1464, #1465, #1491) 30 31### Graphics 32 33**Bugfixes** 34 35 * Fixed a bug in which a `sf::RenderTexture` would not be re-activated after being re-created (#1438) 36 * Fixed `sf::RenderTextureImplFBO`'s destructor incorrectly triggering deletion of other `sf::RenderTextureImplFBO`'s active FBOs (#1440) 37 * Fix `sf::RenderWindow::setActive` incorrectly trying to unbind an FBO during deactivation (#1442) 38 * Fixed `sf::RenderTexture::display()` dereferencing a NULL pointer when being called before `sf::RenderTexture::create()` (#1446) 39 * Fixed bug in `sf::Text` when applying an outline color/thickness (#1176) 40 * Squash duplicated `sf::Font` glyphs to single chars (#1461) 41 * Fixed two issues with glyph sub-pixel positioning (#1452) 42 * Reduced context locking & unlocking while creating textures (#1459) 43 * Fixed the error message when the wrong bitmap font size is selected (#1456, #1474, #1492) 44 45### Audio 46 47**Bugfixes** 48 49 * Fixed performance issue with reading WAV files (#1450) 50 51## SFML 2.5.0 52 53Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.5.0 54 55### General 56 57 * Replaced FindSFML.cmake with SFMLConfig.cmake (#1335) 58 * Markdown'd and updated readme, changelog, contributing and license files (#1196, #1368, #1317) 59 * Improve packaging support (#1173) 60 * Added Tagfile generation and search (#1327) 61 * Added CMake variables to select the modules to be built (#798, #800) 62 * Do not install extlibs if `SFML_USE_SYSTEM_DEPS` is true (#1236, #1237) 63 * Fixed various type conversion/comparison warnings (#1325) 64 * [Android] Increased minimum API version to 14 (#1362) 65 * [Android] Removed custom toolchain and added support for the newest NDK version and Gradle (#1350, #1393) 66 * [iOS] Updated the binary libs from exlibs/libs-ios (#1207, #1209) 67 * [iOS] Use a CMake toolchain file for iOS build (#1268, #1269) 68 * [iOS] Install extlibs if needed (#1348) 69 * [iOS] Drop 32 bit support (#1374) 70 * [iOS] Force correct iOS architecture for cmake (#1373, #1377) 71 * [iOS] Added iOS example (#1378) 72 * [macOS] Fixed launch of cocoa examples (#1334) 73 * [macOS] Improved application signing process (#1020, #1036, #1194) 74 * [macOS] Improved CMake script (#1215, #1371) 75 * [macOS] Use `-stdlib=libc++` (#1361) 76 * [OpenBSD] Added support for OpenBSD (#1330) 77 78### System 79 80**Bugfixes** 81 82 * Added protected destructor to `sf::NonCopyable` to prevent possible resource leaks (#1125, #1161) 83 * Fixed crash when `sf::Clock` is constructed in a global scope (#1258) 84 85### Window 86 87**Features** 88 89 * Implemented Cursor API (#269, #784, #827) 90 * Implemented Clipboard API (#715, #1204, #1221) 91 * Renamed a few key codes (#1395) 92 * Added joystick example (#1363) 93 * [Windows] Added support for interfacing with joysticks via DirectInput when it is available (#1251, #1326) 94 * [Windows] Fix discrete GPU preference symbols being exported from the wrong place (#1192, #1406) 95 96**Bugfixes** 97 98 * [Android] Return correct key code for delete/backspace (#1309, #1362) 99 * [iOS] Don't need to find vorbisfile or vorbisenc (#1347) 100 * [Linux] Fixed `sf::Window::getPosition()` returning incorrect position because of differences in window managers (#1228, #1266) 101 * [Linux] Fix X11 key repeat handling not filtering out events from other windows (#1223, #1230, #1291) 102 * [Linux] Restore fullscreen of a non-visible window (#1339) 103 * [macOS] Fixed window menu not working (#1091, #1180, #1193) 104 * [macOS] Fixed crash with application messing hardware detection e.g. TeamViewer (#1323) 105 * [macOS] Added support for (some) Hat/POV axis (#1248) 106 * [Windows] Prevent uninitialized read by zeroing memory (#1264) 107 * [Windows] Fixed modifier keys handling (#1357) 108 109### Graphics 110 111**Features** 112 113 * Implemented additional line spacing and letter spacing in `sf::Text` (#928, #1366) 114 * Added `sf::VertexBuffer` class (#1308) 115 * Added GPU local texture copying support, allowing performance optimizations and texture swapping (#1119, #1319, #1320) 116 * Optimize performance by skipping `glTexCoordPointer()` call if not needed (#1015) 117 * Generate shape outline vertices only if necessary (#925, #1356) 118 * Removed dependency to libjpeg, stb_image_write now supports writing JPEG files (#1278, #1279) 119 * Enable comparing `sf::Transform` and optimize resetting OpenGL back to the identity matrix (#1298) 120 * Added missing `setActive()` virtual method to `sf::RenderTarget` (#1157) 121 * Updated stb_image to v2.16 and stb_image_write to v1.07 (#1270) 122 * Added `sf::RenderTexture` stencil and multisampling support (#1274, #1285) 123 * Added example demonstrating `sf::VertexBuffer`, `sf::Shader` and `sf::Thread` usage (#1352) 124 * Optimized `sf::RenderTexture` performance (#1379) 125 126**Bugfixes** 127 128 * Properly free memory in `sf::Font::cleanup()` (#1119) 129 * Fixed memory leak in `sf::Font` (#1216) 130 * Fix OpenGL texture coordinate pointer not being updated correctly under certain conditions (#1297) 131 * Fix for broken text when the font is reloaded (#1345) 132 * Fix memory leak in `sf::Text` (#1233, #1360) 133 * Fixed strict aliasing punning warning when generating the key of a glyph in Font.cpp (#1187, #1396) 134 * Fixed OpenGL version string being parsed incorrectly on some platforms (#1249, #1390) 135 * [macOS] Worked around render target bug (#1132, #1342) 136 * [Windows] Replaced time-based joystick poll with a hardware event handler (#1179, #1195, #1198, #1199, #1421) 137 138### Audio 139 140**Features** 141 142 * Added loop point support to `sf::Music` (#177, #629) 143 * Added support for the extensible PCM wave file format (#1296) 144 * [iOS] Enable audio module (#1338) 145 146**Bugfixes** 147 148 * Fixed inconsistent seek behavior in `sf::SoundStream` (#1118) 149 * Fixed stack overflow in `sf::SoundStream::fillAndPushBuffer()` (#1154) 150 * Fixed seeking quirks in the FLAC reader (#966, #1162) 151 * Allow polymorphism with `sf::SoundSource` (#1185) 152 * Fixed WAV file writer writing wrong header values (#1280, #1281) 153 * Small bugfix to argument of `alcCaptureOpenDevice()` (#1304, #1305) 154 * [iOS] Find OpenAL correctly (#1263, #1376) 155 * [Windows] Updated OpenAL Soft to 1.18.1 fixing crashes (#1247, #1260) 156 157### Network 158 159**Features** 160 161 * Add append/overwrite parameter to Ftp::upload (#1072, #1399) 162 163**Bugfixes** 164 165 * Fixed wrong condition for building network support (#1253) 166 * Changed TCP listen backlog from 0 to SOMAXCONN (#1369, #1407) 167 * Fixed socket reuse not conforming to documentation (#1346, #1408) 168 169## SFML 2.4.2 170 171Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.4.2 172 173### System 174 175**Bugfixes** 176 177 * [Windows] Removed thread affinity changes in sf::Clock (#1107) 178 179### Window 180 181**Bugfixes** 182 183 * Fixed bug where TransientContextLock would hang (#1165, #1172) 184 * [Linux] Fixed GLX extensions being loaded too late (#1183) 185 * [Linux] Fix wrong types passed to XChangeProperty (#1168, #1171) 186 * [Windows] Make context disabling via wglMakeCurrent more tolerant of broken drivers (#1186) 187 188### Graphics 189 190**Bugfixes** 191 192 * Optimized sf::Image::create and made it more exception safe (#1166) 193 194## SFML 2.4.1 195 196Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.4.1 197 198### General 199 200 * [kFreeBSD] Define SFML_OS_FREEBSD when compiling for kFreeBSD (#1129) 201 * [Windows] Added some simple messaging when trying to build under Cygwin (#1153) 202 203### Window 204 205**Bugfixes** 206 207 * Fixed stack overflow on GlContext creation with multiple threads (#989, #1002) 208 * Adjusted mouse cursor grab documentation (#1133) 209 * [iOS] Fixed orientation change not rescaling window size properly (#1049, #1050) 210 * [Linux] Fixed fullscreen issue (#921, #1138) 211 * [Linux] Switched from XCB back to Xlib for windowing (#1138) 212 * [Linux] Fixed window icon not showing up on some distros (#1087, #1088) 213 * [Linux] Fixed an issue where GNOME flags window unresponsive (#1089, #1138) 214 * [Linux] Fixed leak of XVisualInfo objects during GlxContext creation (#1135) 215 * [Linux] Fixed possible hang when setting visibility if external window sources (#1136) 216 * [macOS] Fixed inconsistency between doc and impl on macOS for the grab feature (#1133, #1148, #1150) 217 * [Windows] Fixed context memory leaks (#1143, #1002) 218 219### Graphics 220 221**Bugfixes** 222 223 * Adjusted uniform error message (#1131) 224 * Clarify documentation on Rect::contains function bounds (#1151) 225 226### Network 227 228**Bugfixes** 229 230 * Fixed a typo in comment for void unbind() (#1121) 231 232## SFML 2.4.0 233 234Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.4.0 235 236### General 237 238 * Added deprecation macro (#969) 239 * Fixed issues reported by Coverity Scan static analysis (#1064) 240 * Fixed some initialization issues reported by Cppcheck (#1008) 241 * Changed comment chars in FindSFML.cmake to # (#1090) 242 * Fixed some typos (#1098, #993, #1099, #956, #963, #979) 243 * Updated/fixed string comparisons in Config.cmake (#1102) 244 * Added the missing -s postfix for the RelWithDebInfo config (#1014) 245 * [Android] Fixed current Android compilation issues (#1116, #1111, #1079) 246 * [macOS] Update Xcode template material (#976, #968) 247 * [Windows] Added support for VS 2015 (#972) 248 * [Windows] Create and install PDB debug symbols alongside binaries (#1037) 249 250### Deprecated API 251 252 * sf::RenderWindow::capture(): Use a sf::Texture and its sf::Texture::update(const Window&) function and copy its contents into an sf::Image instead. 253 * sf::Shader::setParameter(): Use setUniform() instead. 254 * sf::Text::getColor(): There is now fill and outline colors instead of a single global color. Use getFillColor() or getOutlineColor() instead. 255 * sf::Text::setColor(): There is now fill and outline colors instead of a single global color. Use setFillColor() or setOutlineColor() instead. 256 * sf::LinesStrip: Use LineStrip instead. 257 * sf::TrianglesFan: Use TriangleFan instead. 258 * sf::TrianglesStrip: Use TriangleStrip instead. 259 260### System 261 262**Features** 263 264 * [Android] Added sf::getNativeActivity() (#1005, #680) 265 266**Bugfixes** 267 268 * Added missing <iterator> include in String.hpp (#1069, #1068) 269 * Fixed encoding of UTF-16 (#997) 270 * [Android] Fixed crash when trying to load a non-existing font file (#1058) 271 272### Window 273 274**Features** 275 276 * Added ability to grab cursor (#614, #394, #1107) 277 * Added Multi-GPU preference (#869, #867) 278 * Added support for sRGB capable framebuffers (#981, #175) 279 * [Linux, Windows] Improved OpenGL context creation (#884) 280 * [Linux, Windows] Added support for pbuffers on Windows and Unix (#885, #434) 281 282**Bugfixes** 283 284 * Updated platform-specific handle documentation (#961) 285 * [Android] Accept touch events from "multiple" devices (#954, #953) 286 * [Android] Copy the selected EGL context's settings to SFML (#1039) 287 * [Linux] Fixed modifiers causing sf::Keyboard::Unknown being returned (#1022, #1012) 288 * [macOS] Improved memory management on macOS (#962, #790) 289 * [macOS] Fixed crash when resizing a window to a zero-height/width size (#986, #984) 290 * [macOS] Use the mouse button constant instead of 0 to avoid a compiler error on macOS (#1035) 291 * [macOS] macOS improvement: warnings + bugfix + refactoring, the lot! (#1042) 292 293### Graphics 294 295**Features** 296 297 * Added support for outlined text (#840) 298 * Add support for geometry shaders (#886, #428) 299 * Feature/blend mode reverse subtract (#945, #944) 300 * Implemented support for mipmap generation (#973, #498, #123) 301 * Added new API to set shader uniforms (#983, #538) 302 * Rewrite RenderWindow::capture (#1001) 303 304**Bugfixes** 305 306 * Exporting some Glsl utility functions due to linking issues (#1044, #1046) 307 * Fixed missing initialisation of Font::m_stroker (#1059) 308 * Changed primitive types to be grammatically correct (#1095, #939) 309 310### Audio 311 312**Features** 313 314 * Implemented stereo audio recording (#1010) 315 316**Bugfixes** 317 318 * Added an assignment operator to SoundSource (#864) 319 * [macOS] Updates OpenAL-soft for macOS to version 1.17.2 (#1057, #900, #1000) 320 * Fixed a bug where vorbis can't handle large buffers (#1067) 321 * Added support for 24-bit .wav files (#958, #955) 322 * Fixed threading issue in sf::SoundRecorder (#1011) 323 * Made WAV file reader no longer assume that data chunk goes till end of file to prevent reading trailing metadata as samples (#1018) 324 * Fixed seeking in multi channel FLAC files (#1041, #1040) 325 326### Network 327 328**Features** 329 330 * Added optional argument on which address to bind (socket). (#850, #678) 331 332**Bugfixes** 333 334 * Fixed FTP directory listing blocking forever (#1086, #1025) 335 336## SFML 2.3.2 337 338Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.3.2 339 340### General 341 342 * Fixed an issue where FindSFML.cmake couldn't find older versions of SFML (#903) 343 * Robust alCheck and glCheck macros (#917) 344 * Fixed FindSFML.cmake to use the uppercase FLAC name (#923) 345 * Added a CONTRIBUTING file so GitHub shows a message when creating a new issue (#932) 346 347### Window 348 349**Bugfixes** 350 351 * [Linux] Fixed an issue where the keypad's key weren't being detected (#910) 352 * [Linux] Revert to Xlib event handling (#934) 353 * [Linux] Fixed `XK_*` inconsistency in InpuImpl.cpp (#947) 354 * [Linux] Fix `_NET_WM_PING` messages not being replied to properly (#947) 355 356### Graphics 357 358**Bugfixes** 359 360 * Fixed clear bug on RenderTextures (#915) 361 * Fixed image file extension detection (#929, #930, #931) 362 * Secure function against random data return (#935, #942) 363 364## SFML 2.3.1 365 366Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.3.1 367 368### Window 369 370**Bugfixes** 371 372 * [Android] Make sure a window still exists before trying to access its dimensions (#854) 373 * [Android] Added Android API level checks (#856) 374 * [Android] Updated the JNI/event handling code (#906) 375 * [Linux] Resized events are only spawned when the window size actually changes (#878, #893) 376 * [Linux] Whitelisted X SHAPE events (#879, #883) 377 * [Linux] Remap Unix keyboard when user changes layout (#895, #897) 378 * [Linux] Fix undefined behavior in ewmhSupported() (#892, #901) 379 380### Graphics 381 382**Bugfixes** 383 384 * Added support for GL_EXT_texture_edge_clamp for systems that don't expose GL_SGIS_texture_edge_clamp (#880, #882) 385 386### Audio 387 388**Bugfixes** 389 390 * [Android] Fixed audio files not loading (and possibly crashing) (#855, #887) 391 392## SFML 2.3 393 394Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.3 395 396### General 397 398 * Examples only link against sfml-main in release mode (#610, #766) 399 * Replaced unsigned int with std::size_t for array indices and sizes (#739) 400 * Fixed some issues with the Doxygen documentation (#750) 401 * Added support for EditorConfig (#751) 402 * Hide success message for CMake in quiet mode (#753) 403 * Improved documentation for statuses with sf::Ftp (#763) 404 * Moved stb_image into the extlibs directory (#795) 405 * Changed the SOVERSION to major.minor (#812) 406 * Fixed warnings about switch-statements (#863) 407 * Added missing includes in the general headers (#851) 408 * [Android] Updated toolchain file and dependencies (#791) 409 * [Linux] Fixed missing pthread dependency (#794) 410 * [macOS] Relaxed CMake installation rules regarding framework dependencies (#767) 411 412### Deprecated API 413 414 * sf::Event::MouseWheelEvent: This event is deprecated and potentially inaccurate. Use MouseWheelScrollEvent instead. 415 416### Window 417 418**Features** 419 420 * Added new events for handling high-precision scrolling (#95, #810, #837) 421 * Switched from Xlib to XCB (#200, #319, #694, #780, #813, #825) 422 * Added support for OpenGL 3 core context creation (#654, #779) 423 424**Bugfixes** 425 426 * Fixed glXSwapIntervalSGI being broken for some driver implementations (#727, #779) 427 * Fixed simultaneous context operations causing crashes on some AMD hardware (#778, #779) 428 * Fixed joystick identification (#809, #811) 429 * [iOS] Fixed various issues including stencil bits, device orientation and retina support (#748) 430 * [iOS] Fixed inconsistency between sf::Touch::getPosition and touch events (#875) 431 * [Linux] Fixed Alt+F4 not getting triggered in window mode (#274) 432 * [Linux] Fixed Unix joystick stuff (#838) 433 * [macOS] Fixed typo in JoystickImpl.cpp to prevent a crash (#762, #765) 434 * [macOS] Fixed an issue in InputImpl::getSFOpenGLViewFromSFMLWindow (#782, #792) 435 436### Graphics 437 438**Features** 439 440 * Replaced GLEW with loader generated by glLoadGen (#779) 441 * Added a new constructor to sf::Color that takes an sf::Uint32 (#722) 442 * Updated stb_image to v2.02 (#777) 443 * Updated FreeType to v2.5.5 (#799, #804) 444 * Added checks for software OpenGL (#870) 445 446**Bugfixes** 447 448 * Fixed GL_ARB_compatibility not being detected (#859) 449 * Fixed pixel format selection (#862) 450 * Bumped back the OpenGL version requirement to 1.1 (#858) 451 452### Audio 453 454**Features** 455 456 * Dropped libsndfile and started using Vorbis, FLAC and OGG directly (#604, #757) 457 * Added a FLAC file to the sound example (#815) 458 459**Bugfixes** 460 461 * Fixed access violation error in the destructor of sf::AudioDevice (#30, #602) 462 * [macOS] Fixed threading issue with sf::SoundStream and OpenAL (#541, #831) 463 464### Network 465 466**Bugfixes** 467 468 * Fixed sf::TcpSocket not handling partial sends properly (#749, #796) 469 470## SFML 2.2 471 472Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.2 473 474### General 475 476 * Support for iOS and Android platform (#410, #440) 477 * Various documentation corrections (#438, #496, #497, #714) 478 * Fixed support for compilers on Debian FreeBSD (#380, #578) 479 * Added support for Visual Studio 2013 and proper support for the TDM builds (#482) 480 * Fixed CMake problems related to FindSFML and cached variables (#637, #684) 481 * Switched and enforced LF line endings (#708, #712) 482 * Updated OpenAL to version 1.15.1 (d077210) 483 * Made compiler and OS variable names much clearer in CMake files (9b0ed30) 484 * Re-enabled RPATH feature (e157e7a) 485 * Slight adjustments to the examples (#737) 486 * [FreeBSD] Various configuration fixes (#577, #578) 487 * [Linux] Updated FindSFML.cmake to add UDev to SFML's dependencies (#728, #729, #734, #736) 488 * [macOS] Fixed incorrect symlink in freetype.framework (#519) 489 * [macOS] CMake module for correct dependencies (#548) 490 * [macOS] Fixed SFML target for Xcode (#595, #596) 491 * [macOS] Updated implementation, mainly reverting to non-ARC (#601) 492 * [macOS] Fixed memory leaks and dead store (#615) 493 * [macOS] Improved event handling and performance (#617) 494 * [macOS] Reduced memory usage (#672, #698) 495 * [macOS] macOS 10.10 support (#691, #699) 496 * [macOS] Improve flexibility of dependencies' locations (#713) 497 * [Windows] Removed the hack that copied external libraries into SFML static libraries (dbf01a7) 498 499### System 500 501**Features** 502 503 * Added substring and replace functions to sf::String (#21, #355) 504 * Added toUtfX to sf::String (#501) 505 * Added fromUtfX functions to set the internal data to a string by converting from another string in a fixed encoding (#196) 506 * Added modulo operator for sf::Time (#429, #430) 507 * Added division operator for sf::Time (#453) 508 509**Bugfixes** 510 511 * Ensured a high resolution for sf::sleep (#439, #475) 512 * [Windows] Fixed stack unalignment by two internal functions (#412) 513 514### Window 515 516**Features** 517 518 * Added window methods to request and to check focus (#518, #525, #613, #723, #735) 519 * Provide name, manufacturer ID and product ID via sf::Joystick (#152, #528) 520 * [FreeBSD] Joystick support (#477) 521 * [macOS] Improved integration with menus and dock actions (#11) 522 * [macOS] Support for OpenGL 3.2 (#84) 523 * [macOS] Improved fullscreen support (#343) 524 * [macOS] Added support for retina displays (#353, #388) 525 * [Windows] Removed support for Windows 9x (#469) 526 * [Windows] Fixed typo in Windows keyboard implementation (#516) 527 528**Bugfixes** 529 530 * sf::Window::create() now also resets framerate limit (#371) 531 * Fixed OpenGL context leak (#635, #705) 532 * Fixed various joystick problems (memory leak, accelerometer detected, code refactoring) (#660, #686, #742, #743) 533 * Optimized sf::Window::waitEvent a bit, no sleep if events are available at first try (ff555d6) 534 * [Linux] Output error message when XOpenDisplay() fails (#508, #616) 535 * [Linux] Resize window with setSize when sf::Style::Resize is set (#466) 536 * [Linux] Fixed broken key repeat on window recreation (#564, #567) 537 * [macOS] Fixed KeyReleased not being fired in fullscreen mode (#465) 538 * [macOS] Fixed an issue where disconnecting the keyboard would cause a crash (#467) 539 * [macOS] Fixed unexpected resizing behavior (#468) 540 * [macOS] Improved resizing windows (#474) 541 * [macOS] Fixed memory leak with sf::Window::create() (#484) 542 * [macOS] Fixed menu shortcuts in fullscreen on macOS (#527) 543 * [macOS] Improved cursor hiding (#703) 544 * [macOS] Fixed right click not detected with trackpads (#716, #730) 545 * [Windows] Fixed joystick POV values (ef1d29b) 546 * [Windows] Fixed Unicode inconsistency (#635) 547 * [Windows] Fixed Alt+F4 and mouse clicks issues (#437, #457) 548 * [Windows] Send MouseButtonReleased event when the mouse is outside of the window (#455, #457) 549 * [Windows] Fixed sf::Joystick wrong registry usage (#701, #702, #706) 550 551### Graphics 552 553**Features** 554 555 * Provide more information about the loaded font in sf::Font (#164) 556 * Implemented a more flexible blending system (#298) 557 * Added strikethrough text style (#243, #362, #682) 558 * Slight optimization for sf::Text::setString (#413) 559 * Added subtraction operator for sf::Color (#114, #145) 560 * Optimized sf::Image::flipVertically/flipHorizontally (#555) 561 * Changed sf::Font measurements from int to float to allow better underline drawing (#693) 562 563**Bugfixes** 564 565 * Improved text quality for small and pixelated fonts (#228) 566 * Yet another fix for Intel GPUs with sf::RenderTexture (#418) 567 * Removed VTab since it causes issues and doesn't have a use nowadays (#442, #445, #460, #588) 568 * Fixed broken BDF and PCF font formats (#448) 569 * Fixed compilation issue with newer versions of GCC for sf::Rect (#458) 570 * Fixed resetGLStates() not explicitly setting the default polygon mode (#480) 571 * Fixed division-by-zero in sf::RectangleShape (#499) 572 * Fixed potential memory leak in sf::Font (#509) 573 * Updated glext and removed glxext (#511, #583) 574 * Make sure texture unit 0 is active when resetting sf::RenderTarget states (#523, #591) 575 * Fixed texture rect computation in fonts (#669) 576 * Improved rendering of underlined text (#593) 577 * Avoided repeated output of error messages (#566) 578 * Fixed text rendered with vertical offset on ascent and font size mismatch (#576) 579 * Fixed rounding problem for viewports (#598) 580 * Fixed sf::Shader::isAvailable() possibly breaking context management (#211, #603, #608, #603) 581 * Fixed sf::Texture::getMaximumSize() possibly breaking context management (#666) 582 * Fixed various sf::Text rendering issues (#692, #699) 583 * The texture matrix is now reset in sf::Texture::bind(NULL) (7c4b058) 584 * [Windows] Fixed DPI scaling causing strange window behavior (#679, #681, #688) 585 586### Audio 587 588**Features** 589 590 * Added support for selecting the audio capture device (#220, #470) 591 * Make sf::SoundRecorder processing frequency configurable (#333) 592 * Added up vector to sf::Listener (#545) 593 594**Bugfixes** 595 596 * Prevented sf::SoundStream::setPlayingOffset() from restarting playing even when paused (#203, #592) 597 * Fixed sf::SoundBuffer contents not being able to be updated when still attached to sounds (#354, 367, #390, #589) 598 * Catch audio format error and prevent division by zero (#529) 599 * Fixed sf::SoundBuffer returning wrong duration for sounds containing more than ~4.3 million samples (2ff58ed) 600 * Optimized sf::Listener with a cache (d97e524) 601 602### Network 603 604**Features** 605 606 * Added support for PUT and DELETE in sf::Http (#257, #312, #607) 607 * Added support for chunked HTTP transfers (#296, #337) 608 * Added support for 64-bit integers in sf::Packet (#710) 609 * Made sf::Ftp::sendCommand() public (2c5cab5) 610 611**Bugfixes** 612 613 * Checked socket descriptor limit (#153, #628, #683) 614 * Fixed sf::TcpSocket::connect()'s switching from blocking to non-blocking mode on immediate connection success (#221) 615 * Fixed FTP download and upload file sizes being limited by available RAM (#565, #590) 616 * Fixed C++11 compiler warnings for sf::Uint8 (#731, #732) 617 618## SFML 2.1 619 620Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.1 621 622### General 623 624 * Updated the Window and OpenGL examples (got rid of GLU and immediate mode) 625 626### Window 627 628**Features** 629 630 * Now using inotify on Linux to avoid constantly polling joystick connections (#96) 631 * Add keypad return, equal and period keys support for macOS 632 * Improved mouse events on macOS regarding fullscreen mode 633 * Improved mouse events on macOS (#213, #277) 634 * Improved reactivity of setMousePosition on macOS (#290) 635 * Added support for right control key on macOS 636 * Improved TextEntered for macOS (#377) 637 * Improved the performances of Window::getSize() (the size is now cached) 638 * Added the WM_CLASS property to SFML windows on Linux 639 * Fake resize events are no longer sent when the window is moved, on Linux 640 * Pressing ALT or F10 on Windows no longer steals the focus 641 642**Bugfixes** 643 644 * Fixed MouseMove event sometimes not generated when holding left button on Windows (#225) 645 * Fixed ContextSettings ignored when creating a 3.x/4.x OpenGL context on Linux (#258) 646 * Fixed ContextSettings ignored on Linux when creating a window (#35) 647 * Fixed windows bigger than the desktop not appearing on Windows (#215) 648 * Fixed KeyRelease events sometimes not reported on Linux (#404) 649 * Fixed mouse moved event on macOS when dragging the cursor (#277) 650 * Fixed KeyRelease event with CMD key pressed (#381) 651 * Fixed taskbar bugs on Windows (#328, #69) 652 * Fixed Window::getPosition() on Linux (#346) 653 * Unicode characters outside the BMP (> 0xFFFF) are now correctly handled on Windows (#366) 654 655### Graphics 656 657**Features** 658 659 * Checking errors in RenderTarget::pushGLStates() to avoid generating false error messages when user leaves unchecked OpenGL errors (#340) 660 * Optimized Shader::setParameter functions, by using a cache internally (#316, #358) 661 662**Bugfixes** 663 664 * Fixed bounding rect of sf::Text ignoring whitespaces (#216) 665 * Solved graphics resources not updated or corrupted when loaded in a thread (#411) 666 * Fixed white pixel showing on first character of sf::Text (#414) 667 * sf::Rect::contains and sf::Rect::intersects now handle rectangles with negative dimensions correctly (#219) 668 * Fixed Shape::setTextureRect not working when called before setTexture 669 670### Audio 671 672**Features** 673 674 * loadFromStream functions now explicitly reset the stream (seek(0)) before starting to read (#349) 675 676**Bugfixes** 677 678 * Added a workaround for a bug in the macOS implementation of OpenAL (unsupported channel count no properly detected) (#201) 679 * Fixed SoundBuffer::loadFromStream reading past the end of the stream (#214) 680 681### Network 682 683**Features** 684 685 * Replaced the deprecated gethostbyname with getaddrinfo (#47) 686 * Minor improvements to sf::Packet operators (now using strlen and wcslen instead of explicit loops) (#118) 687 688**Bugfixes** 689 690 * Fixed non-blocking connection with a sf::TcpSocket on Windows 691 * Fixed TCP packet data corruption in non-blocking mode (#402, #119) 692 * On Unix systems, a socket disconnection no longer stops the program with signal SIGPIPE (#72) 693 694## SFML 2.0 695 696Also available on the website: https://www.sfml-dev.org/changelog.php#sfml-2.0 697 698No changelog available. *Everything changed.* 699 700## Older Releases 701 702See the website for changelogs of older releases: https://www.sfml-dev.org/changelog.php 703