imgLoadTextureRw function
- Pointer<
SdlRenderer> renderer, - Pointer<
SdlRWops> src, - int freesrc
Load an image from an SDL data source into a GPU texture.
An SDL_Texture represents an image in GPU memory, usable by SDL's 2D Render API. This can be significantly more efficient than using a CPU-bound SDL_Surface if you don't need to manipulate the image directly after loading it.
If the loaded image has transparency or a colorkey, a texture with an alpha channel will be created. Otherwise, SDL_image will attempt to create an SDL_Texture in the most format that most reasonably represents the image data (but in many cases, this will just end up being 32-bit RGB or 32-bit RGBA).
If freesrc
is non-zero, the RWops will be closed before returning,
whether this function succeeds or not. SDL_image reads everything it needs
from the RWops during this call in any case.
There is a separate function to read files from disk without having to deal
with SDL_RWops: IMG_LoadTexture(renderer, "filename.jpg")
will call this
function and manage those details for you, determining the file type from
the filename's extension.
There is also IMG_LoadTextureTyped_RW(), which is equivalent to this function except a file extension (like "BMP", "JPG", etc) can be specified, in case SDL_image cannot autodetect the file format.
If you would rather decode an image to an SDL_Surface (a buffer of pixels in CPU memory), call IMG_Load() instead.
When done with the returned texture, the app should dispose of it with a call to SDL_DestroyTexture().
\param renderer the SDL_Renderer to use to create the GPU texture. \param src an SDL_RWops that data will be read from. \param freesrc non-zero to close/free the SDL_RWops before returning, zero to leave it open. \returns a new texture, or NULL on error.
\since This function is available since SDL_image 2.0.0.
\sa IMG_LoadTexture \sa IMG_LoadTextureTyped_RW \sa SDL_DestroyTexture
extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc)
Implementation
Pointer<SdlTexture> imgLoadTextureRw(
Pointer<SdlRenderer> renderer, Pointer<SdlRWops> src, int freesrc) {
final imgLoadTextureRwLookupFunction = libSdl2Image.lookupFunction<
Pointer<SdlTexture> Function(
Pointer<SdlRenderer> renderer, Pointer<SdlRWops> src, Int32 freesrc),
Pointer<SdlTexture> Function(Pointer<SdlRenderer> renderer,
Pointer<SdlRWops> src, int freesrc)>('IMG_LoadTexture_RW');
return imgLoadTextureRwLookupFunction(renderer, src, freesrc);
}