47 QWaylandSharedTextureProvider();
48 ~QWaylandSharedTextureProvider() override;
50 QQuickImageResponse *requestImageResponse(
const QString &id,
const QSize &requestedSize) override;
51 void setExtensionReady(QWaylandTextureSharingExtension *extension);
54 QList<SharedTextureImageResponse*> m_pendingResponses;
58 :
public QWaylandCompositorExtensionTemplate<QWaylandTextureSharingExtension>
59 ,
public QtWaylandServer::zqt_texture_sharing_v1
62 Q_PROPERTY(QString imageSearchPath WRITE setImageSearchPath)
64 QWaylandTextureSharingExtension();
65 QWaylandTextureSharingExtension(QWaylandCompositor *compositor);
66 ~QWaylandTextureSharingExtension() override;
68 void initialize() override;
70 void setImageSearchPath(
const QString &path);
72 static QWaylandTextureSharingExtension *self() {
return s_self; }
75 void requestBuffer(
const QString &key);
78 void bufferResult(
const QString &key, QtWayland::ServerBuffer *buffer);
81 void cleanupBuffers();
84 void zqt_texture_sharing_v1_request_image(Resource *resource,
const QString &key) override;
85 void zqt_texture_sharing_v1_abandon_image(Resource *resource,
const QString &key) override;
86 void zqt_texture_sharing_v1_destroy_resource(Resource *resource) override;
88 virtual bool customPixelData(
const QString &key, QByteArray *data, QSize *size, uint *glInternalFormat)
93 Q_UNUSED(glInternalFormat);
98 QtWayland::ServerBuffer *getBuffer(
const QString &key);
99 bool initServerBufferIntegration();
100 QtWayland::ServerBuffer *getCompressedBuffer(
const QString &key);
101 QString getExistingFilePath(
const QString &key)
const;
102 void dumpBufferInfo();
106 BufferInfo(QtWayland::ServerBuffer *b =
nullptr) : buffer(b) {}
107 QtWayland::ServerBuffer *buffer =
nullptr;
108 bool usedLocally =
false;
111 QStringList m_image_dirs;
112 QStringList m_image_suffixes;
113 QHash<QString, BufferInfo> m_server_buffers;
114 QtWayland::ServerBufferIntegration *m_server_buffer_integration =
nullptr;
116 static QWaylandTextureSharingExtension *s_self;