From 0c230118289f150754e1d044952c8007ec92904a Mon Sep 17 00:00:00 2001 From: Janne Koskinen Date: Tue, 30 Mar 2021 12:41:02 +0300 Subject: Fix crashing with missing OpenGL context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ää --- src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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 theMesh = -- cgit v1.2.3