SRSDK  0.10.39
Loading...
Searching...
No Matches
interlacer.vulkan.h
Go to the documentation of this file.
1#ifndef CNSDK_LEIA_CORE_INTERLACER_VULKAN_H
2#define CNSDK_LEIA_CORE_INTERLACER_VULKAN_H
3
5
6// TODO: Why don't we just include the header?
7// Note: We forward-declare Vulkan objects to avoid including the Vulkan SDK header.
8// Unfortunately we need two untyped enums VkFormat and VkImageLayout that can't be forward-declared on some compilers.
9// Our solution is to declare and use two integer types VkFormatInt and VkImageLayoutInt that can safely be cast to/from the Vulkan enums.
10typedef struct VkDevice_T* VkDevice;
11typedef struct VkPhysicalDevice_T* VkPhysicalDevice;
12typedef struct VkFramebuffer_T* VkFramebuffer;
13typedef struct VkImage_T* VkImage;
14typedef struct VkImageView_T* VkImageView;
15typedef struct VkSemaphore_T* VkSemaphore;
16typedef struct VkCommandBuffer_T* VkCommandBuffer;
17typedef struct VkRenderPass_T* VkRenderPass;
18typedef struct VkQueue_T* VkQueue;
19typedef int32_t VkFormatInt;
20typedef int32_t VkImageLayoutInt;
21
22#if defined(LEIA_USE_VULKAN)
23
25
55 VkDevice device,
56 VkPhysicalDevice physicalDevice,
57 VkFormatInt renderTargetFormat,
58 VkFormatInt depthStencilFormat,
59 int32_t maxInFlightFrameCount);
60
80 int32_t width,
81 int32_t height,
82 leia_bool blendedInterlace,
83 VkFramebuffer frameBuffer,
84 VkImage colorImage,
85 VkImage depthImage,
86 VkSemaphore imageAvailableSemaphore,
87 VkSemaphore renderFinishedSemaphore,
88 int32_t currentFrame);
89
103void leia_interlacer_vulkan_set_source_views(struct leia_interlacer*, VkImage texture, VkImageView textureView, int32_t viewIndex, int layer);
104
110
111#endif // LEIA_USE_VULKAN
112
113#endif // CNSDK_LEIA_CORE_INTERLACER_VULKAN_H
BEGIN_CAPI_DECL typedef int32_t leia_bool
Definition types.h:10
#define LEIASDK_API
Definition api.h:9
#define LEIA_NODISCARD
Definition defines.h:86
#define END_CAPI_DECL
Definition defines.h:74
#define BEGIN_CAPI_DECL
Definition defines.h:73
LEIASDK_API void leia_interlacer_vulkan_set_source_views(struct leia_interlacer *, VkImage texture, VkImageView textureView, int32_t viewIndex, int layer)
Set Vulkan view texture.
LEIASDK_API void leia_interlacer_vulkan_do_post_process(struct leia_interlacer *, int32_t width, int32_t height, leia_bool blendedInterlace, VkFramebuffer frameBuffer, VkImage colorImage, VkImage depthImage, VkSemaphore imageAvailableSemaphore, VkSemaphore renderFinishedSemaphore, int32_t currentFrame)
Perform Vulkan graphics rendering.
LEIA_NODISCARD LEIASDK_API struct leia_interlacer * leia_interlacer_vulkan_initialize(struct leia_core *, struct leia_interlacer_init_configuration const *, VkDevice device, VkPhysicalDevice physicalDevice, VkFormatInt renderTargetFormat, VkFormatInt depthStencilFormat, int32_t maxInFlightFrameCount)
Initialize interlacer for usage with Vulkan.
struct VkRenderPass_T * VkRenderPass
Definition interlacer.vulkan.h:17
struct VkPhysicalDevice_T * VkPhysicalDevice
Definition interlacer.vulkan.h:11
struct VkImageView_T * VkImageView
Definition interlacer.vulkan.h:14
int32_t VkFormatInt
Definition interlacer.vulkan.h:19
struct VkQueue_T * VkQueue
Definition interlacer.vulkan.h:18
struct VkFramebuffer_T * VkFramebuffer
Definition interlacer.vulkan.h:12
struct VkDevice_T * VkDevice
Definition interlacer.vulkan.h:10
struct VkCommandBuffer_T * VkCommandBuffer
Definition interlacer.vulkan.h:16
struct VkSemaphore_T * VkSemaphore
Definition interlacer.vulkan.h:15
int32_t VkImageLayoutInt
Definition interlacer.vulkan.h:20
struct VkImage_T * VkImage
Definition interlacer.vulkan.h:13
The main entry point into CNSDK C API.
Definition core.h:63
leia_interlacer's initial configuration.
Definition interlacer.h:46
The main entity used for performing interlacing on Leia devices.
Definition interlacer.h:41