#pragma section-numbers off #pragma camelcase off = SDL_SetEventFilter = Use this function to set up a filter to process all events before they change internal state and are posted to the internal event queue. <> == Syntax == {{{#!highlight cpp void SDL_SetEventFilter(SDL_EventFilter filter, void* userdata) }}} == Function Parameters == ||'''filter'''||the function to call when an event happens; see [[#Remarks|Remarks]] for details|| ||'''userdata'''||a pointer that is passed to '''filter'''|| == Code Examples == {{{#!highlight cpp You can add your code example here }}} == Remarks == ##The following is included on SDL_AddEventWatch and SDL_DelEventWatch. Any changes between these comments will be reflected on those pages. Please use caution when editing. Start Include here. The function prototype for '''filter''' is: {{{#!highlight cpp int YourEventFilter(void* userdata, SDL_Event* event) }}} ##End Include here . where `YourEventFilter` is the name of your function and its parameters are: ||`userdata`||what was passed as '''userdata''' to [[SDL_SetEventFilter]]()|| ||`event`||the event that triggered the callback|| . If '''filter''' returns 1, then the event will be added to the internal queue. If it returns 0, then the event will be dropped from the queue, but the internal state will still be updated. This allows selective filtering of dynamically arriving events. /!\ WARNING: Be very careful of what you do in the event filter function, as it may run in a different thread! If the quit event is generated by an interrupt signal (e.g. Ctrl-C), it will be delivered to the application at the next event poll. Note: Disabled events never make it to the event filter function; see [[SDL_EventState]](). Note: If you just want to inspect events without filtering, you should use [[SDL_AddEventWatch]]() instead. Note: Events pushed onto the queue with [[SDL_PushEvent]]() get passed through the event filter, but events pushed onto the queue with [[SDL_PeepEvents]]() do not. == Related Functions == .[[SDL_AddEventWatch]] .[[SDL_EventState]] .[[SDL_GetEventFilter]] .[[SDL_PeepEvents]] .[[SDL_PushEvent]] ---- [[CategoryAPI]], [[CategoryEvents]]