# CategoryRender

Header file for SDL 2D rendering functions.

This API supports the following features:

- single pixel points
- single pixel lines
- filled rectangles
- texture images
- 2D polygons

The primitives may be drawn in opaque, blended, or additive modes.

The texture images may be drawn in opaque, blended, or additive modes. They
can have an additional color tint or alpha modulation applied to them, and
may also be stretched with linear interpolation.

This API is designed to accelerate simple 2D operations. You may want more
functionality such as 3D polygons and particle effects and in that case you
should use SDL's OpenGL/Direct3D support or one of the many good 3D
engines.

These functions must be called from the main thread. See this bug for
details: https://github.com/libsdl-org/SDL/issues/986

<!-- END CATEGORY DOCUMENTATION -->

## Functions

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryRender, CategoryAPIFunction -->
- [SDL_CreateRenderer](SDL_CreateRenderer)
- [SDL_CreateSoftwareRenderer](SDL_CreateSoftwareRenderer)
- [SDL_CreateTexture](SDL_CreateTexture)
- [SDL_CreateTextureFromSurface](SDL_CreateTextureFromSurface)
- [SDL_CreateWindowAndRenderer](SDL_CreateWindowAndRenderer)
- [SDL_DestroyRenderer](SDL_DestroyRenderer)
- [SDL_DestroyTexture](SDL_DestroyTexture)
- [SDL_GetNumRenderDrivers](SDL_GetNumRenderDrivers)
- [SDL_GetRenderDrawBlendMode](SDL_GetRenderDrawBlendMode)
- [SDL_GetRenderDrawColor](SDL_GetRenderDrawColor)
- [SDL_GetRenderDriverInfo](SDL_GetRenderDriverInfo)
- [SDL_GetRenderer](SDL_GetRenderer)
- [SDL_GetRendererInfo](SDL_GetRendererInfo)
- [SDL_GetRendererOutputSize](SDL_GetRendererOutputSize)
- [SDL_GetRenderTarget](SDL_GetRenderTarget)
- [SDL_GetTextureAlphaMod](SDL_GetTextureAlphaMod)
- [SDL_GetTextureBlendMode](SDL_GetTextureBlendMode)
- [SDL_GetTextureColorMod](SDL_GetTextureColorMod)
- [SDL_GetTextureScaleMode](SDL_GetTextureScaleMode)
- [SDL_GetTextureUserData](SDL_GetTextureUserData)
- [SDL_GL_BindTexture](SDL_GL_BindTexture)
- [SDL_GL_UnbindTexture](SDL_GL_UnbindTexture)
- [SDL_LockTexture](SDL_LockTexture)
- [SDL_LockTextureToSurface](SDL_LockTextureToSurface)
- [SDL_QueryTexture](SDL_QueryTexture)
- [SDL_RenderClear](SDL_RenderClear)
- [SDL_RenderCopy](SDL_RenderCopy)
- [SDL_RenderCopyEx](SDL_RenderCopyEx)
- [SDL_RenderCopyExF](SDL_RenderCopyExF)
- [SDL_RenderCopyF](SDL_RenderCopyF)
- [SDL_RenderDrawLine](SDL_RenderDrawLine)
- [SDL_RenderDrawLineF](SDL_RenderDrawLineF)
- [SDL_RenderDrawLines](SDL_RenderDrawLines)
- [SDL_RenderDrawLinesF](SDL_RenderDrawLinesF)
- [SDL_RenderDrawPoint](SDL_RenderDrawPoint)
- [SDL_RenderDrawPointF](SDL_RenderDrawPointF)
- [SDL_RenderDrawPoints](SDL_RenderDrawPoints)
- [SDL_RenderDrawPointsF](SDL_RenderDrawPointsF)
- [SDL_RenderDrawRect](SDL_RenderDrawRect)
- [SDL_RenderDrawRectF](SDL_RenderDrawRectF)
- [SDL_RenderDrawRects](SDL_RenderDrawRects)
- [SDL_RenderDrawRectsF](SDL_RenderDrawRectsF)
- [SDL_RenderFillRect](SDL_RenderFillRect)
- [SDL_RenderFillRectF](SDL_RenderFillRectF)
- [SDL_RenderFillRects](SDL_RenderFillRects)
- [SDL_RenderFillRectsF](SDL_RenderFillRectsF)
- [SDL_RenderFlush](SDL_RenderFlush)
- [SDL_RenderGeometry](SDL_RenderGeometry)
- [SDL_RenderGeometryRaw](SDL_RenderGeometryRaw)
- [SDL_RenderGetClipRect](SDL_RenderGetClipRect)
- [SDL_RenderGetIntegerScale](SDL_RenderGetIntegerScale)
- [SDL_RenderGetLogicalSize](SDL_RenderGetLogicalSize)
- [SDL_RenderGetMetalCommandEncoder](SDL_RenderGetMetalCommandEncoder)
- [SDL_RenderGetMetalLayer](SDL_RenderGetMetalLayer)
- [SDL_RenderGetScale](SDL_RenderGetScale)
- [SDL_RenderGetViewport](SDL_RenderGetViewport)
- [SDL_RenderGetWindow](SDL_RenderGetWindow)
- [SDL_RenderIsClipEnabled](SDL_RenderIsClipEnabled)
- [SDL_RenderLogicalToWindow](SDL_RenderLogicalToWindow)
- [SDL_RenderPresent](SDL_RenderPresent)
- [SDL_RenderReadPixels](SDL_RenderReadPixels)
- [SDL_RenderSetClipRect](SDL_RenderSetClipRect)
- [SDL_RenderSetIntegerScale](SDL_RenderSetIntegerScale)
- [SDL_RenderSetLogicalSize](SDL_RenderSetLogicalSize)
- [SDL_RenderSetScale](SDL_RenderSetScale)
- [SDL_RenderSetViewport](SDL_RenderSetViewport)
- [SDL_RenderSetVSync](SDL_RenderSetVSync)
- [SDL_RenderTargetSupported](SDL_RenderTargetSupported)
- [SDL_RenderWindowToLogical](SDL_RenderWindowToLogical)
- [SDL_SetRenderDrawBlendMode](SDL_SetRenderDrawBlendMode)
- [SDL_SetRenderDrawColor](SDL_SetRenderDrawColor)
- [SDL_SetRenderTarget](SDL_SetRenderTarget)
- [SDL_SetTextureAlphaMod](SDL_SetTextureAlphaMod)
- [SDL_SetTextureBlendMode](SDL_SetTextureBlendMode)
- [SDL_SetTextureColorMod](SDL_SetTextureColorMod)
- [SDL_SetTextureScaleMode](SDL_SetTextureScaleMode)
- [SDL_SetTextureUserData](SDL_SetTextureUserData)
- [SDL_UnlockTexture](SDL_UnlockTexture)
- [SDL_UpdateNVTexture](SDL_UpdateNVTexture)
- [SDL_UpdateTexture](SDL_UpdateTexture)
- [SDL_UpdateYUVTexture](SDL_UpdateYUVTexture)
<!-- END CATEGORY LIST -->

## Datatypes

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryRender, CategoryAPIDatatype -->
- (none.)
<!-- END CATEGORY LIST -->

## Structs

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryRender, CategoryAPIStruct -->
- [SDL_Renderer](SDL_Renderer)
- [SDL_RendererInfo](SDL_RendererInfo)
- [SDL_Texture](SDL_Texture)
- [SDL_Vertex](SDL_Vertex)
<!-- END CATEGORY LIST -->

## Enums

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryRender, CategoryAPIEnum -->
- [SDL_RendererFlags](SDL_RendererFlags)
- [SDL_RendererFlip](SDL_RendererFlip)
- [SDL_ScaleMode](SDL_ScaleMode)
- [SDL_TextureAccess](SDL_TextureAccess)
- [SDL_TextureModulate](SDL_TextureModulate)
<!-- END CATEGORY LIST -->

## Macros

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryRender, CategoryAPIMacro -->
- (none.)
<!-- END CATEGORY LIST -->

