X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGraphic%2FTexture.cpp;h=9dd4ea60be08eac20d5fbc66e04125598944c0b9;hb=b32cd80b243d77cd80e026c7ae73e33ec39b1de9;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()