2021-11-10 10:34:18 +00:00
|
|
|
/*
|
|
|
|
SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
|
|
|
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "kwinglobals.h"
|
2022-04-12 08:16:27 +00:00
|
|
|
#include "rendertarget.h"
|
2021-11-10 10:34:18 +00:00
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
namespace KWin
|
|
|
|
{
|
|
|
|
|
2022-04-14 12:33:28 +00:00
|
|
|
class Output;
|
2021-11-11 09:48:43 +00:00
|
|
|
class OverlayWindow;
|
2022-04-06 14:36:22 +00:00
|
|
|
class OutputLayer;
|
2021-11-11 09:48:43 +00:00
|
|
|
|
2021-11-10 10:34:18 +00:00
|
|
|
/**
|
|
|
|
* The RenderBackend class is the base class for all rendering backends.
|
|
|
|
*/
|
|
|
|
class KWIN_EXPORT RenderBackend : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
explicit RenderBackend(QObject *parent = nullptr);
|
|
|
|
|
|
|
|
virtual CompositingType compositingType() const = 0;
|
2021-11-11 09:48:43 +00:00
|
|
|
virtual OverlayWindow *overlayWindow() const;
|
2021-11-11 11:24:02 +00:00
|
|
|
|
2021-12-31 11:51:42 +00:00
|
|
|
virtual bool checkGraphicsReset();
|
|
|
|
|
2022-04-14 12:33:28 +00:00
|
|
|
virtual OutputLayer *primaryLayer(Output *output) = 0;
|
|
|
|
virtual void present(Output *output) = 0;
|
2021-11-10 10:34:18 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace KWin
|