2D rendererSDL 3.2
SDL_SetRenderTarget
Makes the renderer draw into a texture instead of the window. NULL switches back to the window.
Signature
bool SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture);
How it works
Draw a minimap, a scene to be post-processed or a cached background once into a texture, then draw that texture like any other. The texture must have been created with SDL_TEXTUREACCESS_TARGET.
Clear the target first (the texture's old contents are kept otherwise), and remember to set NULL before presenting.
Parameters
rendererSDL_Renderer *
The renderer.
textureSDL_Texture *
A TARGET texture, or NULL for the window.
Return value
true on success, false on failure.
Example
example.cpp
1SDL_Texture* minimap = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,
2 SDL_TEXTUREACCESS_TARGET, 256, 256);
3SDL_SetRenderTarget(renderer, minimap);
4SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
5SDL_RenderClear(renderer);
6drawMapTiles(renderer);
7SDL_SetRenderTarget(renderer, nullptr); // back to the window
8SDL_FRect corner{1000, 20, 256, 256};
9SDL_RenderTexture(renderer, minimap, nullptr, &corner);