From 310ca2b4a305100691040b57cafdc75573038880 Mon Sep 17 00:00:00 2001 From: Pavel Rojtberg Date: Tue, 9 Apr 2019 11:28:50 +0200 Subject: [PATCH] ovis: addResourceLocation - only retain unique locations --- modules/ovis/src/ovis.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/ovis/src/ovis.cpp b/modules/ovis/src/ovis.cpp index 50108b705..65a4a19b9 100644 --- a/modules/ovis/src/ovis.cpp +++ b/modules/ovis/src/ovis.cpp @@ -22,7 +22,7 @@ const char* RESOURCEGROUP_NAME = "OVIS"; Ptr _app; static const char* RENDERSYSTEM_NAME = "OpenGL 3+ Rendering Subsystem"; -static std::vector _extraResourceLocations; +static std::set _extraResourceLocations; // convert from OpenCV to Ogre coordinates: static Quaternion toOGRE(Degree(180), Vector3::UNIT_X); @@ -245,10 +245,9 @@ struct Application : public OgreBites::ApplicationContext, public OgreBites::Inp ResourceGroupManager& rgm = ResourceGroupManager::getSingleton(); rgm.createResourceGroup(RESOURCEGROUP_NAME); - for (size_t i = 0; i < _extraResourceLocations.size(); i++) + for (auto loc :_extraResourceLocations) { - String loc = _extraResourceLocations[i]; - String type = StringUtil::endsWith(loc, ".zip") ? "Zip" : "FileSystem"; + const char* type = StringUtil::endsWith(loc, ".zip") ? "Zip" : "FileSystem"; if (!FileSystemLayer::fileExists(loc)) { @@ -786,7 +785,10 @@ public: } }; -CV_EXPORTS_W void addResourceLocation(const String& path) { _extraResourceLocations.push_back(path); } +CV_EXPORTS_W void addResourceLocation(const String& path) +{ + _extraResourceLocations.insert(Ogre::StringUtil::normalizeFilePath(path, false)); +} Ptr createWindow(const String& title, const Size& size, int flags) {