diff options
author | Antti Määttä <antti.maatta@qt.io> | 2020-09-16 15:36:47 +0300 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2020-09-24 16:07:19 +0300 |
commit | e551c9d27febae3a874cfd4c54ff9811abce0fc7 (patch) | |
tree | 3a11a4646219208ec3d649f4af17d0502f6b79c4 /src/runtime | |
parent | 2cfefb01ed23dcff486014aba72d0d8208bcbc9a (diff) |
Unify source path usage in runtime
There are several fixes done to source paths before their usage, but they
are done in different places. Put these all into function and call this
function before using the source paths.
Task-number: QT3DS-4162
Change-Id: I0d3e3fd2db0cb11c6e9cb28fb3054568884059db
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Diffstat (limited to 'src/runtime')
-rw-r--r-- | src/runtime/Qt3DSApplication.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/runtime/Qt3DSApplication.cpp b/src/runtime/Qt3DSApplication.cpp index 6bc7b1b..5c6dbb7 100644 --- a/src/runtime/Qt3DSApplication.cpp +++ b/src/runtime/Qt3DSApplication.cpp @@ -350,11 +350,12 @@ struct STextureUploadRenderTask : public IRenderTask, public IImageLoadListener if (!m_deleteSet.isEmpty()) m_bufferManager.unloadSet(m_deleteSet); if (!m_uploadSet.isEmpty()) { - nvvector<CRegisteredString> sourcePaths(m_bufferManager.GetStringTable().GetAllocator(), - "TempSourcePathList"); + QVector<CRegisteredString> sourcePaths; for (auto &s : qAsConst(m_uploadSet)) sourcePaths.push_back(m_bufferManager.GetStringTable().RegisterStr(s)); - QT3DSU32 id = m_batchLoader.LoadImageBatch(sourcePaths, CRegisteredString(), + QT3DSU32 id = m_batchLoader.LoadImageBatch(toConstDataRef(sourcePaths.data(), + sourcePaths.size()), + CRegisteredString(), this, m_type, m_preferKtx, false); if (id) { m_batches[id] = m_uploadSet; @@ -362,11 +363,12 @@ struct STextureUploadRenderTask : public IRenderTask, public IImageLoadListener } } if (!m_uploadWaitSet.isEmpty()) { - nvvector<CRegisteredString> sourcePaths(m_bufferManager.GetStringTable().GetAllocator(), - "TempSourcePathList"); + QVector<CRegisteredString> sourcePaths; for (auto &s : qAsConst(m_uploadWaitSet)) sourcePaths.push_back(m_bufferManager.GetStringTable().RegisterStr(s)); - QT3DSU32 id = m_batchLoader.LoadImageBatch(sourcePaths, CRegisteredString(), + QT3DSU32 id = m_batchLoader.LoadImageBatch(toConstDataRef(sourcePaths.data(), + sourcePaths.size()), + CRegisteredString(), this, m_type, m_preferKtx, false); if (id) { m_batchLoader.BlockUntilLoaded(id); @@ -382,14 +384,16 @@ struct STextureUploadRenderTask : public IRenderTask, public IImageLoadListener m_uploadWaitSet.unite(set); else m_uploadSet.unite(set); - m_deleteSet.subtract(set); + const auto unified = IBufferManager::resolveImageSet(set, m_preferKtx); + m_deleteSet.subtract(unified); } void remove(const QSet<QString> &set) { + const auto unified = IBufferManager::resolveImageSet(set, m_preferKtx); QMutexLocker loc(&m_updateMutex); - m_uploadSet.subtract(set); - m_uploadWaitSet.subtract(set); - m_deleteSet.unite(set); + m_uploadSet.subtract(unified); + m_uploadWaitSet.subtract(unified); + m_deleteSet.unite(unified); } bool persistent() const override { @@ -402,7 +406,7 @@ struct STextureUploadRenderTask : public IRenderTask, public IImageLoadListener } void OnImageBatchComplete(QT3DSU64 inBatch) override { - m_bufferManager.loadSet(m_batches[inBatch]); + m_bufferManager.loadSet(m_batches[inBatch], m_flipCompressedTextures); } }; |