File indexing completed on 2025-04-20 10:57:36
0001 /* 0002 KWin - the KDE window manager 0003 This file is part of the KDE project. 0004 0005 SPDX-FileCopyrightText: 2015 Martin Gräßlin <mgraesslin@kde.org> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 #pragma once 0010 #include "drm_dumb_swapchain.h" 0011 #include "drm_render_backend.h" 0012 #include "qpainterbackend.h" 0013 0014 #include <QObject> 0015 #include <QVector> 0016 0017 namespace KWin 0018 { 0019 0020 class DrmBackend; 0021 class DrmAbstractOutput; 0022 class DrmQPainterLayer; 0023 class DrmPipeline; 0024 0025 class DrmQPainterBackend : public QPainterBackend, public DrmRenderBackend 0026 { 0027 Q_OBJECT 0028 public: 0029 DrmQPainterBackend(DrmBackend *backend); 0030 ~DrmQPainterBackend(); 0031 0032 void present(Output *output) override; 0033 OutputLayer *primaryLayer(Output *output) override; 0034 0035 std::shared_ptr<DrmPipelineLayer> createPrimaryLayer(DrmPipeline *pipeline) override; 0036 std::shared_ptr<DrmOverlayLayer> createCursorLayer(DrmPipeline *pipeline) override; 0037 std::shared_ptr<DrmOutputLayer> createLayer(DrmVirtualOutput *output) override; 0038 0039 private: 0040 DrmBackend *m_backend; 0041 }; 0042 }