File indexing completed on 2024-06-23 05:25:14

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2022 Xaver Hugl <xaver.hugl@gmail.com>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 #pragma once
0010 
0011 #include <memory>
0012 
0013 namespace KWin
0014 {
0015 
0016 class DrmPipelineLayer;
0017 class DrmVirtualOutput;
0018 class DrmPipeline;
0019 class DrmOutputLayer;
0020 class DrmOverlayLayer;
0021 
0022 class DrmRenderBackend
0023 {
0024 public:
0025     virtual ~DrmRenderBackend() = default;
0026 
0027     virtual std::shared_ptr<DrmPipelineLayer> createPrimaryLayer(DrmPipeline *pipeline) = 0;
0028     virtual std::shared_ptr<DrmPipelineLayer> createCursorLayer(DrmPipeline *pipeline) = 0;
0029     virtual std::shared_ptr<DrmOutputLayer> createLayer(DrmVirtualOutput *output) = 0;
0030 };
0031 
0032 }