48 QWaylandSharedTextureProvider();
49 ~QWaylandSharedTextureProvider() override;
51 QQuickImageResponse *requestImageResponse(
const QString &id,
const QSize &requestedSize) override;
52 void setExtensionReady(QWaylandTextureSharingExtension *extension);
55 QList<SharedTextureImageResponse*> m_pendingResponses;
59 :
public QWaylandCompositorExtensionTemplate<QWaylandTextureSharingExtension>
60 ,
public QtWaylandServer::zqt_texture_sharing_v1
63 Q_PROPERTY(QString imageSearchPath WRITE setImageSearchPath)
65 QWaylandTextureSharingExtension();
66 QWaylandTextureSharingExtension(QWaylandCompositor *compositor);
67 ~QWaylandTextureSharingExtension() override;
69 void initialize() override;
71 void setImageSearchPath(
const QString &path);
73 static QWaylandTextureSharingExtension *self() {
return s_self; }
76 void requestBuffer(
const QString &key);
79 void bufferResult(
const QString &key, QtWayland::ServerBuffer *buffer);
82 void cleanupBuffers();
85 void zqt_texture_sharing_v1_request_image(Resource *resource,
const QString &key) override;
86 void zqt_texture_sharing_v1_abandon_image(Resource *resource,
const QString &key) override;
87 void zqt_texture_sharing_v1_destroy_resource(Resource *resource) override;
89 virtual bool customPixelData(
const QString &key, QByteArray *data, QSize *size, uint *glInternalFormat)
94 Q_UNUSED(glInternalFormat);
99 QtWayland::ServerBuffer *getBuffer(
const QString &key);
100 bool initServerBufferIntegration();
101 QtWayland::ServerBuffer *getCompressedBuffer(
const QString &key);
102 QString getExistingFilePath(
const QString &key)
const;
103 void dumpBufferInfo();
107 BufferInfo(QtWayland::ServerBuffer *b =
nullptr) : buffer(b) {}
108 QtWayland::ServerBuffer *buffer =
nullptr;
109 bool usedLocally =
false;
112 QStringList m_image_dirs;
113 QStringList m_image_suffixes;
114 QHash<QString, BufferInfo> m_server_buffers;
115 QtWayland::ServerBufferIntegration *m_server_buffer_integration =
nullptr;
117 static QWaylandTextureSharingExtension *s_self;