KWin
Loading...
Searching...
No Matches
drm_egl_cursor_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 "drm_layer.h"
11
12#include "drm_dmabuf_feedback.h"
14
15#include <QMap>
16#include <QPointer>
17#include <QRegion>
18#include <epoxy/egl.h>
19#include <optional>
20
21namespace KWin
22{
23
24class EglGbmBackend;
25
27{
28public:
29 EglGbmCursorLayer(EglGbmBackend *eglBackend, DrmPipeline *pipeline);
30
31 std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
32 bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override;
33 std::shared_ptr<DrmFramebuffer> currentBuffer() const override;
34 QRegion currentDamage() const override;
35 bool checkTestBuffer() override;
36 void releaseBuffers() override;
37 std::chrono::nanoseconds queryRenderTime() const override;
38 std::optional<QSize> fixedSize() const override;
39
40private:
41 EglGbmLayerSurface m_surface;
42};
43
44}
OpenGL Backend using Egl on a GBM surface.
std::chrono::nanoseconds queryRenderTime() const override
QRegion currentDamage() const override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
EglGbmCursorLayer(EglGbmBackend *eglBackend, DrmPipeline *pipeline)
std::optional< QSize > fixedSize() const override
std::shared_ptr< DrmFramebuffer > currentBuffer() const override
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override