X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2FGraphic%2FTexture.hpp;h=b47ab1cb1cb6d6c219cfe771f2747a9804bd1e6b;hb=8f372db25c010303cc25868b48cb5c0d0a540067;hp=ab51cdb9653cf760fda40430c57fa60daeed262f;hpb=ed3662c0852c4312a612b4fc35bd03aba8d13db7;p=lugaru.git diff --git a/Source/Graphic/Texture.hpp b/Source/Graphic/Texture.hpp index ab51cdb..b47ab1c 100644 --- a/Source/Graphic/Texture.hpp +++ b/Source/Graphic/Texture.hpp @@ -1,6 +1,6 @@ /* Copyright (C) 2003, 2010 - Wolfire Games -Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) +Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file) This file is part of Lugaru. @@ -24,16 +24,13 @@ along with Lugaru. If not, see . #include "Graphic/gamegl.hpp" #include +#include #include #include -using namespace std; - class TextureRes { private: - static vector list; - GLuint id; string filename; bool hasMipmap; @@ -49,17 +46,24 @@ public: TextureRes(const string& filename, bool hasMipmap, GLubyte* array, int* skinsize); ~TextureRes(); void bind(); + + /* Make sure TextureRes never gets copied */ + TextureRes(TextureRes const& other) = delete; + TextureRes& operator=(TextureRes const& other) = delete; }; class Texture { private: - TextureRes* tex; + std::shared_ptr tex; + public: - inline Texture(): tex(NULL) {} + inline Texture() + : tex(nullptr) + { + } void load(const string& filename, bool hasMipmap); void load(const string& filename, bool hasMipmap, GLubyte* array, int* skinsizep); - void destroy(); void bind(); };