bfb60e3610
The main motivation behind this change is to unify render target representation across opengl and software renderers and avoid accessing the render backend directory in order to get the render target.
40 lines
799 B
C++
40 lines
799 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 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
|