#pragma once #include #include #include #include #include "../../Util/Sampler.hpp" namespace MC::GFX::Image { class RawImage { public: RawImage() : m_pixels(), m_width(0), m_height(0) {}; RawImage(uint32_t width, uint32_t height) : m_pixels(), m_width(width), m_height(height) { m_pixels.reserve(width * height); } RawImage(Util::Sampler<2, float>& sampler, uint32_t width, uint32_t height); struct Pixel { uint8_t r, g, b; }; void add(Pixel pixel); size_t size() const; uint8_t* raw() const; uint32_t width() const; uint32_t height() const; uint8_t channels() const; std::string string() const; private: std::vector m_pixels; uint32_t m_width, m_height; uint8_t m_channels = 3; }; }