sdlCreateRendererWithProperties function

Pointer<SdlRenderer> sdlCreateRendererWithProperties(
  1. int props
)

Create a 2D rendering context for a window, with the specified properties.

These are the supported properties:

  • SDL_PROP_RENDERER_CREATE_NAME_STRING: the name of the rendering driver to use, if a specific one is desired
  • SDL_PROP_RENDERER_CREATE_WINDOW_POINTER: the window where rendering is displayed, required if this isn't a software renderer using a surface
  • SDL_PROP_RENDERER_CREATE_SURFACE_POINTER: the surface where rendering is displayed, if you want a software renderer without a window
  • SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER: an SDL_Colorspace value describing the colorspace for output to the display, defaults to SDL_COLORSPACE_SRGB. The direct3d11, direct3d12, and metal renderers support SDL_COLORSPACE_SRGB_LINEAR, which is a linear color space and supports HDR output. If you select SDL_COLORSPACE_SRGB_LINEAR, drawing still uses the sRGB colorspace, but values can go beyond 1.0 and float (linear) format textures can be used for HDR content.
  • SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER: non-zero if you want present synchronized with the refresh rate. This property can take any value that is supported by SDL_SetRenderVSync() for the renderer.

With the vulkan renderer:

  • SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER: the VkInstance to use with the renderer, optional.
  • SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER: the VkSurfaceKHR to use with the renderer, optional.
  • SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER: the VkPhysicalDevice to use with the renderer, optional.
  • SDL_PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER: the VkDevice to use with the renderer, optional.
  • SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER: the queue family index used for rendering.
  • SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER: the queue family index used for presentation.

\param props the properties to use. \returns a valid rendering context or NULL if there was an error; call SDL_GetError() for more information.

\threadsafety This function should only be called on the main thread.

\since This function is available since SDL 3.1.3.

\sa SDL_CreateProperties \sa SDL_CreateRenderer \sa SDL_CreateSoftwareRenderer \sa SDL_DestroyRenderer \sa SDL_GetRendererName

extern SDL_DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRendererWithProperties(SDL_PropertiesID props)

Implementation

Pointer<SdlRenderer> sdlCreateRendererWithProperties(int props) {
  final sdlCreateRendererWithPropertiesLookupFunction = libSdl3.lookupFunction<
      Pointer<SdlRenderer> Function(Uint32 props),
      Pointer<SdlRenderer> Function(
          int props)>('SDL_CreateRendererWithProperties');
  return sdlCreateRendererWithPropertiesLookupFunction(props);
}