SDL  2.0
SDL_events_c.h File Reference
#include "../SDL_internal.h"
#include "SDL_events.h"
#include "SDL_thread.h"
#include "../video/SDL_sysvideo.h"
#include "SDL_clipboardevents_c.h"
#include "SDL_displayevents_c.h"
#include "SDL_dropevents_c.h"
#include "SDL_gesture_c.h"
#include "SDL_keyboard_c.h"
#include "SDL_mouse_c.h"
#include "SDL_touch_c.h"
#include "SDL_windowevents_c.h"
+ Include dependency graph for SDL_events_c.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int SDL_StartEventLoop (void)
void SDL_StopEventLoop (void)
void SDL_QuitInterrupt (void)
int SDL_SendAppEvent (SDL_EventType eventType)
int SDL_SendSysWMEvent (SDL_SysWMmsg *message)
int SDL_SendKeymapChangedEvent (void)
int SDL_QuitInit (void)
int SDL_SendQuit (void)
void SDL_QuitQuit (void)
void SDL_SendPendingQuit (void)

Function Documentation

int SDL_QuitInit ( void  )
void SDL_QuitInterrupt ( void  )
void SDL_QuitQuit ( void  )

Definition at line 128 of file SDL_quit.c.

References disable_signals, and SDL_QuitQuit_Internal().

Referenced by SDL_QuitSubSystem().

int SDL_SendKeymapChangedEvent ( void  )

Definition at line 973 of file SDL_events.c.

References SDL_KEYMAPCHANGED, and SDL_SendAppEvent().

void SDL_SendPendingQuit ( void  )

Definition at line 144 of file SDL_quit.c.

References SDL_assert, SDL_SendQuit(), and send_quit_pending.

Referenced by SDL_PumpEvents().

int SDL_SendQuit ( void  )
int SDL_SendSysWMEvent ( SDL_SysWMmsg message)

Definition at line 956 of file SDL_events.c.

References SDL_ENABLE, SDL_GetEventState, SDL_memset, SDL_PushEvent, and SDL_SYSWMEVENT.

{
int posted;
posted = 0;
SDL_memset(&event, 0, sizeof(event));
event.type = SDL_SYSWMEVENT;
event.syswm.msg = message;
posted = (SDL_PushEvent(&event) > 0);
}
/* Update internal event state */
return (posted);
}
int SDL_StartEventLoop ( void  )

Definition at line 391 of file SDL_events.c.

References NULL, SDL_AtomicSet, SDL_CreateMutex, SDL_DISABLE, SDL_DROPFILE, SDL_DROPTEXT, SDL_EventQ, SDL_EventState, SDL_SYSWMEVENT, SDL_TEXTEDITING, and SDL_TEXTINPUT.

Referenced by SDL_InitSubSystem().

{
/* We'll leave the event queue alone, since we might have gotten
some important events at launch (like SDL_DROPFILE)
FIXME: Does this introduce any other bugs with events at startup?
*/
/* Create the lock and set ourselves active */
#if !SDL_THREADS_DISABLED
if (!SDL_EventQ.lock) {
if (SDL_EventQ.lock == NULL) {
return -1;
}
}
return -1;
}
}
#endif /* !SDL_THREADS_DISABLED */
/* Process most event types */
#if 0 /* Leave these events enabled so apps can respond to items being dragged onto them at startup */
#endif
return 0;
}
void SDL_StopEventLoop ( void  )

Definition at line 317 of file SDL_events.c.

References i, SDL_EventEntry::next, SDL_SysWMEntry::next, NULL, SDL_arraysize, SDL_atoi, SDL_AtomicSet, SDL_DestroyMutex, SDL_event_watchers_count, SDL_EventQ, SDL_free, SDL_GetHint, SDL_LockMutex, SDL_Log, SDL_UnlockMutex, and SDL_zero.

Referenced by SDL_QuitSubSystem().

{
const char *report = SDL_GetHint("SDL_EVENT_QUEUE_STATISTICS");
int i;
if (SDL_EventQ.lock) {
}
if (report && SDL_atoi(report)) {
SDL_Log("SDL EVENT QUEUE: Maximum events in-flight: %d\n",
SDL_EventQ.max_events_seen);
}
/* Clean out EventQ */
for (entry = SDL_EventQ.head; entry; ) {
SDL_EventEntry *next = entry->next;
SDL_free(entry);
entry = next;
}
for (entry = SDL_EventQ.free; entry; ) {
SDL_EventEntry *next = entry->next;
SDL_free(entry);
entry = next;
}
for (wmmsg = SDL_EventQ.wmmsg_used; wmmsg; ) {
SDL_SysWMEntry *next = wmmsg->next;
SDL_free(wmmsg);
wmmsg = next;
}
for (wmmsg = SDL_EventQ.wmmsg_free; wmmsg; ) {
SDL_SysWMEntry *next = wmmsg->next;
SDL_free(wmmsg);
wmmsg = next;
}
SDL_EventQ.max_events_seen = 0;
SDL_EventQ.head = NULL;
SDL_EventQ.tail = NULL;
SDL_EventQ.free = NULL;
SDL_EventQ.wmmsg_used = NULL;
SDL_EventQ.wmmsg_free = NULL;
/* Clear disabled event state */
for (i = 0; i < SDL_arraysize(SDL_disabled_events); ++i) {
}
}
}
if (SDL_EventQ.lock) {
SDL_EventQ.lock = NULL;
}
}