diff --git a/src/events/SDL_categories.c b/src/events/SDL_categories.c index 57fb8c49c8..5f0853476f 100644 --- a/src/events/SDL_categories.c +++ b/src/events/SDL_categories.c @@ -50,9 +50,12 @@ SDL_EventCategory SDL_GetEventCategory(Uint32 type) case SDL_EVENT_DID_ENTER_FOREGROUND: case SDL_EVENT_LOCALE_CHANGED: case SDL_EVENT_SYSTEM_THEME_CHANGED: + return SDL_EVENTCATEGORY_SYSTEM; + case SDL_EVENT_RENDER_TARGETS_RESET: case SDL_EVENT_RENDER_DEVICE_RESET: - return SDL_EVENTCATEGORY_SYSTEM; + case SDL_EVENT_RENDER_DEVICE_LOST: + return SDL_EVENTCATEGORY_RENDER; case SDL_EVENT_QUIT: return SDL_EVENTCATEGORY_QUIT; @@ -233,6 +236,9 @@ SDL_Window *SDL_GetWindowFromEvent(const SDL_Event *event) case SDL_EVENTCATEGORY_DROP: windowID = event->drop.windowID; break; + case SDL_EVENTCATEGORY_RENDER: + windowID = event->render.windowID; + break; default: // < 0 -> invalid event type (error is set by SDL_GetEventCategory) // else -> event has no associated window (not an error) diff --git a/src/events/SDL_categories_c.h b/src/events/SDL_categories_c.h index 5f82c00cd1..1f72c2aa61 100644 --- a/src/events/SDL_categories_c.h +++ b/src/events/SDL_categories_c.h @@ -62,6 +62,7 @@ typedef enum SDL_EventCategory SDL_EVENTCATEGORY_PAXIS, SDL_EVENTCATEGORY_DROP, SDL_EVENTCATEGORY_CLIPBOARD, + SDL_EVENTCATEGORY_RENDER, } SDL_EventCategory; extern SDL_EventCategory SDL_GetEventCategory(Uint32 type); diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c index e6253ff072..a792a305b6 100644 --- a/src/events/SDL_events.c +++ b/src/events/SDL_events.c @@ -459,6 +459,7 @@ static void SDL_LogEvent(const SDL_Event *event) break SDL_RENDEREVENT_CASE(SDL_EVENT_RENDER_TARGETS_RESET); SDL_RENDEREVENT_CASE(SDL_EVENT_RENDER_DEVICE_RESET); + SDL_RENDEREVENT_CASE(SDL_EVENT_RENDER_DEVICE_LOST); #define SDL_DISPLAYEVENT_CASE(x) \ case x: \