Create a texture from an existing surface.
Defined in <SDL3/SDL_render.h>
SDL_Texture * SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *surface);
SDL_Renderer * | renderer | the rendering context. |
SDL_Surface * | surface | the SDL_Surface structure containing pixel data used to fill the texture. |
(SDL_Texture *) Returns the created texture or NULL on failure; call SDL_GetError() for more information.
The surface is not modified or freed by this function.
The SDL_TextureAccess hint for the created texture is SDL_TEXTUREACCESS_STATIC
.
The pixel format of the created texture may be different from the pixel format of the surface, and can be queried using the SDL_PROP_TEXTURE_FORMAT_NUMBER property.
You may only call this function from the main thread.
This function is available since SDL 3.1.3.
SDL_Renderer *renderer;
640, 480, SDL_PIXELFORMAT_RGBA8888);
SDL_Surface *surface = SDL_CreateSurface(
if (surface == NULL) {
"CreateRGBSurface failed: %s\n", SDL_GetError());
fprintf(stderr, 1);
exit(
}
SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
if (texture == NULL) {
"CreateTextureFromSurface failed: %s\n", SDL_GetError());
fprintf(stderr, 1);
exit(
}
SDL_DestroySurface(surface); surface = NULL;