]> git.lizzy.rs Git - irrlicht.git/blobdiff - source/Irrlicht/CSceneManager.cpp
Drop dependency on FileSystem from SceneManager
[irrlicht.git] / source / Irrlicht / CSceneManager.cpp
index 568c754359a9b9bd99594e665d860bdacd9fe758..8a16dd21a9248b51ccc3ab46d20028c0be362767 100644 (file)
@@ -33,9 +33,9 @@ namespace scene
 {\r
 \r
 //! constructor\r
-CSceneManager::CSceneManager(video::IVideoDriver* driver, io::IFileSystem* fs,\r
+CSceneManager::CSceneManager(video::IVideoDriver* driver,\r
                gui::ICursorControl* cursorControl, IMeshCache* cache)\r
-: ISceneNode(0, 0), Driver(driver), FileSystem(fs),\r
+: ISceneNode(0, 0), Driver(driver),\r
        CursorControl(cursorControl),\r
        ActiveCamera(0), ShadowColor(150,0,0,0), AmbientLight(0,0,0,0), Parameters(0),\r
        MeshCache(cache), CurrentRenderPass(ESNRP_NONE)\r
@@ -51,9 +51,6 @@ CSceneManager::CSceneManager(video::IVideoDriver* driver, io::IFileSystem* fs,
        if (Driver)\r
                Driver->grab();\r
 \r
-       if (FileSystem)\r
-               FileSystem->grab();\r
-\r
        if (CursorControl)\r
                CursorControl->grab();\r
 \r
@@ -92,9 +89,6 @@ CSceneManager::~CSceneManager()
        if (Driver)\r
                Driver->removeAllHardwareBuffers();\r
 \r
-       if (FileSystem)\r
-               FileSystem->drop();\r
-\r
        if (CursorControl)\r
                CursorControl->drop();\r
 \r
@@ -125,29 +119,6 @@ CSceneManager::~CSceneManager()
 }\r
 \r
 \r
-//! gets an animateable mesh. loads it if needed. returned pointer must not be dropped.\r
-IAnimatedMesh* CSceneManager::getMesh(const io::path& filename, const io::path& alternativeCacheName)\r
-{\r
-       io::path cacheName = alternativeCacheName.empty() ? filename : alternativeCacheName;\r
-       IAnimatedMesh* msh = MeshCache->getMeshByName(cacheName);\r
-       if (msh)\r
-               return msh;\r
-\r
-       io::IReadFile* file = FileSystem->createAndOpenFile(filename);\r
-       if (!file)\r
-       {\r
-               os::Printer::log("Could not load mesh, because file could not be opened: ", filename, ELL_ERROR);\r
-               return 0;\r
-       }\r
-\r
-       msh = getUncachedMesh(file, filename, cacheName);\r
-\r
-       file->drop();\r
-\r
-       return msh;\r
-}\r
-\r
-\r
 //! gets an animateable mesh. loads it if needed. returned pointer must not be dropped.\r
 IAnimatedMesh* CSceneManager::getMesh(io::IReadFile* file)\r
 {\r
@@ -202,15 +173,6 @@ video::IVideoDriver* CSceneManager::getVideoDriver()
 }\r
 \r
 \r
-//! Get the active FileSystem\r
-/** \return Pointer to the FileSystem\r
-This pointer should not be dropped. See IReferenceCounted::drop() for more information. */\r
-io::IFileSystem* CSceneManager::getFileSystem()\r
-{\r
-       return FileSystem;\r
-}\r
-\r
-\r
 //! adds a scene node for rendering a static mesh\r
 //! the returned pointer must not be dropped.\r
 IMeshSceneNode* CSceneManager::addMeshSceneNode(IMesh* mesh, ISceneNode* parent, s32 id,\r
@@ -875,7 +837,7 @@ IMeshCache* CSceneManager::getMeshCache()
 //! Creates a new scene manager.\r
 ISceneManager* CSceneManager::createNewSceneManager(bool cloneContent)\r
 {\r
-       CSceneManager* manager = new CSceneManager(Driver, FileSystem, CursorControl, MeshCache);\r
+       CSceneManager* manager = new CSceneManager(Driver, CursorControl, MeshCache);\r
 \r
        if (cloneContent)\r
                manager->cloneMembers(this, manager);\r
@@ -912,10 +874,9 @@ IMeshWriter* CSceneManager::createMeshWriter(EMESH_WRITER_TYPE type)
 \r
 \r
 // creates a scenemanager\r
-ISceneManager* createSceneManager(video::IVideoDriver* driver,\r
-               io::IFileSystem* fs, gui::ICursorControl* cursorcontrol)\r
+ISceneManager* createSceneManager(video::IVideoDriver* driver, gui::ICursorControl* cursorcontrol)\r
 {\r
-       return new CSceneManager(driver, fs, cursorcontrol, nullptr);\r
+       return new CSceneManager(driver, cursorcontrol, nullptr);\r
 }\r
 \r
 \r