Man Linux: Main Page and Category List

NAME

       SDL_GetRowStretchCode, SDL_NewRowStretchCode - (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.