kwin/src/renderbackend.h

41 lines
799 B
C
Raw Normal View History

/*
SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include "kwinglobals.h"
#include "rendertarget.h"
#include <QObject>
namespace KWin
{
class AbstractOutput;
class OverlayWindow;
class OutputLayer;
/**
* 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;
virtual OverlayWindow *overlayWindow() const;
virtual bool checkGraphicsReset();
virtual OutputLayer *primaryLayer(AbstractOutput *output) = 0;
virtual void present(AbstractOutput *output) = 0;
};
} // namespace KWin