render: Add Suspend/Resume calls for GDK support

This commit is contained in:
Ethan Lee
2026-03-04 20:26:54 -05:00
parent 0c57e99b4a
commit ee5c5cf755
12 changed files with 108 additions and 34 deletions

View File

@@ -667,9 +667,7 @@ extern SDL_DECLSPEC void SDLCALL SDL_UnregisterApp(void);
* This should be called from an event watch in response to an
* `SDL_EVENT_DID_ENTER_BACKGROUND` event.
*
* When using SDL_Render, your event watch should be added _after_ creating
* the `SDL_Renderer`; this allows the timing of the D3D12 command queue
* suspension to execute in the correct order.
* When using SDL_Render, this should be called after calling SDL_GDKSuspendRenderer.
*
* When using SDL_GPU, this should be called after calling SDL_GDKSuspendGPU.
*

View File

@@ -3082,6 +3082,40 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetGPURenderState(SDL_Renderer *renderer, S
*/
extern SDL_DECLSPEC void SDLCALL SDL_DestroyGPURenderState(SDL_GPURenderState *state);
#ifdef SDL_PLATFORM_GDK
/**
* Call this to suspend Render operations on Xbox when you receive the
* SDL_EVENT_DID_ENTER_BACKGROUND event.
*
* Do NOT call any SDL_Render functions after calling this function! This must
* also be called before calling SDL_GDKSuspendComplete.
*
* \param renderer the renderer which should suspend operation
*
* \since This function is available since SDL 3.6.0.
*
* \sa SDL_AddEventWatch
*/
extern SDL_DECLSPEC void SDLCALL SDL_GDKSuspendRenderer(SDL_Renderer *renderer);
/**
* Call this to resume Render operations on Xbox when you receive the
* SDL_EVENT_WILL_ENTER_FOREGROUND event.
*
* When resuming, this function MUST be called before calling any other
* SDL_Render functions.
*
* \param renderer the renderer which should resume operation
*
* \since This function is available since SDL 3.6.0.
*
* \sa SDL_AddEventWatch
*/
extern SDL_DECLSPEC void SDLCALL SDL_GDKResumeRenderer(SDL_Renderer *renderer);
#endif /* SDL_PLATFORM_GDK */
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
}