---
name: "SDL_LockTextureToSurface"
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_LockTextureToSurface"
---

# SDL\_LockTextureToSurface(3)

Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.

## NAME

SDL\_LockTextureToSurface - Lock a portion of the texture for **write-only** pixel access, and expose it as a SDL surface.

## HEADER FILE

Defined in SDL3/SDL\_render.h

## SYNOPSIS

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

**bool SDL\_LockTextureToSurface(SDL\_Texture \*texture, const SDL\_Rect \*rect, SDL\_Surface \*\*surface);**

## DESCRIPTION

Besides providing an  **SDL\_Surface**\
  instead of raw pixel data, this function operates like  **SDL\_LockTexture** .

As an optimization, the pixels made available for editing don't necessarily contain the old texture data. This is a write-only operation, and if you need to keep a copy of the texture data you should do that at the application level.

You must use  **SDL\_UnlockTexture** () to unlock the pixels and apply any changes.

The returned surface is freed internally after calling

**SDL\_UnlockTexture** () or

**SDL\_DestroyTexture** (). The caller should not free it.

## FUNCTION PARAMETERS

- *texture*

  the texture to lock for access, which must be created with  **SDL\_TEXTUREACCESS\_STREAMING** .

- *rect*

  a pointer to the rectangle to lock for access. If the rect is NULL, the entire texture will be locked.

- *surface*

  a pointer to an SDL surface of size **rect** . Don't assume any specific pixel content.

## RETURN VALUE

Returns true on success or false on failure; call

**SDL\_GetError** () for more information.

## 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\_LockTexture**(3)](/SDL_LockTexture/3.md), **•**(3), [**SDL\_UnlockTexture**(3)](/SDL_UnlockTexture/3.md)
