summaryrefslogtreecommitdiffstats
path: root/src/runtime
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2020-09-16 15:36:47 +0300
committerAntti Määttä <antti.maatta@qt.io>2020-09-24 16:07:19 +0300
commite551c9d27febae3a874cfd4c54ff9811abce0fc7 (patch)
tree3a11a4646219208ec3d649f4af17d0502f6b79c4 /src/runtime
parent2cfefb01ed23dcff486014aba72d0d8208bcbc9a (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.cpp26
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);
}
};