diff --git a/libs/vecr/include/psemek/vecr/renderer.hpp b/libs/vecr/include/psemek/vecr/renderer.hpp index 3f5890ec..ae9fceed 100644 --- a/libs/vecr/include/psemek/vecr/renderer.hpp +++ b/libs/vecr/include/psemek/vecr/renderer.hpp @@ -34,6 +34,8 @@ namespace psemek::vecr void clear(gfx::color_rgba const & color = {0, 0, 0, 0}); + void set_pixel(math::vector const & coords, gfx::color_rgba const & color); + void draw(primitive const & primitive); private: diff --git a/libs/vecr/source/renderer.cpp b/libs/vecr/source/renderer.cpp index ee4b294f..e6eb5789 100644 --- a/libs/vecr/source/renderer.cpp +++ b/libs/vecr/source/renderer.cpp @@ -54,6 +54,17 @@ namespace psemek::vecr need_resolve_ = false; } + void renderer::set_pixel(math::vector const & coords, gfx::color_rgba const & color) + { + for (std::size_t ty = 0; ty < samples_; ++ty) + { + for (std::size_t tx = 0; tx < samples_; ++tx) + { + canvas_(coords[0] * samples_ + tx, coords[1] * samples_ + ty) = color; + } + } + } + void renderer::draw(primitive const & primitive) { float const aa = primitive.blur / 2.f;