#pragma section-numbers off #pragma camelcase off = SDL_CreateTextureFromSurface = Use this function to create a texture from an existing surface. <> == Syntax == {{{#!highlight cpp SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* renderer, SDL_Surface* surface) }}} == Function Parameters == ||'''renderer'''||the rendering context|| ||'''surface'''||the [[SDL_Surface]] structure containing pixel data used to fill the texture|| == Return Value == Returns the created texture or NULL on failure; call [[SDL_GetError]]() for more information. == Code Examples == {{{#!highlight cpp Uint32 rmask, gmask, bmask, amask; /* SDL interprets each pixel as a 32-bit number, so our masks must depend on the endianness (byte order) of the machine */ #if SDL_BYTEORDER == SDL_BIG_ENDIAN rmask = 0xff000000; gmask = 0x00ff0000; bmask = 0x0000ff00; amask = 0x000000ff; #else rmask = 0x000000ff; gmask = 0x0000ff00; bmask = 0x00ff0000; amask = 0xff000000; #endif SDL_Surface *surface = SDL_CreateRGBSurface(0, 640, 480, 32, rmask, gmask, bmask, amask); 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_FreeSurface(surface); surface = NULL; }}} == Remarks == 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. == Related Functions == .[[SDL_CreateTexture]] .[[SDL_DestroyTexture]] .[[SDL_QueryTexture]] ---- [[CategoryAPI]], [[CategoryRender]]