#ifndef TEXTURES_INTERNAL_API_H #define TEXTURES_INTERNAL_API_H #include "../util.h" #include "../textures/modes.h" #include #include #include #include struct texture { t_rect srcrect; /* position in atlas */ SDL_Surface *data; /* original image data */ int atlas_index; GLuint loner_texture; /* stored directly for loners, == 0 means atlas_index should be used */ enum texture_mode mode; }; struct texture_cache_item { char *key; struct texture value; }; struct texture_cache { SDL_Window *window; /* from context */ struct texture_cache_item *hash; stbrp_node *node_buffer; /* used internally by stb_rect_pack */ SDL_Surface **atlas_surfaces; GLuint *atlas_textures; /* shared by atlas textures */ int atlas_index; /* atlas that is currently being built */ bool is_dirty; /* current atlas needs to be recreated */ }; #endif