37 return m_paintDuration;
47 auto normalizedDuration = std::min(1.0, m_paintDuration / 100.0);
48 return QColor::fromHsvF(0.3 - (0.3 * normalizedDuration), 1.0, 1.0);
57 m_paintDurationTimer.restart();
63 for (
auto screen : screens) {
74 m_scene = std::make_unique<OffscreenQuickScene>();
75 const auto url = QUrl::fromLocalFile(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral(
"kwin/effects/showfps/qml/main.qml")));
76 m_scene->setSource(url, {{QStringLiteral(
"effect"), QVariant::fromValue(
this)}});
84 auto now = std::chrono::steady_clock::now();
85 if ((now - m_lastFpsTime) >= std::chrono::milliseconds(1000)) {
93 m_scene->setGeometry(QRect(rect.x() + rect.width() - 300, 0, 300, 150));
103 QRegion repaintRegion = region & w->
frameGeometry().toRect();
104 repaintRegion -= m_scene->geometry();
105 for (
const QRect &rect : repaintRegion) {
106 m_paintAmount += rect.width() * rect.height();
114 m_paintDuration = m_paintDurationTimer.elapsed();
127#include "moc_showfpseffect.cpp"
Representation of a window used by/for Effect classes.
QRectF frameGeometry() const
void paintScreen(const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion ®ion, Output *screen)
Q_SCRIPTABLE void addRepaint(const QRectF &r)
void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, const QRegion ®ion, WindowPaintData &data)
void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime)
QList< Output * > screens() const
bool isOpenGLCompositing() const
Whether the Compositor is OpenGL based (either GL 1 or 2).
void renderOffscreenQuickView(const RenderTarget &renderTarget, const RenderViewport &viewport, OffscreenQuickView *effectQuickView) const
QRectF renderRect() const
void postPaintScreen() override
void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, KWin::WindowPaintData &data) override
void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override
~ShowFpsEffect() override
void paintScreen(const RenderTarget &renderTarget, const RenderViewport &viewport, int mask, const QRegion ®ion, Output *screen) override