#pragma once #include #include #include namespace MC::Image { class RawImage { public: RawImage() : m_pixels(), m_width(0), m_height(0), m_channels(0) {}; explicit RawImage(size_t pixel_count, uint32_t width, uint32_t height, uint8_t channels) : m_pixels(), m_width(width), m_height(height), m_channels(channels) { m_pixels.reserve(pixel_count); } 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; private: std::vector m_pixels; uint32_t m_width, m_height; uint8_t m_channels; }; }