SDL_events.h

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
}