Added
- Added the `tcod::Context` class to better handle contexts in C++.
- Added a CMake toggle `LIBTCOD_THREADS` to remove deprecated threading functions.
`CMAKE_DISABLE_FIND_PACKAGE_Threads=1` can also be used.
- Libtcod can now be built without SDL by passing the `-DLIBTCOD_SDL2=disable` flag in CMake or by setting
`CMAKE_DISABLE_FIND_PACKAGE_SDL2=1`.
Changed
- SDL-based accumulate functions can now handle a non-window render target.
- The SDL2 renderer has been rewritten to use `SDL_RenderGeometry` when compiled with SDL 2.0.18.
[104](https://github.com/libtcod/libtcod/issues/104)
- C++ inline functions switched to use C++17 filesystem types.
- Error messages are no longer thread-local.
- C++ objects have been moved to their `.hpp` headers:
`tcod::ColorRGB`, `tcod::ColorRGBA`, `tcod::BresenhamLine`, REXPaint functions.
Deprecated
- Older REXPaint functions using `TCOD_list_t` have been deprecated.
- C++ methods gotten through TCOD_Context have been moved to a specialized class.
Replace ``tcod.new_context(params)`` with ``tcod::Console(params)``.
Fixed
- Fixed poor attribute handing causing compile errors in GCC 12.
[116](https://github.com/libtcod/libtcod/issues/116)
- Context screenshots no longer crash when given NULL which the API implied was possible.