3 #include <vulkan/vulkan.h>
5 #include <kiba/containers/array.h>
8 #include <kiba/renderer/vulkan/allocator.h>
12 array_of(
const char *) extensions;
13 array_of(
const char *) layers;
22 VkPhysicalDeviceFeatures features;
23 array_of(
const char *) extensions;
29 VkCommandPool command_pool;
30 VkCommandBuffer command_buffer;
35 VkPhysicalDevice physical;
45 VkSurfaceFormatKHR format;
46 VkPresentModeKHR present_mode;
53 VkSurfaceTransformFlagBitsKHR transform;
54 VkSwapchainKHR swap_chain;
56 array_of(VkImage) images;
57 array_of(VkImageView) image_views;
58 array_of(VkFramebuffer) framebuffers;
61 #define VULKAN_MAX_FRAMES_IN_FLIGHT 3
64 VkRenderPass renderpass;
65 VkDescriptorSetLayout descriptor_set_layout;
66 VkDescriptorPool descriptor_pool;
67 VkDescriptorSet descriptor_sets[VULKAN_MAX_FRAMES_IN_FLIGHT];
68 VkPipelineLayout layout;
69 array_of(VkPipelineShaderStageCreateInfo) shaders;
70 VkPipeline graphics_pipeline;
74 VkSemaphore sp_image_available;
75 VkSemaphore sp_render_finished;
81 VkDeviceMemory memory;
87 VkDeviceMemory memory;
93 VkDebugUtilsMessengerEXT debug_messenger;
Global typedefs and macros.
Interface to access platform specific windowing functionality.