Función SDL_PollEvent
Sintaxis
int SDL_PollEvent(SDL_Event * event);
Descripción
Sondea eventos pendientes.
Parámetros
- event
- La estructura SDL_Event que se llenará con el siguiente evento de la cola, o NULL.
Valor de retorno
Devuelve 1 si hay un evento pendiente o 0 si no hay ninguno disponible.
Observaciones
Si event no es NULL, el siguiente evento se elimina de la cola y se almacena en la estructura SDL_Event apuntada por event. El 1 devuelto se refiere a este evento, almacenado inmediatamente en la estructura SDL_Event -- no a un evento siguiente.
Si event es NULL, simplemente devuelve 1 si hay un evento en la cola, pero no lo eliminará de la cola.
Como esta función puede llamar implícitamente a SDL_PumpEvents(), sólo puede llamar a esta función en el hilo que estableció el modo de vídeo.
SDL_PollEvent() es la forma preferida de recibir eventos del sistema ya que puede hacerse desde el bucle principal y no suspende el bucle principal mientras se espera a que se publique un evento.
La práctica común es procesar completamente la cola de eventos una vez cada cuadro, normalmente como primer paso antes de actualizar el estado del juego:
while (game_is_still_running) { SDL_Event event; while (SDL_PollEvent(&event)) { // poll until all events are handled! // decide what to do with this event. } // update game state, draw the current frame }