---
name: "SDL_GetRenderMetalCommandEncoder"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_GetRenderMetalCommandEncoder"
---

# SDL\_GetRenderMetalCommandEncoder(3)

Get the Metal command encoder for the current frame.

## NAME

SDL\_GetRenderMetalCommandEncoder - Get the Metal command encoder for the current frame.

## HEADER FILE

Defined in SDL3/SDL\_render.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**void \* SDL\_GetRenderMetalCommandEncoder(SDL\_Renderer \*renderer);**

## DESCRIPTION

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!

## FUNCTION PARAMETERS

- *renderer*

  the renderer to query.

## RETURN VALUE

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

## THREAD SAFETY

This function should only be called on the main thread.

## AVAILABILITY

This function is available since SDL 3.2.0.

## SEE ALSO

**•**(3), [**SDL\_GetRenderMetalLayer**(3)](/SDL_GetRenderMetalLayer/3.md)
