// Clean up resources when live preview is disabled.
void CleanUp()
{
Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss:ffff") + " LivePreviewManager.CleanUp()");
live_preview_enabled = false;
if (effect != null)
{
if (effect.EffectData != null)
{
effect.EffectData.PropertyChanged -= EffectData_PropertyChanged;
}
effect = null !;
}
live_preview_surface?.Dispose();
live_preview_surface = null !;
if (renderer != null)
{
renderer.Dispose();
renderer = null !;
}
if (history_item != null)
{
history_item.Dispose();
history_item = null !;
}
// Hide progress dialog and clean up events.
var dialog = PintaCore.Chrome.ProgressDialog;
dialog.Hide();
dialog.Canceled -= HandleProgressDialogCancel;
PintaCore.Chrome.MainWindowBusy = false;
}