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


Create a texture from an existing surface.

Header File

Defined in <SDL3/SDL_render.h>


SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *surface);

Function Parameters

SDL_Renderer * renderer the rendering context.
SDL_Surface * surface the SDL_Surface structure containing pixel data used to fill the texture.

Return Value

(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.


This function is available since SDL 3.0.0.

Code Examples

SDL_Renderer *renderer;

SDL_Surface *surface = SDL_CreateSurface(640, 480, SDL_PIXELFORMAT_RGBA8888);

if (surface == NULL) {
    fprintf(stderr, "CreateRGBSurface failed: %s\n", SDL_GetError());

SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);

if (texture == NULL) {
    fprintf(stderr, "CreateTextureFromSurface failed: %s\n", SDL_GetError());

surface = NULL;

See Also

CategoryAPI, CategoryAPIFunction, CategoryRender

[ 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.