private bool isDisposed = false; // To detect redundant calls protected virtual void Dispose(bool disposing) { if (!isDisposed) { if (disposing) { // TODO: delete managed state (managed objects). if (assimpExporter != null) { assimpExporter.Dispose(); assimpExporter = null; } if (context != null) { context.threads.Dispose(); context.threads = null; context.exporter = null; context.meshes.Clear(); } } // TODO: free unmanaged resources (unmanaged objects) and replace finalizer below. // TODO: set fields of large size with null value. isDisposed = true; } }
/// <summary> /// Constructor for context structure. /// </summary> /// <param name="e">The Assimp exporter to use for export.</param> public Context(global::Assimp.Exporter e) { threads = new Pool(); progress = new Progress(); meshes = new Dictionary <Mesh, uint>(); exporter = e; Clean(); }