KWayland

eglstream_controller_interface.h
1 /*
2  SPDX-FileCopyrightText: 2019 NVIDIA Inc.
3 
4  SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6 #ifndef WAYLAND_SERVER_EGLSTREAM_CONTROLLER_INTERFACE_H
7 #define WAYLAND_SERVER_EGLSTREAM_CONTROLLER_INTERFACE_H
8 
9 #include "global.h"
10 #include "surface_interface.h"
11 
12 #include <KWayland/Server/kwaylandserver_export.h>
13 #include <QObject>
14 #include <wayland-util.h>
15 
16 namespace KWayland
17 {
18 namespace Server
19 {
20 class Display;
21 
22 /**
23  * @brief Represents the Global for the wl_eglstream_controller interface.
24  *
25  * This class handles requests (typically from the NVIDIA EGL driver) to attach
26  * a newly created EGL Stream to a Wayland surface, facilitating the sharing
27  * of buffer contents between client and compositor.
28  *
29  */
30 class KWAYLANDSERVER_EXPORT EglStreamControllerInterface : public Global
31 {
32  Q_OBJECT
33 public:
34  ~EglStreamControllerInterface() override;
35  void create();
36 
37 Q_SIGNALS:
38  /**
39  * Emitted when a new stream attach request is received.
40  */
41  void streamConsumerAttached(SurfaceInterface *surface, void *eglStream, wl_array *attribs);
42 
43 private:
44  explicit EglStreamControllerInterface(Display *display, QObject *parent = nullptr);
45 
46  class Private;
47  friend class Display;
48 };
49 
50 }
51 }
52 
53 #endif
Class holding the Wayland server display loop.
Definition: display.h:86
Base class for all Globals.
Definition: global.h:46
Represents the Global for the wl_eglstream_controller interface.
Resource representing a wl_surface.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sat Sep 30 2023 04:08:49 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.