All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Fix font dimensions test
- Make
SDLmain
library optional in Unix, since some distros seem to drop it - Fix using unsupported warning flags on some compilers
- New SDL 2.0.5
Window
method:Window::SetResizable()
- Minor documentation improvements
- Example code fixes
Color
class wrapping aroundSDL_Color
Surface.hh
include was missing fromSDL2pp.hh
- Proper
Size()
handling for customRWops
Window::GetOpacity()
andWindow()::SetOpacity()
wrappers for functions appeared in SDL 2.0.5Music
RWops constructors based on undocumented SDL_mixer functions- Static standalone build support
- libSDL2pp now follows SDL2 include path conventions, finding and using SDL2 headers without SDL2/ prefix
- Fixed SDL 2.0.4 specific
AudioDevice
methods:AudioDevice::QueueAudio()
,AudioDevice::GetQueuedAudioSize()
- Fixed MSVC compiler support and .dll generation
- Multiple documentation fixes
- More tests
- Automatic SDL 2.0.4 detection
Texture::Update()
overload which takes rvalue reference toSurface
Renderer::GetClipRect
now returnsOptional<Rect>
instead of (possibly empty)Rect
Exception
is now derived fromstd::runtime_error
- Deprecated
Renderer::GetInfo()
variant which takes pointer (use variant which takes reference)
- Link SDL2main library, which is needed on some systems
- Numerous improvements in Windows support
- Documentation fixes
- Multiple fixes in pkg-config and CMake module files
- New
Window
methods:Window::GetDrawableWidth()
,Window::GetDrawableHeight()
,Window::GetDrawableSize()
(@csoren) Point
andRect
less-than operators and std::hash support which makes them usable asstd::map
/std::unordered_map
/std::set
/std::unordered_set
keys- More
Rect
methods and wider constexpr support
Rect
documentation fixes- Unused variable warnings (@vladimirgamalian)
- Incorrect return value handling in
Surface::SetClipRect()
- Improved cygwin compatibility
- Missing
SDL
method implementations - Fixed return and argument types for some
Window
,Font
andMixer
methods to match upstream API - Infinite loop in
StreamRWops
- Documentation improvements
- Build without SDL_mixer support
- SDL_mixer support
- More
Point
operators:*
,/
,%
for integer multiplication, division and remainder by a number or anotherPoint
Point
andRect
better inlining and constexpr support- New method:
Surface::GetFormat()
Texture::Update()
overload which takes Surface as pixel source
- Add missing
Font::IsGlyphProvided()
implementation (@vladimirgamalian) - Fix glyph rectangle calculation in
Font::GetGlyphRect()
(@vladimirgamalian)
- Use correct type flags in
RWops::Size()
, fixing MinGW build (@vladimirgamalian)
Render::Copy()
overload which takes targetPoint
instead of aRect
- New method
Render::FillCopy()
which fills target rect with repeated texture - Improved UTF-16 font rendering support
- CMake module file
- Miscellaneous style, documentation and build system fixes
- More
Texture
,Renderer
(both complete now) andWindow
methods - New methods:
Point::Clamp()
,Point::Wrap()
,Rect::Extend()
,Rect::IntersectLine()
- STL stream output for
Point
andRect
(as instd::cout << Rect(10, 20, 30 40);
)
- 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 withcatch (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
- Deprecated
Point
andRect
methods:Null()
,IsNull()
,Get()
- Use move, not copy in constructing
RWops
fromCustomRWops
-derived class
- Doxygen documentation for the whole library
- Wrapper around 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
Texturefrom
Surface`.- Bunch of constructors from existing SDL objects (e.g.
Window::Window(SDL_Window*)
) forPoint
,Rect
,Window
,Renderer
,Texture
- Complete SDL_ttf support
- Consistent
GetWidth()
/GetHeight()
/GetSize()
forTexture
andSurface
- More operators, constructors and methods for
Point
andRect
- Added proper error checking for SDL_image-using Texture constructors
- Multiple fixes in build system
- Added missing include file to installation
- Potential problems with SDL2 error handling
AudioDevice::LockHandle
is now copyableRect
now has+
-
+=
-=
operators to offset it by aPoint
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
Point
andRect
no longer have invalid (null) states and are now directly derived from SDL_Point and SDL_Rect structures. In places where null states were usable (e.g. usually nullRect
would mean "whole area", like inTexture::Lock()
),Optional
class is now used. UseNullOpt
instead ofPoint::Null()
andRect::Null()
StreamRWops
which works with STL streamsAudioDevice
andTexture
LockHandle
s now have empty constructors and may be initialized after constructionRWops
(Read|Write)(LE|BE)(16|32|64)
methods- pkg-config file
- Plain
ContainerRWops
is now able to work with both const and mutable containers - Audio callback is now tied to
AudioDevice
, notAudioSpec
, which is cleaner and easier to use
ConstContainerRWops
which is no longer needed
- Exception safety when changing audio callback
- Made
-Werror
flag conditional for user convenience
- SDL audio functionality
- Proper self-assignment handling in move assignment operators
- Getters for
Texture
properties:Texture::GetWidth()
,Texture::GetHeight()
,Texture::GetFormat()
,Texture::GetAccess()
Texture
locking- New
Rect
methodRect::Contains()
to check if it contains aPoint
- Installation
- Library version
- SDL2_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
- GUI tests which are sensible to OpenGL implementation-specific behavior are no longer fatal
- Unit tests
- New
Window
methods:Window::GetSize()
,Window::GetWidth()
,Window::GetHeight()
,Window::SetTitle()
- New
Renderer
method:Renderer::ReadPixels()
Point
andRect
setters and comparison operators
- Initial release supporting basic
Window
,Renderer
,Texture
,Rect
andPoint
handling