/*
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.
#include "Graphic/gamegl.hpp"
#include <map>
+#include <memory>
#include <string>
#include <vector>
-using namespace std;
-
class TextureRes
{
private:
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<TextureRes> 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();
};