---
name: "SDL_GetRowStretchCode"
section: "3"
platform: "linux"
package: "libsdl-stretch-dev"
version: "0.3.1-12"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_GetRowStretchCode"
---

# SDL\_GetRowStretchCode(3)

(src/SDL\_stretchcode.h)

## NAME

SDL\_GetRowStretchCode, SDL\_NewRowStretchCode - (src/SDL\_stretchcode.h)

## SYNOPSIS

```
 #include <SDL_stretch.h>
```

**extern unsigned char\* SDL\_GetRowStretchCode(void);**

**extern unsigned char\* SDL\_NewRowStretchCode(unsigned size);**

## DESCRIPTION

TheRowStretchCode is a shared buffer between Stretch-routines that use no extra buffer-argument. You should call SDL\_SetRowStretchCode to fill this internal buffer and set a "call"-operation for your target cpu to execute this static buffer. That is done for effiency as the RowStretch is often called in a tight loop for each Row in a rectengular stretch and it is best to not use a variable argument with an indirect call or a function call that would build up a callframe and release that callframe later.

If you do not need that effiency, use PutRowStretchCode and RunRowStretchCode which are also good in a multithreading environment. To allocate a new buffer for usage with Put/Run you can use the NewRowStretchCode routine which is also used on NX machines (e.g. AMD64) where the data segment is set to be not-executable (in that case it will allocate from heap and use mprotect). if the argument is 0 then a buffer of the default size is allocated. If the buffer allocation (or mprotect) fails it will return NULL and SDL\_SetError.
