summary refs log tree commit diff
path: root/src/Util
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2023-07-07 23:06:04 +0200
committerMel <einebeere@gmail.com>2023-07-07 23:15:01 +0200
commit27e590f716f063f603e170f6fc9dd66b8fc099ff (patch)
tree287300d97a771754ee389cf78389fbf61ccc914a /src/Util
parent129f2e421e16bd008cdca8713cc91f67d103d94e (diff)
downloadmeowcraft-27e590f716f063f603e170f6fc9dd66b8fc099ff.tar.zst
meowcraft-27e590f716f063f603e170f6fc9dd66b8fc099ff.zip
Fix Util::ImageViewer on aspect other than 1
Diffstat (limited to 'src/Util')
-rw-r--r--src/Util/ImageViewer.cpp8
-rw-r--r--src/Util/ImageViewer.hpp2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/Util/ImageViewer.cpp b/src/Util/ImageViewer.cpp
index f94ccd0..9720408 100644
--- a/src/Util/ImageViewer.cpp
+++ b/src/Util/ImageViewer.cpp
@@ -20,7 +20,7 @@ ImageViewer::ImageViewer(
 
     model_uniform.set(Math::MVP::model({}, {}));
     view_uniform.set(Math::MVP::view({}, {}));
-    projection_uniform.set(Math::MVP::orthographic_projection(1000 * window_aspect, 1000, 0.0f, 100.0f));
+    projection_uniform.set(Math::MVP::orthographic_projection(view_size * window_aspect, view_size, 0.0f, 100.0f));
 
     m_program.unbind();
 }
@@ -37,12 +37,12 @@ void ImageViewer::render() const {
 
 GFX::Mesh ImageViewer::create_mesh(float window_aspect, uint32_t image_width, uint32_t image_height) {
     auto aspect = (float)image_width / image_height;
-    float max_size = 500.0f;
+    float max_size = view_size * 0.8f;
     float width = max_size * std::min(1.0f, aspect);
     float height = max_size * std::min(1.0f, 1/aspect);
 
-    float x = max_size * window_aspect - width / 2.0f;
-    float y = max_size - height / 2.0f;
+    float x = (view_size * window_aspect - width) / 2.0f;
+    float y = (view_size - height) / 2.0f;
 
     return {{
         std::vector<Vector<3>>{
diff --git a/src/Util/ImageViewer.hpp b/src/Util/ImageViewer.hpp
index 59c0bf3..16ef2dd 100644
--- a/src/Util/ImageViewer.hpp
+++ b/src/Util/ImageViewer.hpp
@@ -16,6 +16,8 @@ public:
 private:
     static GFX::Mesh create_mesh(float window_aspect, uint32_t image_width, uint32_t image_height);
 
+    static constexpr float view_size = 1000.0f;
+
     static const char* vertex;
     static const char* fragment;