KWin
Loading...
Searching...
No Matches
itemrenderer.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2022 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include <kwin_export.h>
10
11#include <QMatrix4x4>
12#include <memory>
13
14class QPainter;
15
16namespace KWin
17{
18
19class ImageItem;
20class Item;
21class RenderTarget;
22class RenderViewport;
23class Scene;
24class WindowPaintData;
25
26class KWIN_EXPORT ItemRenderer
27{
28public:
30 virtual ~ItemRenderer();
31
32 virtual QPainter *painter() const;
33
34 virtual void beginFrame(const RenderTarget &renderTarget, const RenderViewport &viewport);
35 virtual void endFrame();
36
37 virtual void renderBackground(const RenderTarget &renderTarget, const RenderViewport &viewport, const QRegion &region) = 0;
38 virtual void renderItem(const RenderTarget &renderTarget, const RenderViewport &viewport, Item *item, int mask, const QRegion &region, const WindowPaintData &data) = 0;
39
40 virtual std::unique_ptr<ImageItem> createImageItem(Scene *scene, Item *parent = nullptr) = 0;
41};
42
43} // namespace KWin
virtual void renderBackground(const RenderTarget &renderTarget, const RenderViewport &viewport, const QRegion &region)=0
virtual void renderItem(const RenderTarget &renderTarget, const RenderViewport &viewport, Item *item, int mask, const QRegion &region, const WindowPaintData &data)=0
virtual std::unique_ptr< ImageItem > createImageItem(Scene *scene, Item *parent=nullptr)=0