Función SDL_SetEventFilter
Sintaxis
void SDL_SetEventFilter(SDL_EventFilter filter, void *userdata);
Descripción
Configura un filtro para procesar todos los eventos antes de que cambien de estado interno y se publiquen en la cola de eventos interna.
Parámetros
- filter
- Una función SDL_EventFilter para llamar cuando ocurre un evento.
- userdata
- Un puntero que será pasado a filter.
Observaciones
Si la función filter devuelve 1 cuando se llama, entonces el evento se añadirá a la cola interna. Si devuelve 0, entonces el evento será eliminado de la cola, pero el estado interno seguirá siendo actualizado. Esto permite el filtrado selectivo de los eventos que llegan dinámicamente.
ADVERTENCIA: ¡Hay que tener mucho cuidado con lo que se hace en la función de filtrado de eventos, ya que puede ejecutarse en un hilo diferente!
En las plataformas que lo soportan, si el evento de abandono es generado por una señal de interrupción (por ejemplo, pulsar Ctrl-C), será entregado a la aplicación en el siguiente sondeo de eventos.
Hay una advertencia cuando se trata con el tipo de evento ::SDL_QuitEvent. El filtro de eventos sólo es llamado cuando el gestor de ventanas desea cerrar la ventana de la aplicación. Si el filtro de eventos devuelve 1, entonces la ventana se cerrará, de lo contrario la ventana permanecerá abierta si es posible.
Nota: Los eventos desactivados nunca llegan a la función de filtro de eventos; ver SDL_EventState().
Nota: Si solo se quieren inspeccionar eventos sin filtrar, se debería usar SDL_AddEventWatch() en su lugar.
Nota: Los eventos empujados a la cola con SDL_PushEvent() pasarán a través del filtro de eventos, pero los eventos empujados a la cola con SDL_PeepEvents() no.