diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2016-03-30 08:41:16 -0400 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2016-03-30 08:41:16 -0400 |
commit | c35571e37bdd6d2fe9b95e4265c150265585f3a9 (patch) | |
tree | 31478f777e27f345cc20f2eaf796a176b55cb4fe /include/Texture.hpp | |
parent | 82c178d797b9a23c31d7dad1cc8cac29d27c6eb1 (diff) |
Inv and textures
Diffstat (limited to 'include/Texture.hpp')
-rw-r--r-- | include/Texture.hpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/include/Texture.hpp b/include/Texture.hpp new file mode 100644 index 0000000..4202043 --- /dev/null +++ b/include/Texture.hpp @@ -0,0 +1,103 @@ +/** @file Texture.h + * @brief Defines a method for loading textures. + * + * This file gives facilities for easily loading and binding textures. + */ + +#ifndef TEXTURE_H +#define TEXTURE_H + +#include <common.hpp> + +/** + * When defined, DEBUG allows extra messages to be printed to the terminal for + * debugging purposes. + */ + +#define DEBUG + +/** + * Texture functions are given a namespace for better organization. + */ + +namespace Texture { + + /** + * Loads a texture from the given file name, returning the GLuint used for + * later referencing of the texture. + */ + + GLuint loadTexture(std::string fileName); + + void freeTextures(void); + + void initColorIndex(); + vec2 getIndex(Color c); + dim2 imageDim(std::string fileName); +} + +/** + * The Texturec class. + * + * This class can handle an array of textures and allows easy binding of those + * textures. + */ + +class Texturec{ +private: + + /** + * Contains the index in the image array of the currently loaded texture. + */ + + unsigned int texState; + +public: + + /** + * Contains an array of the GLuints returned from Texture::loadTexture(). + */ + + std::vector<GLuint> image; + + /** + * Populates the image array from a list of strings, with each string as a + * separate argument. + */ + + Texturec(uint amt, ...); + + /** + * Populates the image array from an array of strings. + */ + + Texturec(uint amt,const char **paths); + Texturec(std::vector<std::string>vec); + Texturec( std::initializer_list<std::string> l ); + + /** + * Frees memory taken by the image array. + */ + + ~Texturec(); + + /** + * Binds the next texture in the array, incrementing texState. + */ + + void bindNext(); + + /** + * Binds the previous texture in the array, decrementing texState. + */ + + void bindPrev(); + + /** + * Binds the texture with the provided index. + */ + + void bind(unsigned int); +}; + +#endif //TEXTURE_H |