class glw::Texture

Basic texture type.

#include <Texture.h>

class Texture {
public:
    // construction

    Texture();
    virtual ~Texture();

    // methods

    void Initialize(const gl::GLenum internal_format);
    void Enable();
    void Disable();
    void Unbind();
    void Bind();
    void Bind(const uint8_t binding_unit);
    gl::GLuint GetID();
    gl::GLenum GetInternalFormat();
    void SetFiltering(const Filtering mag_min);
    virtual void SetFiltering(const Filtering mag, const Filtering min);
    void SetWrapping(const Wrapping wrap_st);
    virtual void SetWrapping(const Wrapping wrap_s, const Wrapping wrap_t);
    virtual void SetParameteri(const gl::GLenum pname, const gl::GLint param);
    void SetParameterfv(const gl::GLenum pname, const gl::GLfloat* param);

protected:
    // methods

    virtual gl::GLenum GetTarget() = 0;
    virtual void ReserveMemory() = 0;
};