KWin
Loading...
Searching...
No Matches
screencastsource.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include <QObject>
10#include <spa/buffer/buffer.h>
11#include <spa/param/video/raw.h>
12
13namespace KWin
14{
15
16class GLFramebuffer;
17class GLTexture;
18
19class ScreenCastSource : public QObject
20{
21 Q_OBJECT
22
23public:
24 explicit ScreenCastSource(QObject *parent = nullptr);
25
26 virtual uint refreshRate() const = 0;
27 virtual bool hasAlphaChannel() const = 0;
28 virtual quint32 drmFormat() const = 0;
29 virtual QSize textureSize() const = 0;
30
31 virtual void render(GLFramebuffer *target) = 0;
32 virtual void render(spa_data *spa, spa_video_format format) = 0;
33 virtual std::chrono::nanoseconds clock() const = 0;
34
35Q_SIGNALS:
36 void closed();
37};
38
39} // namespace KWin
OpenGL framebuffer object.
virtual QSize textureSize() const =0
virtual void render(GLFramebuffer *target)=0
virtual uint refreshRate() const =0
ScreenCastSource(QObject *parent=nullptr)
virtual quint32 drmFormat() const =0
virtual void render(spa_data *spa, spa_video_format format)=0
virtual bool hasAlphaChannel() const =0
virtual std::chrono::nanoseconds clock() const =0
GLenum format
Definition gltexture.cpp:49