KWin
Loading...
Searching...
No Matches
showfpseffect.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2006 Lubos Lunak <l.lunak@kde.org>
3 SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
4 SPDX-FileCopyrightText: 2022 Arjen Hiemstra <ahiemstra@heimr.nl>
5
6 SPDX-License-Identifier: GPL-2.0-or-later
7*/
8
9#pragma once
10
11#include "effect/effect.h"
13
14#include <QElapsedTimer>
15
16namespace KWin
17{
18
19class ShowFpsEffect : public Effect
20{
21 Q_OBJECT
22 Q_PROPERTY(int fps READ fps NOTIFY fpsChanged)
23 Q_PROPERTY(int maximumFps READ maximumFps NOTIFY maximumFpsChanged)
24 Q_PROPERTY(int paintDuration READ paintDuration NOTIFY paintChanged)
25 Q_PROPERTY(int paintAmount READ paintAmount NOTIFY paintChanged)
26 Q_PROPERTY(QColor paintColor READ paintColor NOTIFY paintChanged)
27
28public:
30 ~ShowFpsEffect() override;
31
32 int fps() const;
33 int maximumFps() const;
34 int paintDuration() const;
35 int paintAmount() const;
36 QColor paintColor() const;
37
38 void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override;
39 void paintScreen(const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion &region, Output *screen) override;
40 void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, KWin::WindowPaintData &data) override;
41 void postPaintScreen() override;
42
43 static bool supported();
44
45Q_SIGNALS:
46 void fpsChanged();
49
51 std::unique_ptr<OffscreenQuickScene> m_scene;
52
53 uint32_t m_maximumFps = 0;
54
55 int m_fps = 0;
56 int m_newFps = 0;
57 std::chrono::steady_clock::time_point m_lastFpsTime;
58
59 int m_paintDuration = 0;
60 int m_paintAmount = 0;
61 QElapsedTimer m_paintDurationTimer;
62};
63
64} // namespace KWin
Base class for all KWin effects.
Definition effect.h:535
Representation of a window used by/for Effect classes.
void postPaintScreen() override
void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, KWin::WindowPaintData &data) override
static bool supported()
void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override
void paintScreen(const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion &region, Output *screen) override
#define private