unsafe static void close(void */*MyOgreVirtualDataStream*/ stream) { VirtualFileStream s = GetStreamByOgreStream(stream); s.Dispose(); bool removed = openedStreams.Remove((IntPtr)stream); Trace.Assert(removed); if (lastOpenedOgreStream == stream) { lastOpenedOgreStream = null; lastOpenedStream = null; } //Log.Info( "totalTime: {0}, openings: {1}, calls: {2}", totalTime, openings, calls ); }
void CreateOggFile() { PreloadNativeLibraries(); DestroyOggFile(); var fileName = FileName.Value?.ResourceName; if (string.IsNullOrEmpty(fileName)) { return; } VirtualFileStream stream = null; try { stream = VirtualFile.Open(fileName); oggFile = new OggFile(); oggFile.Volume = Volume; bool sound3D = ParentContainer.Transform3D != null; // is UIContainer3D; oggFile.Init(stream, new MyVideoDriver(videoBuffer), new MyAudioDriver(), sound3D); } catch (Exception ex) { if (!noLogErrorAtLoading) { Log.Warning(string.Format("UIVideo: CreateOggFile: Error: {0} ({1}).", ex.Message, fileName)); } if (oggFile != null) { oggFile.Dispose(); oggFile = null; } if (stream != null) { stream.Dispose(); } return; } if (oggFile.VideoDriver == null) { oggFile.Dispose(); oggFile = null; } if (oggFile == null) { return; } UpdateOggFileSoundPosition(); oggFile.Pause = Pause; }