From c135386f58972e7b1a40be4b019dd775b36d845f Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Fri, 22 Nov 2024 13:49:11 -0500
Subject: [PATCH] events: Add render category to SDL_EventCategory.
---
src/events/SDL_categories.c | 8 +++++++-
src/events/SDL_categories_c.h | 1 +
src/events/SDL_events.c | 1 +
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/events/SDL_categories.c b/src/events/SDL_categories.c
index 57fb8c49c815d..5f0853476f3ac 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 5f82c00cd17a9..1f72c2aa611f3 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 e6253ff07287f..a792a305b6e96 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: \