diff options
author | Janne Koskinen <janne.p.koskinen@qt.io> | 2021-03-30 12:41:02 +0300 |
---|---|---|
committer | Janne Koskinen <janne.p.koskinen@qt.io> | 2021-03-30 16:22:59 +0300 |
commit | 0c230118289f150754e1d044952c8007ec92904a (patch) | |
tree | ef35ca8fe2996aadc4d7eb0173e37a1f389aecb7 /src | |
parent | 750e8694178554437fcf7eef1a03d7e4abc51471 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp | 4 |
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 = |