#pragma once #include "../GFX/Mesh.hpp" #include "../GFX/Image/RawImage.hpp" #include "../GFX/Texture.hpp" #include "../GFX/Shading/Program.hpp" namespace MC::Util { class ImageViewer { public: explicit ImageViewer(const GFX::Image::RawImage& image, Real window_aspect); void render(); private: static GFX::Mesh create_mesh(Real window_aspect, U32 image_width, U32 image_height); static constexpr Real view_size = 1000.0f; static const Char* vertex; static const Char* fragment; GFX::Mesh m_mesh; GFX::Shading::Program m_program; GFX::Texture m_texture; }; }