summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Koskinen <janne.p.koskinen@qt.io>2021-03-30 12:41:02 +0300
committerJanne Koskinen <janne.p.koskinen@qt.io>2021-03-30 16:22:59 +0300
commit0c230118289f150754e1d044952c8007ec92904a (patch)
treeef35ca8fe2996aadc4d7eb0173e37a1f389aecb7
parent750e8694178554437fcf7eef1a03d7e4abc51471 (diff)
Fix crashing with missing OpenGL context
Safeguard. Loading sub-presentation with delayed loading causes resources to be loaded from job threads with no OpenGL context. Fixes: QT3DS-4213 Change-Id: I1b62741905284e2aacca63f832f3fa68bd784f8d Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r--src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp b/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
index a6123cb..b93cb80 100644
--- a/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
+++ b/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
@@ -676,6 +676,8 @@ struct SBufferManager : public IBufferManager
SLoadedTexture &inLoadedImage,
bool inForceScanForTransparency, bool inBsdfMipmaps) override
{
+ if (!QOpenGLContext::currentContext())
+ return SImageTextureData();
QT3DS_PERF_SCOPED_TIMER(m_PerfTimer, "BufferManager: Image Upload")
{
Mutex::ScopedLock __mapLocker(m_LoadedImageSetMutex);
@@ -1113,6 +1115,8 @@ struct SBufferManager : public IBufferManager
SRenderMesh *LoadMesh(CRegisteredString inMeshPath) override
{
+ if (!QOpenGLContext::currentContext())
+ return nullptr;
if (inMeshPath.IsValid() == false)
return nullptr;
pair<TMeshMap::iterator, bool> theMesh =