unsafe public static void Shutdown()
 {
     if (virtualArchiveFactory != null)
     {
         //crash
         //MyOgreVirtualArchiveFactory.Delete( virtualArchiveFactory );
         virtualArchiveFactory = null;
     }
 }
        ///////////////////////////////////////////

        unsafe public static void Init()
        {
            _openDelegate = open;

            _closeDelegate        = close;
            _readDelegate         = read;
            _skipDelegate         = skip;
            _seekDelegate         = seek;
            _tellDelegate         = tell;
            _findDelegate         = find;
            _findFileInfoDelegate = findFileInfo;
            _fileExistsDelegate   = fileExists;

            virtualArchiveFactory = (MyOgreVirtualArchiveFactory *)MyOgreVirtualArchiveFactory.New(
                RenderingSystem.realRoot, _openDelegate, _closeDelegate, _readDelegate, _skipDelegate,
                _seekDelegate, _tellDelegate, _findDelegate, _findFileInfoDelegate,
                _fileExistsDelegate);
            OgreArchiveManager.addArchiveFactory(virtualArchiveFactory);

            OgreResourceGroupManager.addResourceLocation(RenderingSystem.realRoot, VirtualFileSystem.Directories.Assets, "VirtualFileSystem", true);
        }