diff --git a/modules/base/rendering/screenspaceimage.cpp b/modules/base/rendering/screenspaceimage.cpp index bf2dc21cbe..b0106d129a 100644 --- a/modules/base/rendering/screenspaceimage.cpp +++ b/modules/base/rendering/screenspaceimage.cpp @@ -104,8 +104,8 @@ void ScreenSpaceImage::render() { } void ScreenSpaceImage::update() { - bool futureReady = DownloadManager::futureReady(_futureImage); - if (_downloadImage && _futureImage.valid() && futureReady) { + bool download = _downloadImage ? (_futureImage.valid() && DownloadManager::futureReady(_futureImage)) : true; + if (download) { loadTexture(); } } diff --git a/modules/onscreengui/src/gui.cpp b/modules/onscreengui/src/gui.cpp index ae57b6d9b5..3e08132fca 100644 --- a/modules/onscreengui/src/gui.cpp +++ b/modules/onscreengui/src/gui.cpp @@ -153,7 +153,7 @@ void addScreenSpaceRenderable(std::string texturePath) { return; } std::string luaTable = - "{Type = 'ScreenSpaceImage', TexturePath = '+" + absPath(texturePath) + " ' }"; + "{Type = 'ScreenSpaceImage', TexturePath = '" + absPath(texturePath) + "' }"; std::string script = "openspace.registerScreenSpaceRenderable(" + luaTable + ");"; OsEng.scriptEngine().queueScript(script); } diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp index 5ca6d5e33f..6424492546 100644 --- a/src/rendering/renderengine.cpp +++ b/src/rendering/renderengine.cpp @@ -1122,7 +1122,8 @@ void RenderEngine::setDisableRenderingOnMaster(bool enabled) { _disableMasterRendering = enabled; } -void RenderEngine::registerScreenSpaceRenderable(std::shared_ptr s){ +void RenderEngine::registerScreenSpaceRenderable(std::shared_ptr s) +{ s->initialize(); _screenSpaceRenderables.push_back(s); } diff --git a/src/scripting/scriptengine.cpp b/src/scripting/scriptengine.cpp index 32156b5262..8896d83b57 100644 --- a/src/scripting/scriptengine.cpp +++ b/src/scripting/scriptengine.cpp @@ -644,8 +644,7 @@ void ScriptEngine::deserialize(SyncBuffer* syncBuffer){ } } -void ScriptEngine::postSynchronizationPreDraw(){ - +void ScriptEngine::postSynchronizationPreDraw() { std::vector scripts; _mutex.lock(); @@ -653,14 +652,20 @@ void ScriptEngine::postSynchronizationPreDraw(){ _receivedScripts.clear(); _mutex.unlock(); - while (!scripts.empty()){ - runScript(scripts.back()); - scripts.pop_back(); + while (!scripts.empty()) { + try { + const std::string& script = scripts.back(); + scripts.pop_back(); + runScript(script); + } + catch (const ghoul::RuntimeError& e) { + LERRORC(e.component, e.message); + } } } -void ScriptEngine::preSynchronization(){ +void ScriptEngine::preSynchronization() { _mutex.lock();