Wayland cOMPositor written in C++ using Louvre.
1/* ========================================================================
2 *
3 * Filename: WOutput.hpp
4 * Description: W Compositor output class declaration
5 * GitHub Repo: https://github.com/diego-est/womp
6 * Author: Diego A. Estrada Rivera
7 * License: GPL-3.0
8 *
9 * ======================================================================== */
10#pragma once
11#include "prelude.hpp"
12#include <LOutput.h>
13#include <memory>
14
15using namespace Louvre;
16
17class WTopBar;
18
19class WOutput : public LOutput {
20 public:
21 WOutput() noexcept;
22
23 void initializeGL() noexcept override;
24 void moveGL() noexcept override;
25 void resizeGL() noexcept override;
26 void paintGL() noexcept override;
27 void uninitializeGL() noexcept override;
28
29 std::unique_ptr<LTextureView> wallpaperView;
30 void updateWallpaper() const noexcept;
31
32 void damageRenderingTest() noexcept;
33
34 fn calculateWallpaperRect(
35 LSize const& originalWallpaperSize) const noexcept -> LRect;
36
37 std::unique_ptr<WTopBar> topBar;
38};