mirror of
https://github.com/SFML/SFML.git
synced 2024-11-24 20:31:05 +08:00
Update changelog for SFML 3.0.0
This commit is contained in:
parent
d8c66ffc8d
commit
ed24853b90
145
changelog.md
145
changelog.md
@ -1,9 +1,146 @@
|
||||
# Changelog
|
||||
|
||||
SFML 3 is coming soon!
|
||||
For a sneak peak at what has changed, check out the [migration guide](migration.md).
|
||||
## Unreleased SFML 3.0.0
|
||||
|
||||
## Unreleased SFML 2.6.2
|
||||
For a closer look at breaking changes and how to migrate from SFML 2, check out the [migration guide](migration.md).
|
||||
|
||||
### General
|
||||
|
||||
**Features**
|
||||
|
||||
- Raised C++ requirement to C++17 (#1855)
|
||||
- Modernized internals to the full extent allowed by C++17
|
||||
- Upgraded to CMake 3.22 (#2543)
|
||||
- Added many unit tests with >50% code coverage
|
||||
- Added many new CI jobs for a huge variety of platforms and configurations
|
||||
- Added clang-tidy config
|
||||
- Added clang-format config
|
||||
- Removed OpenAL shared library requirement (#2749)
|
||||
- Used `[[nodiscard]]` (#1891, #1889, #1888, #1887, #1890, #1887, #2010, #3137, #3138)
|
||||
- Made many APIs `constexpr`-capable (#1903, #1909, #1904, #1910, #1934, #1937, #1999, #2000, #2377)
|
||||
- Changed many `(x, y)` APIs to instead use `sf::Vector2<T>` (#1902, #1942, #1948, #2055, #2972)
|
||||
- Removed deprecated APIs (#1881, #1886)
|
||||
- Added `SFML::` namespace to CMake targets (#1947)
|
||||
- Added support for PCH builds via `SFML_ENABLE_PCH` CMake option (#1895)
|
||||
- Added CMake preset to do developer builds (#2642)
|
||||
- Added move semantics to many types (#1932, #2014, #2016, #2273, #2276, #2277, #2329, #2487, #2658, #2656, #2805, #3142)
|
||||
- Added debug assertions to catch common bugs (#2404, #2586, #2595, #2682, #2725, #3122, #3211)
|
||||
- Changed default library type from shared to static (#2646)
|
||||
- Converted some types to aggregates (#2590, #2898, #3034)
|
||||
- Converted APIs to use `std::string_view` over C-style string parameters (#3039, #3040)
|
||||
- Converted structs to namespaces (#2320)
|
||||
- Used `std::filesystem::path` in function parameters (#1964, #2599)
|
||||
- Converted C-style enumerations to scoped enumerations (#2131, #2286, #2374, #2822, #2850, #2891, #2962)
|
||||
- Improved error messages (#2043, #2636, #2689)
|
||||
- Removed custom fixed width integer aliases (#2192, #2196, #2199, #2200)
|
||||
- Improved object lifetime safety (#2332, #2336, #3126)
|
||||
- Used `std::optional` to express nullable parameters and return values (#1952, #2449, #2756, #2803, #2963, #2964, #3106)
|
||||
- [Android] Removed sfml-activity (#2783)
|
||||
- Consistently used `getNativeHandle` function name (#2669)
|
||||
- [Windows] Added support for UCRT MinGW (#3115)
|
||||
- [Windows] Added support for Windows ARM64 (#3111)
|
||||
- Added throwing constructors (#3152)
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Fixed `OPTIONAL_COMPONENTS` when finding SFML via `find_package` (#2052)
|
||||
- [Nix] Fixed pkg-config support on Nix (#2835)
|
||||
|
||||
### System
|
||||
|
||||
**Features**
|
||||
|
||||
- Replaced multithreading primitives with standard C++ ones (#1863)
|
||||
- Replaced `sf::NonCopyable` with `= delete` (#1901)
|
||||
- Added `sf::Angle` (#1969)
|
||||
- Added extension methods for `sf::Vector2<T>` (#1979)
|
||||
- Made `sf::Clock` pausable (#2004)
|
||||
- Added polar coordinate `sf::Vector2<T>` constructor (#2085)
|
||||
- Added extension methods for `sf::Vector3<T>` (#2086)
|
||||
- Improved `sf::Time` interoperability with `<chrono>` (#2133)
|
||||
- Removed `sf::MemoryInputStream` default constructor (#3085)
|
||||
- Disallowed constructing `sf::String` from `nullptr` (#3144)
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Fixed condition for trailing bytes count in UTF-8 decoder (#2435)
|
||||
|
||||
### Window
|
||||
|
||||
**Features**
|
||||
|
||||
- Added `sf::WindowBase::set{Min|Max}imumSize()` (#2519)
|
||||
- Optimized WGL context creation performance on some systems (#2616)
|
||||
- Rewrote `sf::Event` API to improve type safety (#2766)
|
||||
- Added `sf::State` for specifying fullscreen or floating windows (#2818)
|
||||
- Renamed `XButton1` and `XButton2` to `Extra1` and `Extra2` (#2838)
|
||||
- Removed `sf::Keyboard::Key::Last` and `sf::Keyboard::Scan::Last` enumerators (#2849)
|
||||
- Added raw mouse input support (#3057)
|
||||
- Added `timeout` parameter to `waitEvent` (#3094)
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- [Windows] Fixed OpenGL entry point loading on Windows (#2478)
|
||||
- Fixed `wglGetProcAddress` not providing OpenGL 1.1 functions when the context is provided by an Nvidia ICD (#2498)
|
||||
- [macOS] Fixed macOS window resizing bug (#2538)
|
||||
- [macOS] Fixed macOS window height bug (#2631)
|
||||
- Fixed `sf::Context::setActive` bug (#2816)
|
||||
- [Windows] Fixed F13-F24 and consumer key names not being returned on Windows (#2873)
|
||||
- [Windows] Changed `sf::Context::getFunction` to return `nullptr` when called on Windows without an active context (#2925)
|
||||
- [Linux] Fixed broken joystick axis mappings under Linux (#3167)
|
||||
- [macOS] Fixed how macOS fullscreen video modes are detected (#3151)
|
||||
|
||||
### Graphics
|
||||
|
||||
**Features**
|
||||
|
||||
- Added support for stencil testing (#1453)
|
||||
- Added texture coordinate type to `sf::RenderStates` (#1807)
|
||||
- Added `bool` return value to `sf::Image::copy` to signal success/failure (#2137)
|
||||
- Reduced `sf::Transformable` object size (#2288)
|
||||
- Allowed setting window icon with `sf::Image` (#2417)
|
||||
- Removed `sf::Text` default constructor (#2486)
|
||||
- Removed `sf::Sprite` default constructor (#2494)
|
||||
- Added `sf::Shape::getGeometricCenter()` (#2537)
|
||||
- Changed pointer return type to reference (#2637)
|
||||
- Added `sf::Rect<T>::getCenter()` (#2776)
|
||||
- Removed `sf::View::reset` in favor of assignment operations (#2942)
|
||||
- Implemented `sf::Rect<T>` as position and size vectors (#2972)
|
||||
- Ensured a new font page in `sf::Font::loadPage` is created only when needed (#3099)
|
||||
- Renamed `sf::Font::loadFromFile` to `sf::Font::openFromFile` (#3129)
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Fixed EGL pixel format selection and OpenGL version parsing (#2438)
|
||||
- [Android] Fixed texture being upside down on Android when copying the texture of an `sf::RenderTexture` (#2719)
|
||||
- Fixed FBO `sf::RenderTarget` tracking (#2726)
|
||||
- Fixed shader loading check for empty streams (#2869)
|
||||
- Added sanity checks for OpenGL extensions to make sure the required entry points are actually available (#3052)
|
||||
- Fixed cache state not correctly being ignored when switching between `sf::RenderTarget`s within a single context (#3114)
|
||||
|
||||
### Audio
|
||||
|
||||
**Features**
|
||||
|
||||
- Removed `sf::Sound` default constructor (#2640)
|
||||
- Replaced audio backend with miniaudio (#2749)
|
||||
- Added support for user defined sound effect implementations (#2973)
|
||||
- Added support for changing the audio playback device during runtime (#3029)
|
||||
- Renamed `getLoop()` to `isLooping()` and `setLoop()` to `setLooping()` (#3187)
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Fixed `sf::SoundStream::play` bug (#2037)
|
||||
- Fixed poor `sf::SoundStream::setPlayingOffset` precision (#3101)
|
||||
|
||||
### Network
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
- Removed invalid internal state from `sf::IpAddress` (#2145)
|
||||
- Fixed sockets not closing before being moved into (#2758)
|
||||
|
||||
## SFML 2.6.2
|
||||
|
||||
### General
|
||||
|
||||
@ -23,7 +160,7 @@ For a sneak peak at what has changed, check out the [migration guide](migration.
|
||||
|
||||
- Fix joystickButton being used for Joystick(Dis)Connected event (#2957)
|
||||
- [Windows] Close the clipboard if we fail to empty it (#3043)
|
||||
- [Android] Remove use of deprecated `ALooper_pollAll` (#3181, #3189)
|
||||
- [Android] Removed use of deprecated `ALooper_pollAll` (#3181, #3189)
|
||||
- [macOS] Fix how macOS fullscreen video modes are detected (#2300, #3151)
|
||||
- [macOS] Prevent unnecessary macOS input monitoring permission prompts (#2843, #3235)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user