/* KWin - the KDE window manager This file is part of the KDE project. SPDX-FileCopyrightText: 2020 Xaver Hugl SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef EGLMULTIBACKEND_H #define EGLMULTIBACKEND_H #include "abstract_egl_drm_backend.h" namespace KWin { class EglMultiBackend : public OpenGLBackend { public: EglMultiBackend(AbstractEglDrmBackend *backend0); ~EglMultiBackend(); void init() override; QRegion beginFrame(int screenId) override; void endFrame(int screenId, const QRegion &damage, const QRegion &damagedRegion) override; bool scanout(int screenId, SurfaceItem *surfaceItem) override; bool makeCurrent() override; void doneCurrent() override; SceneOpenGLTexturePrivate *createBackendTexture(SceneOpenGLTexture *texture) override; QSharedPointer textureForOutput(AbstractOutput *requestedOutput) const override; void screenGeometryChanged(const QSize &size) override; void addBackend(AbstractEglDrmBackend *backend); bool directScanoutAllowed(int screen) const override; private: QVector m_backends; AbstractEglDrmBackend *findBackend(int screenId, int& internalScreenId) const; }; } #endif // EGLMULTIBACKEND_H