kwin/src/scene/itemrenderer.h
Xaver Hugl d737ed6687 effects: introduce RenderTarget and RenderViewport
Instead of calling effects->renderTargetRect() and effects->renderTargetScale(),
pass the actually used render target and viewport in all the necessary methods.
This ensures that if an effect renders a screen with a modified scale or
projection matrix, the modified values get used instead of the "global" ones
2023-03-09 13:22:53 +00:00

42 lines
999 B
C++

/*
SPDX-FileCopyrightText: 2022 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <kwin_export.h>
#include <QMatrix4x4>
class QPainter;
namespace KWin
{
class ImageItem;
class Item;
class RenderTarget;
class RenderViewport;
class Scene;
class WindowPaintData;
class KWIN_EXPORT ItemRenderer
{
public:
ItemRenderer();
virtual ~ItemRenderer();
virtual QPainter *painter() const;
virtual void beginFrame(const RenderTarget &renderTarget, const RenderViewport &viewport);
virtual void endFrame();
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 ImageItem *createImageItem(Scene *scene, Item *parent = nullptr) = 0;
};
} // namespace KWin