private void Dispose(bool manual) { if (!disposed) { if (manual) { Debug.Print("Disposing {0}", GetType()); joystick_driver.Dispose(); lock (SDL.Sync) { SDL.DelEventWatch(EventFilterDelegate, driver_handle); } DriverHandles.Remove(driver_handle); } else { Debug.WriteLine("Sdl2InputDriver leaked, did you forget to call Dispose()?"); } disposed = true; } }
void DestroyWindow() { exists = false; if (window.Handle != IntPtr.Zero) { CursorVisible = true; lock (SDL.Sync) { SDL.DelEventWatch(EventFilterDelegate, window.Handle); if (windows.ContainsKey(window_id)) { windows.Remove(window_id); } SDL.DestroyWindow(window.Handle); } } window_id = 0; window.Handle = IntPtr.Zero; }