diff -Naur SDL_kitchensink-1.0.4-o/CMakeLists.txt SDL_kitchensink-1.0.4/CMakeLists.txt --- SDL_kitchensink-1.0.4-o/CMakeLists.txt 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/CMakeLists.txt 2018-07-23 10:05:19.626764361 +0200 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.7) +cmake_minimum_required(VERSION 3.5) project(SDL_kitchensink C) include(GNUInstallDirs) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) diff -Naur SDL_kitchensink-1.0.4-o/examples/example_audio.c SDL_kitchensink-1.0.4/examples/example_audio.c --- SDL_kitchensink-1.0.4-o/examples/example_audio.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/examples/example_audio.c 2018-07-23 10:05:19.626764361 +0200 @@ -1,5 +1,5 @@ #include -#include +#include #include #include diff -Naur SDL_kitchensink-1.0.4-o/examples/example_complex.c SDL_kitchensink-1.0.4/examples/example_complex.c --- SDL_kitchensink-1.0.4-o/examples/example_complex.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/examples/example_complex.c 2018-07-23 10:05:19.626764361 +0200 @@ -1,5 +1,5 @@ #include -#include +#include #include #include diff -Naur SDL_kitchensink-1.0.4-o/examples/example_custom.c SDL_kitchensink-1.0.4/examples/example_custom.c --- SDL_kitchensink-1.0.4-o/examples/example_custom.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/examples/example_custom.c 2018-07-23 10:05:19.626764361 +0200 @@ -1,5 +1,5 @@ #include -#include +#include #include #include diff -Naur SDL_kitchensink-1.0.4-o/examples/example_rwops.c SDL_kitchensink-1.0.4/examples/example_rwops.c --- SDL_kitchensink-1.0.4-o/examples/example_rwops.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/examples/example_rwops.c 2018-07-23 10:07:54.411755394 +0200 @@ -1,5 +1,5 @@ #include -#include +#include #include #include diff -Naur SDL_kitchensink-1.0.4-o/examples/example_simple.c SDL_kitchensink-1.0.4/examples/example_simple.c --- SDL_kitchensink-1.0.4-o/examples/example_simple.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/examples/example_simple.c 2018-07-23 10:05:19.627764361 +0200 @@ -1,5 +1,5 @@ #include -#include +#include #include #include diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/kitdecoder.h SDL_kitchensink-1.0.4/include/kitchensink/internal/kitdecoder.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/kitdecoder.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/kitdecoder.h 2018-07-23 10:05:19.627764361 +0200 @@ -3,7 +3,7 @@ #include -#include +#include #include #include diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitatlas.h SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitatlas.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitatlas.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitatlas.h 2018-07-23 10:05:19.627764361 +0200 @@ -2,8 +2,8 @@ #define KITATLAS_H #include -#include -#include +#include +#include #include "kitchensink/kitconfig.h" diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitatlas.h~ SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitatlas.h~ --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitatlas.h~ 1970-01-01 01:00:00.000000000 +0100 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitatlas.h~ 2018-07-23 10:05:19.627764361 +0200 @@ -0,0 +1,40 @@ +#ifndef KITATLAS_H +#define KITATLAS_H + +#include +#include +#include + +#include "kitchensink/kitconfig.h" + +typedef struct Kit_TextureAtlasItem { + int cur_shelf; //< Current shelf number in cache + int cur_slot; //< Current slot on shelf in cache + SDL_Rect source; //< Source coordinates on cache surface + SDL_Rect target; //< Target coordinates on output surface +} Kit_TextureAtlasItem; + +typedef struct Kit_Shelf { + uint16_t width; + uint16_t height; + uint16_t count; +} Kit_Shelf; + +typedef struct Kit_TextureAtlas { + int cur_items; //< Current items count + int max_items; //< Maximum items count + int max_shelves; //< Maximum shelf count + int w; //< Current atlas width + int h; //< Current atlas height + Kit_TextureAtlasItem *items; //< Cached items + Kit_Shelf *shelves; //< Atlas shelves +} Kit_TextureAtlas; + +KIT_LOCAL Kit_TextureAtlas* Kit_CreateAtlas(); +KIT_LOCAL void Kit_FreeAtlas(Kit_TextureAtlas *atlas); +KIT_LOCAL void Kit_ClearAtlasContent(Kit_TextureAtlas *atlas); +KIT_LOCAL void Kit_CheckAtlasTextureSize(Kit_TextureAtlas *atlas, SDL_Texture *texture); +KIT_LOCAL int Kit_GetAtlasItems(const Kit_TextureAtlas *atlas, SDL_Rect *sources, SDL_Rect *targets, int limit); +KIT_LOCAL int Kit_AddAtlasItem(Kit_TextureAtlas *atlas, SDL_Texture *texture, SDL_Surface *surface, const SDL_Rect *target); + +#endif // KITATLAS_H diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitsubtitle.h SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitsubtitle.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitsubtitle.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitsubtitle.h 2018-07-23 10:05:19.627764361 +0200 @@ -1,7 +1,7 @@ #ifndef KITSUBTITLE_H #define KITSUBTITLE_H -#include +#include #include "kitchensink/kitconfig.h" #include "kitchensink/kitsource.h" diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitsubtitlepacket.h SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitsubtitlepacket.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/kitsubtitlepacket.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/kitsubtitlepacket.h 2018-07-23 10:05:19.628764361 +0200 @@ -2,7 +2,7 @@ #define KITSUBTITLEPACKET_H #include -#include +#include #include "kitchensink/kitconfig.h" diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/subtitle/renderers/kitsubrenderer.h 2018-07-23 10:05:19.628764361 +0200 @@ -1,7 +1,7 @@ #ifndef KITSUBRENDERER_H #define KITSUBRENDERER_H -#include +#include #include "kitchensink/kitsource.h" diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/internal/video/kitvideo.h SDL_kitchensink-1.0.4/include/kitchensink/internal/video/kitvideo.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/internal/video/kitvideo.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/internal/video/kitvideo.h 2018-07-23 10:05:19.628764361 +0200 @@ -1,7 +1,7 @@ #ifndef KITVIDEO_H #define KITVIDEO_H -#include +#include #include "kitchensink/kitconfig.h" #include "kitchensink/kitsource.h" diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/kitplayer.h SDL_kitchensink-1.0.4/include/kitchensink/kitplayer.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/kitplayer.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/kitplayer.h 2018-07-23 10:05:19.628764361 +0200 @@ -14,7 +14,7 @@ #include "kitchensink/kitformat.h" #include "kitchensink/kitcodec.h" -#include +#include #ifdef __cplusplus extern "C" { diff -Naur SDL_kitchensink-1.0.4-o/include/kitchensink/kitsource.h SDL_kitchensink-1.0.4/include/kitchensink/kitsource.h --- SDL_kitchensink-1.0.4-o/include/kitchensink/kitsource.h 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/include/kitchensink/kitsource.h 2018-07-23 10:07:42.507756084 +0200 @@ -10,7 +10,7 @@ */ #include -#include +#include #include "kitchensink/kitconfig.h" #ifdef __cplusplus diff -Naur SDL_kitchensink-1.0.4-o/src/internal/audio/kitaudio.c SDL_kitchensink-1.0.4/src/internal/audio/kitaudio.c --- SDL_kitchensink-1.0.4-o/src/internal/audio/kitaudio.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/internal/audio/kitaudio.c 2018-07-23 10:05:19.628764361 +0200 @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include "kitchensink/kiterror.h" #include "kitchensink/internal/kitlibstate.h" diff -Naur SDL_kitchensink-1.0.4-o/src/internal/libass.c SDL_kitchensink-1.0.4/src/internal/libass.c --- SDL_kitchensink-1.0.4-o/src/internal/libass.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/internal/libass.c 2018-07-23 10:05:19.629764361 +0200 @@ -1,6 +1,6 @@ #ifdef USE_DYNAMIC_LIBASS -#include +#include #include "kitchensink/internal/libass.h" int load_libass(void *handle) { diff -Naur SDL_kitchensink-1.0.4-o/src/internal/subtitle/kitsubtitle.c SDL_kitchensink-1.0.4/src/internal/subtitle/kitsubtitle.c --- SDL_kitchensink-1.0.4-o/src/internal/subtitle/kitsubtitle.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/internal/subtitle/kitsubtitle.c 2018-07-23 10:05:19.629764361 +0200 @@ -1,6 +1,6 @@ #include -#include +#include #include #include "kitchensink/internal/utils/kitlog.h" diff -Naur SDL_kitchensink-1.0.4-o/src/internal/subtitle/renderers/kitsubass.c SDL_kitchensink-1.0.4/src/internal/subtitle/renderers/kitsubass.c --- SDL_kitchensink-1.0.4-o/src/internal/subtitle/renderers/kitsubass.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/internal/subtitle/renderers/kitsubass.c 2018-07-23 10:05:19.629764361 +0200 @@ -1,7 +1,7 @@ #include #include -#include +#include #include "kitchensink/kiterror.h" #include "kitchensink/internal/utils/kitlog.h" diff -Naur SDL_kitchensink-1.0.4-o/src/internal/subtitle/renderers/kitsubimage.c SDL_kitchensink-1.0.4/src/internal/subtitle/renderers/kitsubimage.c --- SDL_kitchensink-1.0.4-o/src/internal/subtitle/renderers/kitsubimage.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/internal/subtitle/renderers/kitsubimage.c 2018-07-23 10:05:19.629764361 +0200 @@ -1,7 +1,7 @@ #include #include -#include +#include #include "kitchensink/kiterror.h" #include "kitchensink/internal/utils/kitlog.h" diff -Naur SDL_kitchensink-1.0.4-o/src/kitlib.c SDL_kitchensink-1.0.4/src/kitlib.c --- SDL_kitchensink-1.0.4-o/src/kitlib.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/kitlib.c 2018-07-23 10:05:19.629764361 +0200 @@ -1,5 +1,5 @@ #include -#include +#include #include diff -Naur SDL_kitchensink-1.0.4-o/src/kitplayer.c SDL_kitchensink-1.0.4/src/kitplayer.c --- SDL_kitchensink-1.0.4-o/src/kitplayer.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/kitplayer.c 2018-07-23 10:05:19.630764361 +0200 @@ -1,6 +1,6 @@ #include -#include +#include #include "kitchensink/kitplayer.h" #include "kitchensink/kiterror.h" diff -Naur SDL_kitchensink-1.0.4-o/src/kitutils.c SDL_kitchensink-1.0.4/src/kitutils.c --- SDL_kitchensink-1.0.4-o/src/kitutils.c 2018-07-13 17:18:32.000000000 +0200 +++ SDL_kitchensink-1.0.4/src/kitutils.c 2018-07-23 10:05:19.630764361 +0200 @@ -1,4 +1,4 @@ -#include +#include #include "kitchensink/kitutils.h" #include "kitchensink/kitsource.h"