summary refs log tree commit diff
path: root/src/Util/ImageViewer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Util/ImageViewer.hpp')
-rw-r--r--src/Util/ImageViewer.hpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/Util/ImageViewer.hpp b/src/Util/ImageViewer.hpp
new file mode 100644
index 0000000..d583aa8
--- /dev/null
+++ b/src/Util/ImageViewer.hpp
@@ -0,0 +1,35 @@
+#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;
+};
+
+}
\ No newline at end of file