#ifndef SWIFT_RENDER_TEXTURE_CACHE_H
#define SWIFT_RENDER_TEXTURE_CACHE_H
#include <swift/window/glad.h>
#include <GLFW/glfw3.h>
#include <swift/maths.h>
#include <swift/stdlib.h>
#include <swift/atomic.h>
#include <swift/window/api.h>

typedef struct swift_tex_t swift_tex_t;

struct swift_tex_t {
	GLuint tex_id;
	char *name;
	swift_vec2f_t size;
	int ref;
};

SWIFT_WINDOW_API swift_tex_t *swift_create_texture(const char *path);
SWIFT_WINDOW_API bool swift_init_textures(const char *path);
SWIFT_WINDOW_API void swift_term_textures(void);
SWIFT_WINDOW_API swift_tex_t *swift_get_texture(const char *name);
SWIFT_WINDOW_API swift_tex_t *swift_add_texture(const char *path);
SWIFT_WINDOW_API void swift_remove_texture(swift_tex_t *tex);
#endif /* SWIFT_RENDER_TEXTURE_CACHE_H */
