#pragma once #include "../GFX/Image/RawImage.hpp" #include "../GFX/Binder.hpp" #include "../GFX/Texture.hpp" #include "../GFX/Shading/Program.hpp" namespace MC::Util { class ImageViewer { public: explicit ImageViewer( GFX::Image::RawImage& image ) : m_texture(image), m_program( {GFX::Shading::Shader::Type::Vertex, ImageViewer::vertex}, {GFX::Shading::Shader::Type::Fragment, ImageViewer::fragment} ), m_mesh(GFX::Binder::load(default_mesh)) {}; void render(); private: static GFX::Mesh create_default_mesh(); static inline GFX::Mesh default_mesh = create_default_mesh(); static const char* vertex; static const char* fragment; MC::GFX::BindableMesh m_mesh; MC::GFX::Shading::Program m_program; MC::GFX::Texture m_texture; }; }