public static extern Int32 PollEvent(out SDL_Event @event);
private static unsafe Int32 SDLEventFilter(IntPtr userdata, SDL_Event* @event) { var uv = RequestCurrent(); if (uv == null) return 1; switch (@event->type) { case SDL_EventType.APP_TERMINATING: uv.Messages.PublishImmediate(UltravioletMessages.ApplicationTerminating, null); return 0; case SDL_EventType.APP_WILLENTERBACKGROUND: uv.Messages.PublishImmediate(UltravioletMessages.ApplicationSuspending, null); return 0; case SDL_EventType.APP_DIDENTERBACKGROUND: uv.Messages.PublishImmediate(UltravioletMessages.ApplicationSuspended, null); return 0; case SDL_EventType.APP_WILLENTERFOREGROUND: uv.Messages.PublishImmediate(UltravioletMessages.ApplicationResuming, null); return 0; case SDL_EventType.APP_DIDENTERFOREGROUND: uv.Messages.PublishImmediate(UltravioletMessages.ApplicationResumed, null); return 0; case SDL_EventType.APP_LOWMEMORY: uv.Messages.PublishImmediate(UltravioletMessages.LowMemory, null); GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced); return 0; } return 1; }