SDL_image.h

Función IMG_LoadTextureTyped_RW

Sintaxis

SDL_Texture * IMG_LoadTextureTyped_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc, const char *type);

Descripción

Carga una imagen de una fuente de datos SDL en una textura GPU.

Parámetros

renderer
El SDL_Renderer a usar para crear la textura GPU.
src
Un SDL_RWops desde serán leídos los datos.
freesrc
Distinto de cero para cerrar o liberar el SDL_RWops antes de regresar, cero para dejarlo abierto.
type
Una extensión de nombre de archivo que represente estos datos ("BMP", "GIF", "PNG", etc).

Valor de retorno

Devuelve una nueva textura o NULL en caso de error.

Observaciones

Una SDL_Texture representa una imagen en la memoria de la GPU, utilizable por la API de Render 2D de SDL. Esto puede ser significativamente más eficiente que usar una SDL_Surface ligada a la CPU si no se necesita manipular la imagen directamente después de cargarla.

Si la imagen cargada tiene transparencia o una clave de color, se creará una textura con un canal alfa. De lo contrario, SDL_image intentará crear una SDL_Textureen el formato que más razonablemente represente los datos de la imagen (pero en muchos casos, esto terminará siendo RGB de 32 bits o RGBA de 32 bits).

Si freesrc es distinto de cero, el RWops se cerrará antes de volver, tanto si esta función tiene éxito como si no. SDL_image lee todo lo que necesita del RWops durante esta llamada en cualquier caso.

Aunque esta función acepte un tipo de archivo, SDL_image puede probar otros decodificadores que sean capaces de detectar el tipo de archivo a partir del contenido de los datos de la imagen, pero puede confiar en la cadena de tipo proporcionada por el llamante para formatos que no pueda detectar automáticamente. Si type es NULL, SDL_image se basará únicamente en su capacidad para adivinar el formato.

Existe una función separada para leer archivos del disco sin tener que lidiar con SDL_RWops: IMG_LoadTexture("nombrearchivo.jpg") llamará a esta función y gestionará esos detalles, determinando el tipo de archivo a partir de la extensión del nombre del archivo.

También existe IMG_LoadTexture_RW(), que es equivalente a esta función excepto en que dependerá de SDL_image para determinar qué tipo de datos está cargando, de forma similar a pasar un NULL para el tipo.

Si se prefiere decodificar una imagen a una SDL_Surface (un buffer de píxeles en la memoria de la CPU), llamar a IMG_LoadTyped_RW() en su lugar.

Cuando se termine con la textura devuelta, la aplicación debe deshacerse de ella con una llamada a SDL_DestroyTexture().