# SDL_CreateGPURenderer Create a 2D GPU rendering context for a window, with support for the specified shader format. ## Header File Defined in [<SDL3/SDL_render.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_render.h) ## Syntax ```c SDL_Renderer * SDL_CreateGPURenderer(SDL_Window *window, SDL_GPUShaderFormat format_flags, SDL_GPUDevice **device); ``` ## Function Parameters | | | | | ------------------------------------------ | ---------------- | --------------------------------------------------------------------- | | [SDL_Window](SDL_Window) * | **window** | the window where rendering is displayed. | | [SDL_GPUShaderFormat](SDL_GPUShaderFormat) | **format_flags** | a bitflag indicating which shader formats the app is able to provide. | | [SDL_GPUDevice](SDL_GPUDevice) ** | **device** | a pointer filled with the associated GPU device, or NULL on error. | ## Return Value ([SDL_Renderer](SDL_Renderer) *) Returns a valid rendering context or NULL if there was an error; call [SDL_GetError](SDL_GetError)() for more information. ## Remarks This is a convenience function to create a SDL GPU backed renderer, intended to be used with [SDL_GPURenderState](SDL_GPURenderState). The resulting renderer will support shaders in one of the specified shader formats. If no available GPU driver supports any of the specified shader formats, this function will fail. ## Thread Safety This function should only be called on the main thread. ## Version This function is available since SDL 3.4.0. ## See Also - [SDL_CreateRendererWithProperties](SDL_CreateRendererWithProperties) - [SDL_GetGPUShaderFormats](SDL_GetGPUShaderFormats) - [SDL_CreateGPUShader](SDL_CreateGPUShader) - [SDL_CreateGPURenderState](SDL_CreateGPURenderState) - [SDL_SetRenderGPUState](SDL_SetRenderGPUState) ---- [CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryRender](CategoryRender)