#ifndef PARADISO_BITMAP_HPP #define PARADISO_BITMAP_HPP #include "geometry.hpp" #include "globals.hpp" #include "rgba.hpp" #include #include namespace paradiso { struct Bitmap final { constexpr static Bitmap create(Size size) noexcept { return {.size = size, .data = std::vector{size.area()}}; } constexpr auto fill(const RGBA& color) noexcept { std::fill(data.begin(), data.end(), color); return *this; } constexpr RGBA& pixel(std::integral auto x, std::integral auto y) { return data[y * size.width + x]; } constexpr const RGBA& pixel(std::integral auto x, std::integral auto y) const { return data[y * size.width + x]; } Size size{.width = 0, .height = 0}; std::vector data{}; }; } // namespace paradiso #endif