treeland/waylib/examples/blur/helper.h

58 lines
1.3 KiB
C++

// Copyright (C) 2024 UnionTech Software Technology Co., Ltd.
// SPDX-License-Identifier: Apache-2.0 OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#pragma once
#include <wglobal.h>
#include <wqmlcreator.h>
#include <QObject>
#include <QQmlEngine>
WAYLIB_SERVER_BEGIN_NAMESPACE
class WServer;
class WOutputRenderWindow;
class WQuickOutputLayout;
class WCursor;
class WSeat;
class WBackend;
WAYLIB_SERVER_END_NAMESPACE
QW_BEGIN_NAMESPACE
class qw_renderer;
class qw_allocator;
class qw_compositor;
QW_END_NAMESPACE
WAYLIB_SERVER_USE_NAMESPACE
QW_USE_NAMESPACE
class Q_DECL_HIDDEN Helper : public QObject
{
Q_OBJECT
Q_PROPERTY(WQmlCreator* outputCreator MEMBER m_outputCreator CONSTANT)
QML_ELEMENT
QML_SINGLETON
public:
explicit Helper(QObject *parent = nullptr);
void initProtocols(WOutputRenderWindow *window, QQmlEngine *qmlEngine);
inline WBackend *backend() const {
return m_backend;
}
private:
WServer *m_server = nullptr;
WQmlCreator *m_outputCreator = nullptr;
WBackend *m_backend = nullptr;
qw_renderer *m_renderer = nullptr;
qw_allocator *m_allocator = nullptr;
qw_compositor *m_compositor = nullptr;
WQuickOutputLayout *m_outputLayout = nullptr;
WCursor *m_cursor = nullptr;
QPointer<WSeat> m_seat;
};