SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)


Load a BMP image from a seekable SDL data stream.


SDL_Surface* SDL_LoadBMP_RW(SDL_RWops *src, SDL_bool freesrc);

Function Parameters

src the data stream for the surface
freesrc if SDL_TRUE, calls SDL_RWclose() on src before returning, even in the case of an error

Return Value

Returns a pointer to a new SDL_Surface structure or NULL if there was an error; call SDL_GetError() for more information.


The new surface should be freed with SDL_DestroySurface(). Not doing so will result in a memory leak.


This function is available since SDL 3.0.0.

Code Examples

const char *image_path = "myimage.bmp";

/* "rb" will "read binary" files */
SDL_RWops *file = SDL_RWFromFile(image_path, "rb");

/* freesrc is true so the file automatically closes */
SDL_Surface *image = SDL_LoadBMP_RW(file, SDL_TRUE);

/* Let the user know if the file failed to load */
if (!image) {
    printf("Failed to load image at %s: %s\n", image_path, SDL_GetError());

/* Do something with image here. */

/* Make sure to eventually release the surface resource */

CategoryAPI, CategorySurface

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.