X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGraphic%2FTexture.cpp;h=9dd4ea60be08eac20d5fbc66e04125598944c0b9;hb=a3775aa01cd00672b37785365675f6842b9db2dc;hp=3f5211ac20cc0bebe35950808a0c007d37d3bc4a;hpb=b84825978803615f45a9f128232e62431042aec0;p=lugaru.git diff --git a/Source/Graphic/Texture.cpp b/Source/Graphic/Texture.cpp index 3f5211a..9dd4ea6 100644 --- a/Source/Graphic/Texture.cpp +++ b/Source/Graphic/Texture.cpp @@ -18,17 +18,15 @@ You should have received a copy of the GNU General Public License along with Lugaru. If not, see . */ -#include "Graphic/gamegl.h" -#include "Graphic/Texture.h" -#include "Utils/Folders.h" -#include "Utils/ImageIO.h" +#include "Graphic/Texture.hpp" + +#include "Utils/Folders.hpp" +#include "Utils/ImageIO.hpp" using namespace std; extern bool trilinear; -vector TextureRes::list; - void TextureRes::load() { ImageRec texture; @@ -83,7 +81,6 @@ TextureRes::TextureRes(const string& _filename, bool _hasMipmap): skinsize(0), data(NULL), datalen(0) { load(); - list.push_back(this); } TextureRes::TextureRes(const string& _filename, bool _hasMipmap, GLubyte* array, int* skinsizep): @@ -92,40 +89,25 @@ TextureRes::TextureRes(const string& _filename, bool _hasMipmap, GLubyte* array, { load(); *skinsizep = skinsize; - for (int i = 0; i < datalen; i++) + for (int i = 0; i < datalen; i++) { array[i] = data[i]; - list.push_back(this); + } } TextureRes::~TextureRes() { free(data); glDeleteTextures(1, &id); - for (vector::iterator it = list.begin(); it != list.end(); it++) - if (*it == this) { - list.erase(it); - break; - } } void Texture::load(const string& filename, bool hasMipmap) { - destroy(); - tex = new TextureRes(Folders::getResourcePath(filename), hasMipmap); + tex.reset(new TextureRes(Folders::getResourcePath(filename), hasMipmap)); } void Texture::load(const string& filename, bool hasMipmap, GLubyte* array, int* skinsizep) { - destroy(); - tex = new TextureRes(Folders::getResourcePath(filename), hasMipmap, array, skinsizep); -} - -void Texture::destroy() -{ - if (tex) { - delete tex; - tex = NULL; - } + tex.reset(new TextureRes(Folders::getResourcePath(filename), hasMipmap, array, skinsizep)); } void Texture::bind()