Create a texture from an existing surface.
Defined in <SDL3/SDL_render.h>
renderer | the rendering context |
surface | the SDL_Surface structure containing pixel data used to fill the 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. Use SDL_QueryTexture() to query the pixel format of the texture.
This function is available since SDL 3.0.0.
SDL_Renderer *renderer;
SDL_Surface *surface = SDL_CreateSurface(640, 480, SDL_PIXELFORMAT_RGBA8888);
if (surface == NULL) {
fprintf(stderr, "CreateRGBSurface failed: %s\n", SDL_GetError());
exit(1);
}
SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
if (texture == NULL) {
fprintf(stderr, "CreateTextureFromSurface failed: %s\n", SDL_GetError());
exit(1);
}
SDL_DestroySurface(surface);
surface = NULL;