metal: Deal better with -[CAMetalLayer nextDrawable] returning nil.

Fixes #4863.
This commit is contained in:
Ryan C. Gordon
2021-11-09 11:50:49 -05:00
parent 8f63e9ff68
commit 04f42e0468
2 changed files with 54 additions and 18 deletions

View File

@@ -1806,9 +1806,14 @@ extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer);
* This function returns `void *`, so SDL doesn't have to include Metal's
* headers, but it can be safely cast to an `id<MTLRenderCommandEncoder>`.
*
* Note that as of SDL 2.0.18, this will return NULL if Metal refuses to
* give SDL a drawable to render to, which might happen if the window is
* hidden/minimized/offscreen. This doesn't apply to command encoders for
* render targets, just the window's backbacker. Check your return values!
*
* \param renderer The renderer to query
* \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the
* renderer isn't a Metal renderer.
* renderer isn't a Metal renderer or there was an error.
*
* \since This function is available since SDL 2.0.8.
*