# SDL_GetRenderMetalCommandEncoder

Get the Metal command encoder for the current frame.

## Header File

Defined in [<SDL3/SDL_render.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_render.h)

## Syntax

```c
void * SDL_GetRenderMetalCommandEncoder(SDL_Renderer *renderer);
```

## Function Parameters

|                                |              |                        |
| ------------------------------ | ------------ | ---------------------- |
| [SDL_Renderer](SDL_Renderer) * | **renderer** | the renderer to query. |

## Return Value

(void *) Returns an `id<MTLRenderCommandEncoder>` on success, or NULL if
the renderer isn't a Metal renderer or there was an error.

## Remarks

This function returns `void *`, so SDL doesn't have to include Metal's
headers, but it can be safely cast to an `id<MTLRenderCommandEncoder>`.

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
backbuffer. Check your return values!

## Thread Safety

This function should only be called on the main thread.

## Version

This function is available since SDL 3.2.0.

## See Also

- [SDL_GetRenderMetalLayer](SDL_GetRenderMetalLayer)

----
[CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryRender](CategoryRender)