~aleteoryx/muditaos

muditaos/module-gui/gui/core/renderers/PixelRenderer.cpp -rw-r--r-- 897 bytes
a405cad6Aleteoryx trim readme 7 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md

#include "PixelRenderer.hpp"
#include "Context.hpp"

#include <cstring>

namespace gui::renderer
{
    static ColorScheme colorScheme = ::gui::Color::defaultColorScheme;

    void PixelRenderer::draw(Context *ctx, Point point, Color color)
    {
        const auto contextWidth = ctx->getW();
        const auto position     = point.y * contextWidth + point.x;

        std::memset(ctx->getData() + position, colorScheme.intensity[color.intensity], 1);
    }

    void PixelRenderer::updateColorScheme(const std::unique_ptr<ColorScheme> &scheme)
    {
        colorScheme = *scheme;
    }

    auto PixelRenderer::getColor(const uint8_t intensity) -> uint8_t
    {
        return colorScheme.intensity[intensity];
    }
} // namespace gui::renderer