quakeforge/include/QF/Vulkan/renderpass.h

55 lines
1.8 KiB
C
Raw Normal View History

2020-02-12 09:55:51 +00:00
#ifndef __QF_Vulkan_renderpass_h
#define __QF_Vulkan_renderpass_h
2020-02-17 14:30:25 +00:00
#include "QF/darray.h"
typedef struct qfv_attachmentdescription_s
DARRAY_TYPE (VkAttachmentDescription) qfv_attachmentdescription_t;
2020-02-12 09:55:51 +00:00
#define QFV_AllocAttachmentDescription(num, allocator) \
2020-02-17 14:30:25 +00:00
DARRAY_ALLOCFIXED (qfv_attachmentdescription_t, num, allocator)
2020-02-12 09:55:51 +00:00
2020-02-17 14:30:25 +00:00
typedef struct qfv_attachmentreference_s
DARRAY_TYPE (VkAttachmentReference) qfv_attachmentreference_t;
2020-02-12 09:55:51 +00:00
#define QFV_AllocAttachmentReference(num, allocator) \
2020-02-17 14:30:25 +00:00
DARRAY_ALLOCFIXED (qfv_attachmentreference_t, num, allocator)
2020-02-12 09:55:51 +00:00
typedef struct qfv_subpassparameters_s {
VkPipelineBindPoint pipelineBindPoint;
qfv_attachmentreference_t *inputAttachments;
qfv_attachmentreference_t *colorAttachments;
qfv_attachmentreference_t *resolveAttachments;
VkAttachmentReference *depthStencilAttachment;
uint32_t numPreserve;
uint32_t *preserveAttachments;
} qfv_subpassparameters_t;
2020-02-17 14:30:25 +00:00
typedef struct qfv_subpassparametersset_s
DARRAY_TYPE (qfv_subpassparameters_t) qfv_subpassparametersset_t;
2020-02-12 09:55:51 +00:00
#define QFV_AllocSubpassParametersSet(num, allocator) \
2020-02-17 14:30:25 +00:00
DARRAY_ALLOCFIXED (qfv_subpassparametersset_t, num, allocator)
2020-02-12 09:55:51 +00:00
2020-02-17 14:30:25 +00:00
typedef struct qfv_subpassdependency_s
DARRAY_TYPE (VkSubpassDependency) qfv_subpassdependency_t;
2020-02-12 09:55:51 +00:00
#define QFV_AllocSubpassDependencies(num, allocator) \
2020-02-17 14:30:25 +00:00
DARRAY_ALLOCFIXED (qfv_subpassdependency_t, num, allocator)
2020-02-12 09:55:51 +00:00
2020-02-17 14:30:25 +00:00
struct qfv_device_s;
VkRenderPass
2020-02-12 09:55:51 +00:00
QFV_CreateRenderPass (struct qfv_device_s *device,
qfv_attachmentdescription_t *attachments,
qfv_subpassparametersset_t *subpasses,
qfv_subpassdependency_t *dependencies);
2020-02-17 14:30:25 +00:00
VkFramebuffer
QFV_CreateFramebuffer (struct qfv_device_s *device,
VkRenderPass renderPass,
2020-02-12 09:55:51 +00:00
uint32_t numAttachments,
VkImageView *attachments,
2020-02-12 09:55:51 +00:00
uint32_t width, uint32_t height, uint32_t layers);
#endif//__QF_Vulkan_renderpass_h