summaryrefslogtreecommitdiff
path: root/src/Util
diff options
context:
space:
mode:
Diffstat (limited to 'src/Util')
-rw-r--r--src/Util/ImageViewer.cpp8
-rw-r--r--src/Util/ImageViewer.hpp10
-rw-r--r--src/Util/Sampler.hpp36
3 files changed, 9 insertions, 45 deletions
diff --git a/src/Util/ImageViewer.cpp b/src/Util/ImageViewer.cpp
index 7fd5867..f94ccd0 100644
--- a/src/Util/ImageViewer.cpp
+++ b/src/Util/ImageViewer.cpp
@@ -5,12 +5,12 @@
namespace MC::Util {
ImageViewer::ImageViewer(
- GFX::Image::RawImage& image,
+ const GFX::Image::RawImage& image,
float window_aspect
) : m_texture(image),
m_program(
- {GFX::Shading::Shader::Type::Vertex, ImageViewer::vertex},
- {GFX::Shading::Shader::Type::Fragment, ImageViewer::fragment}
+ {GFX::Shading::Shader::Type::Vertex, vertex},
+ {GFX::Shading::Shader::Type::Fragment, fragment}
),
m_mesh(GFX::Binder::load(create_mesh(window_aspect, image.width(), image.height()))) {
m_program.bind();
@@ -25,7 +25,7 @@ ImageViewer::ImageViewer(
m_program.unbind();
}
-void ImageViewer::render() {
+void ImageViewer::render() const {
m_program.bind();
m_texture.bind();
m_mesh.bind();
diff --git a/src/Util/ImageViewer.hpp b/src/Util/ImageViewer.hpp
index 2e4efe3..59c0bf3 100644
--- a/src/Util/ImageViewer.hpp
+++ b/src/Util/ImageViewer.hpp
@@ -10,18 +10,18 @@ namespace MC::Util {
class ImageViewer {
public:
- explicit ImageViewer(GFX::Image::RawImage& image, float window_aspect);
+ explicit ImageViewer(const GFX::Image::RawImage& image, float window_aspect);
- void render();
+ void render() const;
private:
static GFX::Mesh create_mesh(float window_aspect, uint32_t image_width, uint32_t image_height);
static const char* vertex;
static const char* fragment;
- MC::GFX::BindableMesh m_mesh;
- MC::GFX::Shading::Program m_program;
- MC::GFX::Texture m_texture;
+ GFX::BindableMesh m_mesh;
+ GFX::Shading::Program m_program;
+ GFX::Texture m_texture;
};
} \ No newline at end of file
diff --git a/src/Util/Sampler.hpp b/src/Util/Sampler.hpp
deleted file mode 100644
index 3a4ff4f..0000000
--- a/src/Util/Sampler.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include <functional>
-#include "../Math/Vector.hpp"
-#include "../Math/Grid.hpp"
-
-namespace MC::Util {
-
-template<size_t D, typename T>
-class Sampler {
- using Pos = Vector<D>;
- using Sample = std::function<T(Pos)>;
- using Interpolate = std::function<T(Pos, Sample)>;
-public:
- Sampler(
- Sample sample,
- Pos offset = {},
- float scale = 1.0f,
- Interpolate interpolate = nearest_interpolation
- ) : m_sample([=](Sampler::Pos pos) -> T {
- return interpolate(pos, [=](Sampler::Pos p) -> T { return sample(p * scale + offset); });
- }) {}
-
- T sample(Pos at) {
- return m_sample(at);
- }
-
- static T nearest_interpolation(Pos pos, Sample sample) {
- return sample(pos);
- }
-
-private:
- Sample m_sample;
-};
-
-} \ No newline at end of file