~aleteoryx/muditaos

ref: 0e8b4c848e3f87f3bbb1f64ef7460cf56017b87f muditaos/module-services/service-gui/RenderCache.cpp -rw-r--r-- 983 bytes
0e8b4c84 — Lefucjusz [BH-2108] Fix misaligned charging symbol 3 months 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
31
32
33
34
35
36
37
38
39
40
// 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 "RenderCache.hpp"

namespace service::gui
{
    std::optional<RenderReference> RenderCache::getCachedRender() const
    {
        return cachedRender;
    }

    bool RenderCache::isRenderCached() const noexcept
    {
        return cachedRender.has_value();
    }

    void RenderCache::cache(RenderReference render)
    {
        if (isRenderCached()) {
            exchange(render);
        }
        else {
            cachedRender = render;
        }
    }

    void RenderCache::exchange(RenderReference render)
    {
        if (cachedRender->refreshMode == ::gui::RefreshModes::GUI_REFRESH_DEEP) {
            render.refreshMode = cachedRender->refreshMode;
        }
        cachedRender = render;
    }

    void RenderCache::invalidate()
    {
        cachedRender = std::nullopt;
    }
} // namespace service::gui