render topic
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, the SDL3 GPU API, 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
Classes
Extensions
Functions
-
sdlAddVulkanRenderSemaphores(
Pointer< renderSdlRenderer> renderer, int waitStageMask, int waitSemaphore, int signalSemaphore) → bool - Add a set of synchronization semaphores for the current frame.
-
sdlConvertEventToRenderCoordinates(
Pointer< renderSdlRenderer> renderer, Pointer<SdlEvent> event) → bool - Convert the coordinates in an event to render coordinates.
-
sdlCreateGpuRenderer(
Pointer< renderSdlWindow> window, int formatFlags, Pointer<Pointer< device) → Pointer<SdlGpuDevice> >SdlRenderer> - Create a 2D GPU rendering context for a window, with support for the specified shader format.
-
sdlCreateGpuRenderState(
Pointer< renderSdlRenderer> renderer, Pointer<SdlGpuRenderStateCreateInfo> createinfo) → Pointer<SdlGpuRenderState> - Create custom GPU render state.
-
sdlCreateRenderer(
Pointer< renderSdlWindow> window, String? name) → Pointer<SdlRenderer> - Create a 2D rendering context for a window.
-
sdlCreateRendererWithProperties(
int props) → Pointer< renderSdlRenderer> - Create a 2D rendering context for a window, with the specified properties.
-
sdlCreateSoftwareRenderer(
Pointer< renderSdlSurface> surface) → Pointer<SdlRenderer> - Create a 2D software rendering context for a surface.
-
sdlCreateTexture(
Pointer< renderSdlRenderer> renderer, int format, int access, int w, int h) → Pointer<SdlTexture> - Create a texture for a rendering context.
-
sdlCreateTextureFromSurface(
Pointer< renderSdlRenderer> renderer, Pointer<SdlSurface> surface) → Pointer<SdlTexture> - Create a texture from an existing surface.
-
sdlCreateTextureWithProperties(
Pointer< renderSdlRenderer> renderer, int props) → Pointer<SdlTexture> - Create a texture for a rendering context with the specified properties.
-
sdlCreateWindowAndRenderer(
String? title, int width, int height, int windowFlags, Pointer< renderPointer< window, Pointer<SdlWindow> >Pointer< renderer) → boolSdlRenderer> > - Create a window and default renderer.
-
sdlDestroyGpuRenderState(
Pointer< renderSdlGpuRenderState> state) → void - Destroy custom GPU render state.
-
sdlDestroyRenderer(
Pointer< renderSdlRenderer> renderer) → void - Destroy the rendering context for a window and free all associated textures.
-
sdlDestroyTexture(
Pointer< renderSdlTexture> texture) → void - Destroy the specified texture.
-
sdlFlushRenderer(
Pointer< renderSdlRenderer> renderer) → bool - Force the rendering context to flush any pending commands and state.
-
sdlGetCurrentRenderOutputSize(
Pointer< renderSdlRenderer> renderer, Pointer<Int32> w, Pointer<Int32> h) → bool - Get the current output size in pixels of a rendering context.
-
sdlGetDefaultTextureScaleMode(
Pointer< renderSdlRenderer> renderer, Pointer<Int32> scaleMode) → bool - Get default texture scale mode of the given renderer.
-
sdlGetNumRenderDrivers(
) → int render - Get the number of 2D rendering drivers available for the current display.
-
sdlGetRenderClipRect(
Pointer< renderSdlRenderer> renderer, Pointer<SdlRect> rect) → bool - Get the clip rectangle for the current target.
-
sdlGetRenderColorScale(
Pointer< renderSdlRenderer> renderer, Pointer<Float> scale) → bool - Get the color scale used for render operations.
-
sdlGetRenderDrawBlendMode(
Pointer< renderSdlRenderer> renderer, Pointer<Uint32> blendMode) → bool - Get the blend mode used for drawing operations.
-
sdlGetRenderDrawColor(
Pointer< renderSdlRenderer> renderer, Pointer<Uint8> r, Pointer<Uint8> g, Pointer<Uint8> b, Pointer<Uint8> a) → bool - Get the color used for drawing operations (Rect, Line and Clear).
-
sdlGetRenderDrawColorFloat(
Pointer< renderSdlRenderer> renderer, Pointer<Float> r, Pointer<Float> g, Pointer<Float> b, Pointer<Float> a) → bool - Get the color used for drawing operations (Rect, Line and Clear).
-
sdlGetRenderDriver(
int index) → String? render - Use this function to get the name of a built in 2D rendering driver.
-
sdlGetRenderer(
Pointer< renderSdlWindow> window) → Pointer<SdlRenderer> - Get the renderer associated with a window.
-
sdlGetRendererFromTexture(
Pointer< renderSdlTexture> texture) → Pointer<SdlRenderer> - Get the renderer that created an SDL_Texture.
-
sdlGetRendererName(
Pointer< renderSdlRenderer> renderer) → String? - Get the name of a renderer.
-
sdlGetRendererProperties(
Pointer< renderSdlRenderer> renderer) → int - Get the properties associated with a renderer.
-
sdlGetRenderLogicalPresentation(
Pointer< renderSdlRenderer> renderer, Pointer<Int32> w, Pointer<Int32> h, Pointer<Int32> mode) → bool - Get device independent resolution and presentation mode for rendering.
-
sdlGetRenderLogicalPresentationRect(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFRect> rect) → bool - Get the final presentation rectangle for rendering.
-
sdlGetRenderMetalCommandEncoder(
Pointer< renderSdlRenderer> renderer) → Pointer<NativeType> - Get the Metal command encoder for the current frame.
-
sdlGetRenderMetalLayer(
Pointer< renderSdlRenderer> renderer) → Pointer<NativeType> - Get the CAMetalLayer associated with the given Metal renderer.
-
sdlGetRenderOutputSize(
Pointer< renderSdlRenderer> renderer, Pointer<Int32> w, Pointer<Int32> h) → bool - Get the output size in pixels of a rendering context.
-
sdlGetRenderSafeArea(
Pointer< renderSdlRenderer> renderer, Pointer<SdlRect> rect) → bool - Get the safe area for rendering within the current viewport.
-
sdlGetRenderScale(
Pointer< renderSdlRenderer> renderer, Pointer<Float> scaleX, Pointer<Float> scaleY) → bool - Get the drawing scale for the current target.
-
sdlGetRenderTarget(
Pointer< renderSdlRenderer> renderer) → Pointer<SdlTexture> - Get the current render target.
-
sdlGetRenderTextureAddressMode(
Pointer< renderSdlRenderer> renderer, Pointer<Int32> uMode, Pointer<Int32> vMode) → bool - Get the texture addressing mode used in SDL_RenderGeometry().
-
sdlGetRenderViewport(
Pointer< renderSdlRenderer> renderer, Pointer<SdlRect> rect) → bool - Get the drawing area for the current target.
-
sdlGetRenderVSync(
Pointer< renderSdlRenderer> renderer, Pointer<Int32> vsync) → bool - Get VSync of the given renderer.
-
sdlGetRenderWindow(
Pointer< renderSdlRenderer> renderer) → Pointer<SdlWindow> - Get the window associated with a renderer.
-
sdlGetTextureAlphaMod(
Pointer< renderSdlTexture> texture, Pointer<Uint8> alpha) → bool - Get the additional alpha value multiplied into render copy operations.
-
sdlGetTextureAlphaModFloat(
Pointer< renderSdlTexture> texture, Pointer<Float> alpha) → bool - Get the additional alpha value multiplied into render copy operations.
-
sdlGetTextureBlendMode(
Pointer< renderSdlTexture> texture, Pointer<Uint32> blendMode) → bool - Get the blend mode used for texture copy operations.
-
sdlGetTextureColorMod(
Pointer< renderSdlTexture> texture, Pointer<Uint8> r, Pointer<Uint8> g, Pointer<Uint8> b) → bool - Get the additional color value multiplied into render copy operations.
-
sdlGetTextureColorModFloat(
Pointer< renderSdlTexture> texture, Pointer<Float> r, Pointer<Float> g, Pointer<Float> b) → bool - Get the additional color value multiplied into render copy operations.
-
sdlGetTextureProperties(
Pointer< renderSdlTexture> texture) → int - Get the properties associated with a texture.
-
sdlGetTextureScaleMode(
Pointer< renderSdlTexture> texture, Pointer<Int32> scaleMode) → bool - Get the scale mode used for texture scale operations.
-
sdlGetTextureSize(
Pointer< renderSdlTexture> texture, Pointer<Float> w, Pointer<Float> h) → bool - Get the size of a texture, as floating point values.
-
sdlLockTexture(
Pointer< renderSdlTexture> texture, Pointer<SdlRect> rect, Pointer<Pointer< pixels, Pointer<NativeType> >Int32> pitch) → bool - Lock a portion of the texture for write-only pixel access.
-
sdlLockTextureToSurface(
Pointer< renderSdlTexture> texture, Pointer<SdlRect> rect, Pointer<Pointer< surface) → boolSdlSurface> > - Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.
-
sdlRenderClear(
Pointer< renderSdlRenderer> renderer) → bool - Clear the current rendering target with the drawing color.
-
sdlRenderClipEnabled(
Pointer< renderSdlRenderer> renderer) → bool - Get whether clipping is enabled on the given render target.
-
sdlRenderCoordinatesFromWindow(
Pointer< renderSdlRenderer> renderer, double windowX, double windowY, Pointer<Float> x, Pointer<Float> y) → bool - Get a point in render coordinates when given a point in window coordinates.
-
sdlRenderCoordinatesToWindow(
Pointer< renderSdlRenderer> renderer, double x, double y, Pointer<Float> windowX, Pointer<Float> windowY) → bool - Get a point in window coordinates when given a point in render coordinates.
-
sdlRenderDebugText(
Pointer< renderSdlRenderer> renderer, double x, double y, String? str) → bool - Draw debug text to an SDL_Renderer.
-
sdlRenderDebugTextFormat(
Pointer< renderSdlRenderer> renderer, double x, double y, String? fmt) → bool - Draw debug text to an SDL_Renderer.
-
sdlRenderFillRect(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFRect> rect) → bool - Fill a rectangle on the current rendering target with the drawing color at subpixel precision.
-
sdlRenderFillRects(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFRect> rects, int count) → bool - Fill some number of rectangles on the current rendering target with the drawing color at subpixel precision.
-
sdlRenderGeometry(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlVertex> vertices, int numVertices, Pointer<Int32> indices, int numIndices) → bool - Render a list of triangles, optionally using a texture and indices into the vertex array Color and alpha modulation is done per vertex (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
-
sdlRenderGeometryRaw(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<Float> xy, int xyStride, Pointer<SdlFColor> color, int colorStride, Pointer<Float> uv, int uvStride, int numVertices, Pointer<NativeType> indices, int numIndices, int sizeIndices) → bool - Render a list of triangles, optionally using a texture and indices into the vertex arrays Color and alpha modulation is done per vertex (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored).
-
sdlRenderLine(
Pointer< renderSdlRenderer> renderer, double x1, double y1, double x2, double y2) → bool - Draw a line on the current rendering target at subpixel precision.
-
sdlRenderLines(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFPoint> points, int count) → bool - Draw a series of connected lines on the current rendering target at subpixel precision.
-
sdlRenderPoint(
Pointer< renderSdlRenderer> renderer, double x, double y) → bool - Draw a point on the current rendering target at subpixel precision.
-
sdlRenderPoints(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFPoint> points, int count) → bool - Draw multiple points on the current rendering target at subpixel precision.
-
sdlRenderPresent(
Pointer< renderSdlRenderer> renderer) → bool - Update the screen with any rendering performed since the previous call.
-
sdlRenderReadPixels(
Pointer< renderSdlRenderer> renderer, Pointer<SdlRect> rect) → Pointer<SdlSurface> - Read pixels from the current rendering target.
-
sdlRenderRect(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFRect> rect) → bool - Draw a rectangle on the current rendering target at subpixel precision.
-
sdlRenderRects(
Pointer< renderSdlRenderer> renderer, Pointer<SdlFRect> rects, int count) → bool - Draw some number of rectangles on the current rendering target at subpixel precision.
-
sdlRenderTexture(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlFRect> srcrect, Pointer<SdlFRect> dstrect) → bool - Copy a portion of the texture to the current rendering target at subpixel precision.
-
sdlRenderTexture9Grid(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlFRect> srcrect, double leftWidth, double rightWidth, double topHeight, double bottomHeight, double scale, Pointer<SdlFRect> dstrect) → bool - Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precision.
-
sdlRenderTexture9GridTiled(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlFRect> srcrect, double leftWidth, double rightWidth, double topHeight, double bottomHeight, double scale, Pointer<SdlFRect> dstrect, double tileScale) → bool - Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precision.
-
sdlRenderTextureAffine(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlFRect> srcrect, Pointer<SdlFPoint> origin, Pointer<SdlFPoint> right, Pointer<SdlFPoint> down) → bool - Copy a portion of the source texture to the current rendering target, with affine transform, at subpixel precision.
-
sdlRenderTextureRotated(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlFRect> srcrect, Pointer<SdlFRect> dstrect, double angle, Pointer<SdlFPoint> center, int flip) → bool - Copy a portion of the source texture to the current rendering target, with rotation and flipping, at subpixel precision.
-
sdlRenderTextureTiled(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture, Pointer<SdlFRect> srcrect, double scale, Pointer<SdlFRect> dstrect) → bool - Tile a portion of the texture to the current rendering target at subpixel precision.
-
sdlRenderViewportSet(
Pointer< renderSdlRenderer> renderer) → bool - Return whether an explicit rectangle was set as the viewport.
-
sdlSetDefaultTextureScaleMode(
Pointer< renderSdlRenderer> renderer, int scaleMode) → bool - Set default scale mode for new textures for given renderer.
-
sdlSetGpuRenderStateFragmentUniforms(
Pointer< renderSdlGpuRenderState> state, int slotIndex, Pointer<NativeType> data, int length) → bool - Set fragment shader uniform variables in a custom GPU render state.
-
sdlSetRenderClipRect(
Pointer< renderSdlRenderer> renderer, Pointer<SdlRect> rect) → bool - Set the clip rectangle for rendering on the specified target.
-
sdlSetRenderColorScale(
Pointer< renderSdlRenderer> renderer, double scale) → bool - Set the color scale used for render operations.
-
sdlSetRenderDrawBlendMode(
Pointer< renderSdlRenderer> renderer, int blendMode) → bool - Set the blend mode used for drawing operations (Fill and Line).
-
sdlSetRenderDrawColor(
Pointer< renderSdlRenderer> renderer, int r, int g, int b, int a) → bool - Set the color used for drawing operations.
-
sdlSetRenderDrawColorFloat(
Pointer< renderSdlRenderer> renderer, double r, double g, double b, double a) → bool - Set the color used for drawing operations (Rect, Line and Clear).
-
sdlSetRenderGpuState(
Pointer< renderSdlRenderer> renderer, Pointer<SdlGpuRenderState> state) → bool - Set custom GPU render state.
-
sdlSetRenderLogicalPresentation(
Pointer< renderSdlRenderer> renderer, int w, int h, int mode) → bool - Set a device-independent resolution and presentation mode for rendering.
-
sdlSetRenderScale(
Pointer< renderSdlRenderer> renderer, double scaleX, double scaleY) → bool - Set the drawing scale for rendering on the current target.
-
sdlSetRenderTarget(
Pointer< renderSdlRenderer> renderer, Pointer<SdlTexture> texture) → bool - Set a texture as the current rendering target.
-
sdlSetRenderTextureAddressMode(
Pointer< renderSdlRenderer> renderer, int uMode, int vMode) → bool - Set the texture addressing mode used in SDL_RenderGeometry().
-
sdlSetRenderViewport(
Pointer< renderSdlRenderer> renderer, Pointer<SdlRect> rect) → bool - Set the drawing area for rendering on the current target.
-
sdlSetRenderVSync(
Pointer< renderSdlRenderer> renderer, int vsync) → bool - Toggle VSync of the given renderer.
-
sdlSetTextureAlphaMod(
Pointer< renderSdlTexture> texture, int alpha) → bool - Set an additional alpha value multiplied into render copy operations.
-
sdlSetTextureAlphaModFloat(
Pointer< renderSdlTexture> texture, double alpha) → bool - Set an additional alpha value multiplied into render copy operations.
-
sdlSetTextureBlendMode(
Pointer< renderSdlTexture> texture, int blendMode) → bool - Set the blend mode for a texture, used by SDL_RenderTexture().
-
sdlSetTextureColorMod(
Pointer< renderSdlTexture> texture, int r, int g, int b) → bool - Set an additional color value multiplied into render copy operations.
-
sdlSetTextureColorModFloat(
Pointer< renderSdlTexture> texture, double r, double g, double b) → bool - Set an additional color value multiplied into render copy operations.
-
sdlSetTextureScaleMode(
Pointer< renderSdlTexture> texture, int scaleMode) → bool - Set the scale mode used for texture scale operations.
-
sdlUnlockTexture(
Pointer< renderSdlTexture> texture) → void - Unlock a texture, uploading the changes to video memory, if needed.
-
sdlUpdateNvTexture(
Pointer< renderSdlTexture> texture, Pointer<SdlRect> rect, Pointer<Uint8> yplane, int ypitch, Pointer<Uint8> uVplane, int uVpitch) → bool - Update a rectangle within a planar NV12 or NV21 texture with new pixels.
-
sdlUpdateTexture(
Pointer< renderSdlTexture> texture, Pointer<SdlRect> rect, Pointer<NativeType> pixels, int pitch) → bool - Update the given texture rectangle with new pixel data.
-
sdlUpdateYuvTexture(
Pointer< renderSdlTexture> texture, Pointer<SdlRect> rect, Pointer<Uint8> yplane, int ypitch, Pointer<Uint8> uplane, int upitch, Pointer<Uint8> vplane, int vpitch) → bool - Update a rectangle within a planar YV12 or IYUV texture with new pixel data.