Wiki Page Content

Differences between revisions 10 and 11
Revision 10 as of 2010-10-18 04:38:43
Size: 2240
Editor: SheenaSmith
Comment: update content - SDL_EventFilter
Revision 11 as of 2011-02-15 23:55:12
Size: 2460
Editor: SheenaSmith
Comment: add hidden include comments
Deletions are marked like this. Additions are marked like this.
Line 26: Line 26:
##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.
Line 32: Line 34:
##End Include here

DRAFT

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

void SDL_SetEventFilter(SDL_EventFilter filter,
                        void*           userdata)

Function Parameters

filter

a function that gets called when an event happens; see Remarks for details

userdata

a pointer filled in with user-specified information to be filtered

Code Examples

You can add your code example here

Remarks

The filter function has the following form:

  • int SDL_EventFilter(void* userdata, SDL_Event* event)

where userdata is the event queue to filter and event is the desired event to pull from the queue. green

If the 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.

/!\ Be very careful of what you do in the event filter function, as it may run in a different thread!

There is one caveat when dealing with the SDL_QUITEVENT event type. The event filter is only called when the window manager desires to close the application window. If the event filter returns 1, then the window will be closed, otherwise the window will remain open if possible.

If the quit event is generated by an interrupt signal, it will bypass the internal queue and be delivered to the application at the next event poll.

green

*Note: Events pushed onto the queue with SDL_PushEvent() or SDL_PeepEvents() do not get passed through the event filter.*


CategoryAPI, CategoryEvents

None: SDL_SetEventFilter (last edited 2017-08-11 17:54:24 by Sam Lantinga)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit