Vulkan swapchain systems
This section documents the swapchain systems found in swapchain objects created for Vulkan renderers, and their associated functions.
Types
Objects
-
typedef struct TLVK_SwapchainSystem_t TLVK_SwapchainSystem_t
A renderer system to hold Vulkan-specific swapchain data.
This structure holds data for a Vulkan swapchain.
See also
See also
Descriptors
-
struct TLVK_SwapchainSystemDescriptor_t
Descriptor struct to configure the creation of a Thallium swapchain system for Vulkan.
This descriptor structure provides options for the creation of Vulkan swapchains via Thallium Vulkan swapchain systems.
Public Members
-
TL_Extent2D_t resolution
Resolution of images in the swapchain. Both values must be above 0 in this struct. If you are specifying this descriptor as an add-on to a TL_SwapchainDescriptor_t (i.e. calling TL_SwapchainCreate()), then setting this will override the resolution specified to that descriptor - keeping this zero-initialised will use the resolution specified to that descriptor.
-
VkSurfaceKHR vk_surface
NULL or a Vulkan surface to use in swapchain creation. If this is NULL, a surface will be created based on the specified Thallium window surface (i.e. platform window handles). Otherwise, that window will be disregarded and this surface will be directly used instead.
-
VkSurfaceFormatKHR vk_surface_format
Explicit surface format to use in swapchain creation. To automatically select surface format (which is default behaviour), set the
format
member of this struct to -1.
-
VkPresentModeKHR vk_present_mode
Explicit presentation mode to use in swapchain creation. To automatically select optimal present mode (which is default behaviour), set this to -1.
-
TL_Extent2D_t resolution
Functions
-
TLVK_SwapchainSystem_t *TLVK_SwapchainSystemCreate(const TLVK_RendererSystem_t *const renderer_system, const TLVK_SwapchainSystemDescriptor_t descriptor, const TL_WindowSurface_t *const window_surface)
Create and return a heap-allocated swapchain system with Vulkan swapchain data.
This function creates a new Vulkan swapchain system, including its Vulkan swapchain object and returns it. If there were any errors in creation, NULL will be returned instead.
See also
See also
See also
Note
The parent renderer of the given Thallium renderer system
renderer_system
must have been created with thepresentation
feature.Note
The
window_surface
parameter can be NULL only if a Vulkan surface is directly supplied todescriptor.vk_surface
- otherwise, this parameter must be a valid Thallium window surface object, in which case a new Vulkan surface will be created and stored by the swapchain.- Parameters:
renderer_system – a valid Thallium Vulkan renderer system object
descriptor – a Thallium Vulkan swapchain system descriptor
window_surface – a Thallium window surface object (can conditionally be NULL - see note above)
- Returns:
The new swapchain system
-
void TLVK_SwapchainSystemDestroy(TLVK_SwapchainSystem_t *const swapchain_system)
Free the given Thallium Vulkan swapchain system object.
This function frees the specified swapchain system object.
See also
See also
- Parameters:
swapchain_system – Pointer to the Thallium Vulkan swapchain system to free.