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