8e7a8c5a11
AbstractOutput is not so Abstract and it's common to avoid the word "Abstract" in class names as it doesn't contribute any new information. It also significantly reduces the line width in some places.
40 lines
775 B
C++
40 lines
775 B
C++
/*
|
|
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 Output;
|
|
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(Output *output) = 0;
|
|
virtual void present(Output *output) = 0;
|
|
};
|
|
|
|
} // namespace KWin
|