/**
 * @file Texture.h
 * @author Petr Egert (egertpet@fel.cvut.cz)
 * @brief Contains Texture class declaration
 */

#ifndef TEXTURE_H
#define TEXTURE_H

#include "Image.h"

namespace RD
{
    /**
     * @brief Class representing a 2D texture
     */
    class Texture
    {
        public:
            ///Default constructor, currently does nothing
            Texture(){}

            ///Default destructor, currently does nothing
            ~Texture(){}

            Result Init(Image *img, bool genMipMap = false);
            Result Init(const char *fileName, bool genMipMap = false);

            Result Release();

            void Set();

        private:
            unsigned int texID; ///< OpenGL texture ID
            bool hasMipMap;     ///< True if mipmap is generated for the texture

    };
};

#endif // TEXTURE_H

