/* SPDX-FileCopyrightText: 2014 Martin Gräßlin SPDX-FileCopyrightText: 2018 David Edmundson SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL */ #pragma once #include #include #include #include #include #include #include struct wl_resource; namespace KWaylandServer { class ClientBufferIntegration; class ClientBuffer; class ClientConnection; class Display; class OutputInterface; class OutputDeviceV2Interface; class SeatInterface; struct ClientBufferDestroyListener; class DisplayPrivate { public: static DisplayPrivate *get(Display *display); DisplayPrivate(Display *q); void registerSocketName(const QString &socketName); void registerClientBuffer(ClientBuffer *clientBuffer); void unregisterClientBuffer(ClientBuffer *clientBuffer); Display *q; QSocketNotifier *socketNotifier = nullptr; wl_display *display = nullptr; wl_event_loop *loop = nullptr; bool running = false; QList outputs; QList outputdevicesV2; QVector seats; QVector clients; QStringList socketNames; EGLDisplay eglDisplay = EGL_NO_DISPLAY; QHash<::wl_resource *, ClientBuffer *> resourceToBuffer; QHash bufferToListener; QList bufferIntegrations; }; } // namespace KWaylandServer