diff --git a/simgear/scene/model/ModelRegistry.cxx b/simgear/scene/model/ModelRegistry.cxx index a1e6d32b..37c746cb 100644 --- a/simgear/scene/model/ModelRegistry.cxx +++ b/simgear/scene/model/ModelRegistry.cxx @@ -292,9 +292,10 @@ ModelRegistry::readImage(const string& fileName, Registry* registry = Registry::instance(); ReaderWriter::ReadResult res; - if (cache_active) { + const SGReaderWriterOptions* sgoptC = dynamic_cast(opt); + + if (cache_active && (!sgoptC || sgoptC->getLoadOriginHint() != SGReaderWriterOptions::LoadOriginHint::ORIGIN_SPLASH_SCREEN)) { if (fileExtension != "dds" && fileExtension != "gz") { - const SGReaderWriterOptions* sgoptC = dynamic_cast(opt); std::string root = getPathRoot(absFileName); std::string prr = getPathRelative(root, absFileName); diff --git a/simgear/scene/util/SGReaderWriterOptions.hxx b/simgear/scene/util/SGReaderWriterOptions.hxx index 940dd761..e22648f0 100644 --- a/simgear/scene/util/SGReaderWriterOptions.hxx +++ b/simgear/scene/util/SGReaderWriterOptions.hxx @@ -45,6 +45,7 @@ public: ORIGIN_MODEL, ORIGIN_EFFECTS, ORIGIN_EFFECTS_NORMALIZED, + ORIGIN_SPLASH_SCREEN, }; //SGReaderWriterOptions* cloneOptions(const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY) const { return static_cast(clone(copyop)); }