KWin
Loading...
Searching...
No Matches
drm_layer.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2022 Xaver Hugl <xaver.hugl@gmail.com>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10#include "core/outputlayer.h"
11
12#include <QRegion>
13#include <memory>
14#include <optional>
15
16namespace KWin
17{
18
19class SurfaceItem;
20class DrmFramebuffer;
21class GLTexture;
22class DrmPipeline;
23
25{
26public:
27 virtual ~DrmOutputLayer();
28
29 virtual std::shared_ptr<GLTexture> texture() const;
30 virtual QRegion currentDamage() const;
31 virtual void releaseBuffers() = 0;
32};
33
35{
36public:
38
39 virtual bool checkTestBuffer() = 0;
40 virtual std::shared_ptr<DrmFramebuffer> currentBuffer() const = 0;
41 virtual bool hasDirectScanoutBuffer() const;
42
43protected:
45};
46}
virtual std::shared_ptr< GLTexture > texture() const
Definition drm_layer.cpp:25
virtual QRegion currentDamage() const
Definition drm_layer.cpp:20
virtual void releaseBuffers()=0
virtual ~DrmOutputLayer()
DrmPipeline *const m_pipeline
Definition drm_layer.h:44
DrmPipelineLayer(DrmPipeline *pipeline)
Definition drm_layer.cpp:30
virtual bool hasDirectScanoutBuffer() const
Definition drm_layer.cpp:35
virtual std::shared_ptr< DrmFramebuffer > currentBuffer() const =0
virtual bool checkTestBuffer()=0