diff options
author | Jonas Karlsson <jonas.karlsson@qt.io> | 2021-01-21 12:45:55 +0100 |
---|---|---|
committer | Jonas Karlsson <jonas.karlsson@qt.io> | 2021-01-21 18:32:27 +0100 |
commit | 1da34aa31ebebbbf96607e82da577c44e8905c15 (patch) | |
tree | 8d2ae96678500fd615fe77919867bffd8ef564ca | |
parent | b3c2f8e6d478cd080653000378ae1392a3baef25 (diff) | |
download | qtwayland-1da34aa31ebebbbf96607e82da577c44e8905c15.tar.gz |
Use new QTextureFileData::getDataView method
Change-Id: I18b96d3ca6c539af811027b6d854dd77251523ed
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
4 files changed, 12 insertions, 8 deletions
diff --git a/src/compositor/extensions/qwltexturesharingextension.cpp b/src/compositor/extensions/qwltexturesharingextension.cpp index c90fde1e..3ce6ff63 100644 --- a/src/compositor/extensions/qwltexturesharingextension.cpp +++ b/src/compositor/extensions/qwltexturesharingextension.cpp @@ -404,9 +404,8 @@ QtWayland::ServerBuffer *QWaylandTextureSharingExtension::getCompressedBuffer(co return nullptr; } - QByteArray pixelData = QByteArray::fromRawData(td.data().constData() + td.dataOffset(), td.dataLength()); - - return m_server_buffer_integration->createServerBufferFromData(pixelData, td.size(), td.glInternalFormat()); + return m_server_buffer_integration->createServerBufferFromData(td.getDataView(), td.size(), + td.glInternalFormat()); } void QWaylandTextureSharingExtension::cleanupBuffers() diff --git a/src/compositor/hardware_integration/qwlserverbufferintegration_p.h b/src/compositor/hardware_integration/qwlserverbufferintegration_p.h index 96efd9e4..c1b044ba 100644 --- a/src/compositor/hardware_integration/qwlserverbufferintegration_p.h +++ b/src/compositor/hardware_integration/qwlserverbufferintegration_p.h @@ -97,9 +97,10 @@ public: virtual bool supportsFormat(ServerBuffer::Format format) const = 0; virtual ServerBuffer *createServerBufferFromImage(const QImage &qimage, ServerBuffer::Format format) = 0; - virtual ServerBuffer *createServerBufferFromData(const QByteArray &data, const QSize &size, uint glInternalFormat) + virtual ServerBuffer *createServerBufferFromData(QByteArrayView view, const QSize &size, + uint glInternalFormat) { - Q_UNUSED(data); + Q_UNUSED(view); Q_UNUSED(size); Q_UNUSED(glInternalFormat); return nullptr; diff --git a/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp b/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp index 4f8830ef..81fc152a 100644 --- a/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp +++ b/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp @@ -294,14 +294,17 @@ QtWayland::ServerBuffer *VulkanServerBufferIntegration::createServerBufferFromIm return new VulkanServerBuffer(this, qimage, format); } -QtWayland::ServerBuffer *VulkanServerBufferIntegration::createServerBufferFromData(const QByteArray &data, const QSize &size, uint glInternalFormat) +QtWayland::ServerBuffer * +VulkanServerBufferIntegration::createServerBufferFromData(QByteArrayView view, const QSize &size, + uint glInternalFormat) { if (!m_vulkanWrapper) { CurrentContext current; m_vulkanWrapper = new VulkanWrapper(current.context()); } - auto *vImage = m_vulkanWrapper->createTextureImageFromData(reinterpret_cast<const uchar*>(data.constData()), data.size(), size, glInternalFormat); + auto *vImage = m_vulkanWrapper->createTextureImageFromData( + reinterpret_cast<const uchar *>(view.constData()), view.size(), size, glInternalFormat); if (vImage) return new VulkanServerBuffer(this, vImage, glInternalFormat, size); diff --git a/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.h b/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.h index 6e2c51dd..089fc262 100644 --- a/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.h +++ b/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.h @@ -90,7 +90,8 @@ public: bool supportsFormat(QtWayland::ServerBuffer::Format format) const override; QtWayland::ServerBuffer *createServerBufferFromImage(const QImage &qimage, QtWayland::ServerBuffer::Format format) override; - QtWayland::ServerBuffer *createServerBufferFromData(const QByteArray &data, const QSize &size, uint glInternalFormat) override; + QtWayland::ServerBuffer *createServerBufferFromData(QByteArrayView view, const QSize &size, + uint glInternalFormat) override; private: VulkanWrapper *m_vulkanWrapper = nullptr; |