Función IMG_LoadTexture_RW
Sintaxis
SDL_Texture * IMG_LoadTexture_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc);
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.
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_Texture en 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 de los RWops durante esta llamada en cualquier caso.
Existe una función separada para leer ficheros del disco sin tener que tratar con SDL_RWops: IMG_LoadTexture(renderer, "filename.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_LoadTextureTyped_RW(), que es equivalente a esta función excepto que se puede especificar una extensión de archivo (como "BMP", "JPG", etc), en caso de que SDL_image no pueda detectar automáticamente el formato de archivo.
Si se prefiere decodificar una imagen a una SDL_Surface (un buffer de píxeles en la memoria de la CPU), llamar a IMG_Load() en su lugar.
Cuando se termine con la textura devuelta, la aplicación debe deshacerse de ella con una llamada a SDL_DestroyTexture().