comparison src/SDL_compat.c @ 4429:faa9fc8e7f67

General improvements for user custom event registration * Switched event type to enum (int32) * Switched polling by mask to polling by type range * Added SDL_RegisterEvents() to allow dynamic user event registration * Spread events out to allow inserting new related events without breaking binary compatibility * Added padding to event structures so they're the same size regardless of 32-bit compiler structure packing settings * Split SDL_HasEvent() to SDL_HasEvent() for a single event and SDL_HasEvents() for a range of events * Added SDL_GetEventState() as a shortcut for SDL_EventState(X, SDL_QUERY) * Added SDL_FlushEvent() and SDL_FlushEvents() to clear events from the event queue
author Sam Lantinga <slouken@libsdl.org>
date Thu, 25 Mar 2010 01:08:26 -0700
parents f7b03b6838cb
children 3e69e077cb95 d40bb3165d2b
comparison
equal deleted inserted replaced
4428:68dfd6df47da 4429:faa9fc8e7f67
194 194
195 switch (event->type) { 195 switch (event->type) {
196 case SDL_WINDOWEVENT: 196 case SDL_WINDOWEVENT:
197 switch (event->window.event) { 197 switch (event->window.event) {
198 case SDL_WINDOWEVENT_EXPOSED: 198 case SDL_WINDOWEVENT_EXPOSED:
199 if (!SDL_HasEvent(SDL_VIDEOEXPOSEMASK)) { 199 if (!SDL_HasEvent(SDL_VIDEOEXPOSE)) {
200 fake.type = SDL_VIDEOEXPOSE; 200 fake.type = SDL_VIDEOEXPOSE;
201 SDL_PushEvent(&fake); 201 SDL_PushEvent(&fake);
202 } 202 }
203 break; 203 break;
204 case SDL_WINDOWEVENT_RESIZED: 204 case SDL_WINDOWEVENT_RESIZED:
205 SDL_PeepEvents(&fake, 1, SDL_GETEVENT, SDL_VIDEORESIZEMASK); 205 SDL_FlushEvent(SDL_VIDEORESIZE);
206 fake.type = SDL_VIDEORESIZE; 206 fake.type = SDL_VIDEORESIZE;
207 fake.resize.w = event->window.data1; 207 fake.resize.w = event->window.data1;
208 fake.resize.h = event->window.data2; 208 fake.resize.h = event->window.data2;
209 SDL_PushEvent(&fake); 209 SDL_PushEvent(&fake);
210 break; 210 break;