shengine pre-release
shengine by mrsinho
Loading...
Searching...
No Matches
shEngineVkCore.h
Go to the documentation of this file.
1#ifndef SH_ENGINE_VK_CORE_H
2#define SH_ENGINE_VK_CORE_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif//__cplusplus
7
8
9
10#include "shvulkan/shVulkan.h"
11
12
13
14#define SH_ENGINE_SWAPCHAIN_IMAGE_COUNT 2
15#define SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT 6
16#define SH_ENGINE_RENDERPASS_ATTACHMENT_COUNT 3
17#define SH_ENGINE_SUBASS_COLOR_ATTACHMENT_COUNT 1
18
19
20
21typedef struct ShEngineVkCore {
22
23 //uint32_t instance_extension_count;
24 //char** pp_instance_extensions;
25
26 VkInstance instance;
27
28 VkSurfaceKHR surface;
29 VkSurfaceCapabilitiesKHR surface_capabilities;
30
31 VkPhysicalDevice physical_device;
32 VkPhysicalDeviceProperties physical_device_properties;
33 VkPhysicalDeviceFeatures physical_device_features;
34 VkPhysicalDeviceMemoryProperties physical_device_memory_properties;
35
40
41 uint32_t graphics_queue_family_indices [SH_MAX_STACK_QUEUE_FAMILY_COUNT];
42 uint32_t present_queue_family_indices [SH_MAX_STACK_QUEUE_FAMILY_COUNT];
43 uint32_t compute_queue_family_indices [SH_MAX_STACK_QUEUE_FAMILY_COUNT];
44 uint32_t transfer_queue_family_indices [SH_MAX_STACK_QUEUE_FAMILY_COUNT];
45
50
51 VkDevice device;
53
58
59 VkCommandPool graphics_cmd_pool;
60 VkCommandPool present_cmd_pool;
61
63 VkCommandBuffer present_cmd_buffer;
64 VkCommandBuffer compute_cmd_buffer;
65 VkCommandBuffer transfer_cmd_buffer;
66
68
71
72 VkSwapchainKHR swapchain;
76
77 uint32_t sample_count;
78
79 VkAttachmentDescription input_color_attachment;
80 VkAttachmentReference input_color_attachment_reference;
81 VkAttachmentDescription depth_attachment;
82 VkAttachmentReference depth_attachment_reference;
83 VkAttachmentDescription resolve_attachment;
84 VkAttachmentReference resolve_attachment_reference;
85 VkSubpassDescription subpass;
86
87 VkRenderPass renderpass;
88
91 VkImage depth_image;
92 VkDeviceMemory depth_image_memory;
93 VkImageView depth_image_view;
97
99
101 uint8_t swapchain_suboptimal;//not used
102
104
105
106
107#ifdef __cplusplus
108}
109#endif//__cplusplus
110
111#endif//SH_ENGINE_VK_CORE_H
#define SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT
Definition shEngineVkCore.h:15
Definition shEngineVkCore.h:21
uint32_t compute_queue_family_count
Definition shEngineVkCore.h:38
VkCommandPool present_cmd_pool
Definition shEngineVkCore.h:60
VkImage swapchain_images[SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT]
Definition shEngineVkCore.h:89
VkQueue graphics_queue
Definition shEngineVkCore.h:54
VkAttachmentDescription resolve_attachment
Definition shEngineVkCore.h:83
VkImage depth_image
Definition shEngineVkCore.h:91
VkInstance instance
Definition shEngineVkCore.h:26
VkCommandBuffer graphics_cmd_buffers[SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT]
Definition shEngineVkCore.h:62
VkSharingMode swapchain_image_sharing_mode
Definition shEngineVkCore.h:73
VkFramebuffer framebuffers[SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT]
Definition shEngineVkCore.h:98
uint32_t graphics_queue_family_indices[SH_MAX_STACK_QUEUE_FAMILY_COUNT]
Definition shEngineVkCore.h:41
uint32_t compute_queue_family_indices[SH_MAX_STACK_QUEUE_FAMILY_COUNT]
Definition shEngineVkCore.h:43
VkPhysicalDevice physical_device
Definition shEngineVkCore.h:31
VkRenderPass renderpass
Definition shEngineVkCore.h:87
VkAttachmentReference depth_attachment_reference
Definition shEngineVkCore.h:82
VkQueue transfer_queue
Definition shEngineVkCore.h:57
uint32_t default_present_queue_family_index
Definition shEngineVkCore.h:47
uint32_t default_transfer_queue_family_index
Definition shEngineVkCore.h:49
VkAttachmentDescription input_color_attachment
Definition shEngineVkCore.h:79
uint32_t swapchain_image_idx
Definition shEngineVkCore.h:100
VkImageView depth_image_view
Definition shEngineVkCore.h:93
VkSemaphore current_image_acquired_semaphore
Definition shEngineVkCore.h:69
VkPhysicalDeviceFeatures physical_device_features
Definition shEngineVkCore.h:33
uint32_t transfer_queue_family_indices[SH_MAX_STACK_QUEUE_FAMILY_COUNT]
Definition shEngineVkCore.h:44
uint32_t transfer_queue_family_count
Definition shEngineVkCore.h:39
VkQueue compute_queue
Definition shEngineVkCore.h:56
VkDeviceMemory input_color_image_memory
Definition shEngineVkCore.h:95
VkSurfaceKHR surface
Definition shEngineVkCore.h:28
VkSemaphore current_graphics_queue_finished_semaphore
Definition shEngineVkCore.h:70
uint32_t device_extension_count
Definition shEngineVkCore.h:52
uint32_t present_queue_family_count
Definition shEngineVkCore.h:37
VkPhysicalDeviceMemoryProperties physical_device_memory_properties
Definition shEngineVkCore.h:34
VkDeviceMemory depth_image_memory
Definition shEngineVkCore.h:92
VkAttachmentReference resolve_attachment_reference
Definition shEngineVkCore.h:84
uint32_t sample_count
Definition shEngineVkCore.h:77
VkPhysicalDeviceProperties physical_device_properties
Definition shEngineVkCore.h:32
VkDevice device
Definition shEngineVkCore.h:51
VkFence graphics_cmd_fences[SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT]
Definition shEngineVkCore.h:67
VkImage input_color_image
Definition shEngineVkCore.h:94
uint32_t swapchain_image_count
Definition shEngineVkCore.h:75
VkAttachmentDescription depth_attachment
Definition shEngineVkCore.h:81
VkCommandBuffer compute_cmd_buffer
Definition shEngineVkCore.h:64
VkSubpassDescription subpass
Definition shEngineVkCore.h:85
uint32_t default_compute_queue_family_index
Definition shEngineVkCore.h:48
uint32_t default_graphics_queue_family_index
Definition shEngineVkCore.h:46
uint32_t present_queue_family_indices[SH_MAX_STACK_QUEUE_FAMILY_COUNT]
Definition shEngineVkCore.h:42
VkCommandPool graphics_cmd_pool
Definition shEngineVkCore.h:59
VkImageView swapchain_image_views[SH_ENGINE_MAX_SWAPCHAIN_IMAGE_COUNT]
Definition shEngineVkCore.h:90
VkAttachmentReference input_color_attachment_reference
Definition shEngineVkCore.h:80
VkCommandBuffer present_cmd_buffer
Definition shEngineVkCore.h:63
VkSwapchainKHR swapchain
Definition shEngineVkCore.h:72
VkSurfaceCapabilitiesKHR surface_capabilities
Definition shEngineVkCore.h:29
VkFormat swapchain_image_format
Definition shEngineVkCore.h:74
VkCommandBuffer transfer_cmd_buffer
Definition shEngineVkCore.h:65
uint8_t swapchain_suboptimal
Definition shEngineVkCore.h:101
uint32_t graphics_queue_family_count
Definition shEngineVkCore.h:36
VkQueue present_queue
Definition shEngineVkCore.h:55
VkImageView input_color_image_view
Definition shEngineVkCore.h:96