X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fmainframe.cpp;h=8989da307ea3585e3a549c8cd0ff688a2deb4565;hb=e0b3d0ac5abc0cde0a74fadbd2aa4739b43b24a3;hp=a91dccdd93f8245ba377fc7b9b5ba71436ac142e;hpb=e6bf0d774eae887e2646c71d1c17a689bb287bf2;p=xonotic%2Fnetradiant.git diff --git a/radiant/mainframe.cpp b/radiant/mainframe.cpp index a91dccdd..8989da30 100644 --- a/radiant/mainframe.cpp +++ b/radiant/mainframe.cpp @@ -146,22 +146,33 @@ glwindow_globals_t g_glwindow_globals; // VFS + +bool g_vfsInitialized = false; + +void VFS_Init(){ + if ( g_vfsInitialized ) return; + QE_InitVFS(); + GlobalFileSystem().initialise(); + g_vfsInitialized = true; +} +void VFS_Shutdown(){ + if ( !g_vfsInitialized ) return; + GlobalFileSystem().shutdown(); + g_vfsInitialized = false; +} +void VFS_Restart(){ + VFS_Shutdown(); + VFS_Init(); +} + class VFSModuleObserver : public ModuleObserver { -std::size_t m_unrealised; public: -VFSModuleObserver() : m_unrealised( 1 ){ -} void realise(){ - if ( --m_unrealised == 0 ) { - QE_InitVFS(); - GlobalFileSystem().initialise(); - } + VFS_Init(); } void unrealise(){ - if ( ++m_unrealised == 1 ) { - GlobalFileSystem().shutdown(); - } + VFS_Shutdown(); } }; @@ -513,6 +524,7 @@ void gamemode_set( const char* gamemode ){ } } + #include "os/dir.h" class CLoadModule @@ -532,7 +544,9 @@ void operator()( const char* name ) const { }; const char* const c_library_extension = -#if defined( WIN32 ) +#if defined( CMAKE_SHARED_MODULE_SUFFIX ) + CMAKE_SHARED_MODULE_SUFFIX +#elif defined( WIN32 ) "dll" #elif defined ( __APPLE__ ) "dylib"