KWin
Loading...
Searching...
No Matches
renderlayerdelegate.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "effect/globals.h"
10#include "kwin_export.h"
11
12#include <QRegion>
13#include <chrono>
14
15namespace KWin
16{
17
18class RenderLayer;
19class RenderTarget;
20class RenderViewport;
21class SurfaceItem;
22class OutputFrame;
23
27class KWIN_EXPORT RenderLayerDelegate
28{
29public:
30 virtual ~RenderLayerDelegate() = default;
31
32 RenderLayer *layer() const;
33 void setLayer(RenderLayer *layer);
34
38 virtual void frame(OutputFrame *frame);
39
44 virtual QRegion prePaint();
45
50 virtual void postPaint();
51
56 virtual SurfaceItem *scanoutCandidate() const;
57
62 virtual void paint(const RenderTarget &renderTarget, const QRegion &region) = 0;
63
64private:
65 RenderLayer *m_layer = nullptr;
66};
67
68} // namespace KWin
virtual ~RenderLayerDelegate()=default
virtual void paint(const RenderTarget &renderTarget, const QRegion &region)=0