X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGraphic%2FTexture.hpp;fp=Source%2FGraphic%2FTexture.hpp;h=ab51cdb9653cf760fda40430c57fa60daeed262f;hb=ed3662c0852c4312a612b4fc35bd03aba8d13db7;hp=0000000000000000000000000000000000000000;hpb=b84825978803615f45a9f128232e62431042aec0;p=lugaru.git diff --git a/Source/Graphic/Texture.hpp b/Source/Graphic/Texture.hpp new file mode 100644 index 0000000..ab51cdb --- /dev/null +++ b/Source/Graphic/Texture.hpp @@ -0,0 +1,66 @@ +/* +Copyright (C) 2003, 2010 - Wolfire Games +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) + +This file is part of Lugaru. + +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +Lugaru is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Lugaru. If not, see . +*/ + +#ifndef _TEXTURE_HPP_ +#define _TEXTURE_HPP_ + +#include "Graphic/gamegl.hpp" + +#include +#include +#include + +using namespace std; + +class TextureRes +{ +private: + static vector list; + + GLuint id; + string filename; + bool hasMipmap; + bool isSkin; + int skinsize; + GLubyte* data; + int datalen; + + void load(); + +public: + TextureRes(const string& filename, bool hasMipmap); + TextureRes(const string& filename, bool hasMipmap, GLubyte* array, int* skinsize); + ~TextureRes(); + void bind(); +}; + +class Texture +{ +private: + TextureRes* tex; +public: + inline Texture(): tex(NULL) {} + void load(const string& filename, bool hasMipmap); + void load(const string& filename, bool hasMipmap, GLubyte* array, int* skinsizep); + void destroy(); + void bind(); +}; + +#endif