#ifndef DIGGLER_CLOUDS_HPP #define DIGGLER_CLOUDS_HPP #include #include "render/gl/OpenGL.hpp" #include #include "platform/Types.hpp" #include "render/gl/VBO.hpp" namespace diggler { class Game; class Texture; namespace render { namespace gl { class Program; } } class Clouds { private: static struct Renderer { const render::gl::Program *prog; GLint att_coord, att_texcoord, uni_mvp, uni_texshift; } R; std::vector> m_tex; render::gl::VBO m_vbo; int m_layers; Game *G; struct Coord { uint8 x, y, z, u, v; }; public: Clouds(Game *G, int w, int h, int layers); void render(const glm::mat4 &transform); ~Clouds(); }; } #endif /* DIGGLER_CLOUDS_HPP */