#ifndef GLTEXTURE_H
#define GLTEXTURE_H

#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <memory>
#include <functional>

class GLTexture {
public:
    GLTexture();
    ~GLTexture();

    void makeTexture();
    int bind(int unit);
    void bind();
    void setPixels(const unsigned char* data, int width, int height);
    void setPixelsRandom(int width, int height);
    void setPixelsEmpty();
    void setShape(int width, int height);
    int getHandle() const;

private:
    GLuint handle;
    //std::function<void(std::function<void()>)> glExecutor;
};

#endif