diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000..772c84c --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,162 @@ +# Change Log +All notable changes to this project will be documented in this file. +This project adheres to [Semantic Versioning](http://semver.org/). + +## 0.11.0 - 2015-11-30 +### Added +* New ```Window``` methods: ```Window::GetDrawableWidth()```, ```Window::GetDrawableHeight()```, ```Window::GetSize()``` (@csoren) +* ```Point``` and ```Rect``` less-than operators and std::hash support which makes them usable as ```std::map```/```std::unordered_map```/```std::set```/```std::unordered_set``` keys +* More ```Rect``` methods and wider constexpr support + +### Fixed +* ```Rect``` documentation fixes +* Unused variable warnings (@vladimirgamalian) +* Incorrect return value handling in ```Surface::SetClipRect()``` + +## 0.10.0 - 2015-10-14 +### Fixed +* Improved cygwin compatibility +* Missing ```SDL``` method implementations +* Fixed return and argument types for some ```Window```, ```Font``` and ```Mixer``` methods to match upstream API +* Infinite loop in ```StreamRWops``` +* Documentation improvements +* Build without [SDL_mixer](https://www.libsdl.org/projects/SDL_mixer/) support + +## 0.9.0 - 2015-09-07 +### Added +* [SDL_mixer](https://www.libsdl.org/projects/SDL_mixer/) support +* More ```Point``` operators: ```*```, ```/```, ```%``` for integer multiplication, division and remainder by a number or another ```Point``` +* ```Point``` and ```Rect``` better inlining and constexpr support +* New method: ```Surface::GetFormat()``` +* ```Texture::Update()``` overload which takes Surface as pixel source + +## 0.8.2 - 2015-07-28 +### Fixed +* Add missing ```Font::IsGlyphProvided()``` implementation (@vladimirgamalian) +* Fix glyph rectangle calculation in ```Font::GetGlyphRect()``` (@vladimirgamalian) + +## 0.8.1 - 2015-06-29 +### Fixed +* Use correct type flags in ```RWops::Size()```, fixing MinGW build (@vladimirgamalian) + +## 0.8.0 - 2015-06-10 +### Added +* ```Render::Copy()``` overload which takes target ```Point``` instead of a ```Rect``` +* New method ```Render::FillCopy()``` which fills target rect with repeated texture +* Improved UTF-16 font rendering support +* CMake module file + +## 0.7.1 - 2015-03-27 +### Fixed +* Miscellaneous style, documentation and build system fixes + +## 0.7.0 - 2015-01-22 +### Added +* More ```Texture```, ```Renderer``` (both complete now) and ```Window``` methods +* New methods: ```Point::Clamp()```, ```Point::Wrap()```, ```Rect::Extend()```, ```Rect::IntersectLine()``` +* STL stream output for ```Point``` and ```Rect``` (as in ```std::cout << Rect(10, 20, 30 40);```) + +### Changed +* Most setters now return reference to self to allow method chaining +* Exception now stores both SDL error and name of function which caused it; ```what()``` message now includes these both in a readable way, so SDL2pp exceptions may be conveniently handled with ```catch (std::exception&)``` +* pkg-config file now provides SDL libraries along with SDL2pp, so users don't need to care of SDL2 flags in addition to SDL2pp's + +### Removed +* Deprecated ```Point``` and ```Rect``` methods: ```Null()```, ```IsNull()```, ```Get()``` + +### Fixed +* Use move, not copy in constructing ```RWops``` from ```CustomRWops```-derived class + +## 0.6.0 - 2015-01-11 +### Added +* [Doxygen](http://doxygen.org/) documentation for the whole library +* Wrapper around [SDL_image](https://www.libsdl.org/projects/SDL_image/) initialization/deinitialization: ```SDLImage``` class +* ```Surface````, a wrapepr for [SDL_Surface](https://wiki.libsdl.org/SDL_Surface) including [SDL_image](https://www.libsdl.org/projects/SDL_image/) support. It's now also possible to construct ```Texture``` from ```Surface```. +* Bunch of constructors from existing SDL objects (e.g. ```Window::Window(SDL_Window*)```) for ```Point```, ```Rect```, ```Window```, ```Renderer```, ```Texture``` +* Complete [SDL_ttf](https://www.libsdl.org/projects/SDL_ttf/) support +* Consistent ```GetWidth()```/```GetHeight()```/```GetSize()``` for ```Texture``` and ```Surface``` +* More operators, constructors and methods for ```Point``` and ```Rect``` + +### Fixed +* Added proper error checking for SDL_image-using Texture constructors +* Multiple fixes in build system + +## 0.5.2 - 2014-12-30 +### Fixed +* Added missing include file to installation + +## 0.5.1 - 2014-12-27 +### Fixed +* Potential problems with SDL2 error handling + +## 0.5.0 - 2014-12-26 +### Added +* ```AudioDevice::LockHandle``` is now copyable +* ```Rect``` now has ```+``` ```-``` ```+=``` ```-=``` operators to offset it by a ```Point``` +* ```Optional``` class to pass optional values +* Possibility to use c++1y standard and detection of available useful c++1y features with c++11 +* Default argument for ```Texture::Lock()``` +* Bunch of ```Window``` functions: ```Window::Maximize()```, ```Window::Minimize()```, ```Window::Hide()```, ```Window::Restore()```, ```Window::Raise()```, ```Window::Show()```, ```Window::SetFullscreen()```, ```Window::SetSize()``` +* More granular build options for tests and examples + +### Changed +* ```Point``` and ```Rect``` no longer have invalid (null) states and are now directly derived from [SDL_Point](https://wiki.libsdl.org/SDL_Point) and [SDL_Rect](https://wiki.libsdl.org/SDL_Rect) structures. In places where null states were usable (e.g. usually null ```Rect``` would mean "whole area", like in ```Texture::Lock()```), ```Optional``` class is now used. Use ```NullOpt``` instead of ```Point::Null()``` and ```Rect::Null()``` + +## 0.4.0 - 2014-12-19 +### Added +* ```StreamRWops``` which works with STL streams +* ```AudioDevice``` and ```Texture``` ```LockHandle```s now have empty constructors and may be initialized after construction +* ```RWops``` ```(Read|Write)(LE|BE)(16|32|64)``` methods +* pkg-config file + +### Changed +* Plain ```ContainerRWops``` is now able to work with both const and mutable containers +* Audio callback is now tied to ```AudioDevice```, not ```AudioSpec```, which is cleaner and easier to use + +### Removed +* ```ConstContainerRWops``` which is no longer needed + +### Fixed +* Exception safety when changing audio callback +* Made ```-Werror``` flag conditional for user convenience + +## 0.3.0 - 2014-11-30 +### Added +* [SDL audio](https://wiki.libsdl.org/CategoryAudio) functionality + +### Fixed +* Proper self-assignment handling in move assignment operators + +## 0.2.0 - 2014-11-25 +### Added +* Getters for ```Texture``` properties: ```Texture::GetWidth()```, ```Texture::GetHeight()```, ```Texture::GetFormat()```, ```Texture::GetAccess()``` +* ```Texture``` locking +* New ```Rect``` method ```Rect::Contains()``` to check if it contains a ```Point``` + +## 0.1.1 - 2014-09-09 +### Added +* Installation +* Library version + +## 0.1.0 - 2014-09-05 +### Added +* [SDL2_image](https://www.libsdl.org/projects/SDL_image/) support +* ```RWops``` support +* New ```Renderer``` methods: ```Renderer::SetClipRect()```, ```Renderer::SetScale()```, ```Renderer::SetViewport()```, ```Renderer::TargetSupported()``` +* New ```SDL``` methods: ```SDL::WasInit()```, ```SDL::InitSubsystem()```, ```SDL::QuitSubSystem()``` +* Basic MSVC support +* Arithmetic operators for ```Point``` + +### Fixed +* GUI tests which are sensible to OpenGL implementation-specific behavior are no longer fatal + +## 0.0.2 - 2014-02-11 +### Added +* Unit tests +* New ```Window``` methods: ```Window::GetSize()```, ```Window::GetWidth()```, ```Window::GetHeight()```, ```Window::SetTitle()``` +* New ```Renderer``` method: ```Renderer::ReadPixels()``` +* ```Point``` and ```Rect``` setters and comparison operators + +## 0.0.1 - 2014-02-01 +### Added +* Initial release supporting basic ```Window```, ```Renderer```, ```Texture```, ```Rect``` and ```Point``` handling