diff options
Diffstat (limited to 'source/Irrlicht/CSceneManager.cpp')
-rw-r--r-- | source/Irrlicht/CSceneManager.cpp | 69 |
1 files changed, 8 insertions, 61 deletions
diff --git a/source/Irrlicht/CSceneManager.cpp b/source/Irrlicht/CSceneManager.cpp index e22ddd5..8a16dd2 100644 --- a/source/Irrlicht/CSceneManager.cpp +++ b/source/Irrlicht/CSceneManager.cpp @@ -33,10 +33,9 @@ namespace scene {
//! constructor
-CSceneManager::CSceneManager(video::IVideoDriver* driver, io::IFileSystem* fs,
- gui::ICursorControl* cursorControl, IMeshCache* cache,
- gui::IGUIEnvironment* gui)
-: ISceneNode(0, 0), Driver(driver), FileSystem(fs), GUIEnvironment(gui),
+CSceneManager::CSceneManager(video::IVideoDriver* driver,
+ gui::ICursorControl* cursorControl, IMeshCache* cache)
+: ISceneNode(0, 0), Driver(driver),
CursorControl(cursorControl),
ActiveCamera(0), ShadowColor(150,0,0,0), AmbientLight(0,0,0,0), Parameters(0),
MeshCache(cache), CurrentRenderPass(ESNRP_NONE)
@@ -52,15 +51,9 @@ CSceneManager::CSceneManager(video::IVideoDriver* driver, io::IFileSystem* fs, if (Driver)
Driver->grab();
- if (FileSystem)
- FileSystem->grab();
-
if (CursorControl)
CursorControl->grab();
- if (GUIEnvironment)
- GUIEnvironment->grab();
-
// create mesh cache if not there already
if (!MeshCache)
MeshCache = new CMeshCache();
@@ -79,8 +72,8 @@ CSceneManager::CSceneManager(video::IVideoDriver* driver, io::IFileSystem* fs, // TODO: now that we have multiple scene managers, these should be
// shallow copies from the previous manager if there is one.
- MeshLoaderList.push_back(new CXMeshFileLoader(this, FileSystem));
- MeshLoaderList.push_back(new COBJMeshFileLoader(this, FileSystem));
+ MeshLoaderList.push_back(new CXMeshFileLoader(this));
+ MeshLoaderList.push_back(new COBJMeshFileLoader(this));
MeshLoaderList.push_back(new CB3DMeshFileLoader(this));
}
@@ -96,18 +89,12 @@ CSceneManager::~CSceneManager() if (Driver)
Driver->removeAllHardwareBuffers();
- if (FileSystem)
- FileSystem->drop();
-
if (CursorControl)
CursorControl->drop();
if (CollisionManager)
CollisionManager->drop();
- if (GUIEnvironment)
- GUIEnvironment->drop();
-
u32 i;
for (i=0; i<MeshLoaderList.size(); ++i)
MeshLoaderList[i]->drop();
@@ -133,29 +120,6 @@ CSceneManager::~CSceneManager() //! gets an animateable mesh. loads it if needed. returned pointer must not be dropped.
-IAnimatedMesh* CSceneManager::getMesh(const io::path& filename, const io::path& alternativeCacheName)
-{
- io::path cacheName = alternativeCacheName.empty() ? filename : alternativeCacheName;
- IAnimatedMesh* msh = MeshCache->getMeshByName(cacheName);
- if (msh)
- return msh;
-
- io::IReadFile* file = FileSystem->createAndOpenFile(filename);
- if (!file)
- {
- os::Printer::log("Could not load mesh, because file could not be opened: ", filename, ELL_ERROR);
- return 0;
- }
-
- msh = getUncachedMesh(file, filename, cacheName);
-
- file->drop();
-
- return msh;
-}
-
-
-//! gets an animateable mesh. loads it if needed. returned pointer must not be dropped.
IAnimatedMesh* CSceneManager::getMesh(io::IReadFile* file)
{
if (!file)
@@ -209,21 +173,6 @@ video::IVideoDriver* CSceneManager::getVideoDriver() }
-//! returns the GUI Environment
-gui::IGUIEnvironment* CSceneManager::getGUIEnvironment()
-{
- return GUIEnvironment;
-}
-
-//! Get the active FileSystem
-/** \return Pointer to the FileSystem
-This pointer should not be dropped. See IReferenceCounted::drop() for more information. */
-io::IFileSystem* CSceneManager::getFileSystem()
-{
- return FileSystem;
-}
-
-
//! adds a scene node for rendering a static mesh
//! the returned pointer must not be dropped.
IMeshSceneNode* CSceneManager::addMeshSceneNode(IMesh* mesh, ISceneNode* parent, s32 id,
@@ -888,7 +837,7 @@ IMeshCache* CSceneManager::getMeshCache() //! Creates a new scene manager.
ISceneManager* CSceneManager::createNewSceneManager(bool cloneContent)
{
- CSceneManager* manager = new CSceneManager(Driver, FileSystem, CursorControl, MeshCache, GUIEnvironment);
+ CSceneManager* manager = new CSceneManager(Driver, CursorControl, MeshCache);
if (cloneContent)
manager->cloneMembers(this, manager);
@@ -925,11 +874,9 @@ IMeshWriter* CSceneManager::createMeshWriter(EMESH_WRITER_TYPE type) // creates a scenemanager
-ISceneManager* createSceneManager(video::IVideoDriver* driver,
- io::IFileSystem* fs, gui::ICursorControl* cursorcontrol,
- gui::IGUIEnvironment *guiEnvironment)
+ISceneManager* createSceneManager(video::IVideoDriver* driver, gui::ICursorControl* cursorcontrol)
{
- return new CSceneManager(driver, fs, cursorcontrol, 0, guiEnvironment );
+ return new CSceneManager(driver, cursorcontrol, nullptr);
}
|