#ifndef TEXTURE_H
#define TEXTURE_H
#include "../shared.h"
typedef struct _Texture
{
GLuint tex_id;
GLenum type;
int number_of_rows; /* used for texture atlases */
char _name[MAX_PATH_LENGTH];
unsigned int hash_;
struct _Texture *_hash_next; /* linked list for storing on hash table */
} Texture;
extern Texture *texture_new(const char *name);
extern Texture *texture_with_name_new(const char *name, const char *path);
extern Texture *texture_cubemap_new(const char *paths[6]);
extern Texture *texture_cubemap_with_name_new(const char *name, const char *paths[6]);
extern Texture *texture_get(const char *name);
extern void texture_bind(Texture *tex, int slot);
extern void texture_purge(Texture *tex); /* Clean the texture without freeing the container */
#endif // TEXTURE_H