67 VkCommandPool commandPool, VkDevice device);
98 VkMemoryPropertyFlags properties, VkPhysicalDevice physicalDevice);
115 VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,
116 VkBuffer* buffer, VkDeviceMemory* bufferMemory);
131 VkBuffer dstBuffer, VkDeviceSize size, VkCommandPool commandPool);
144 VkPhysicalDevice device, VkSurfaceKHR surface);
201 VkImageLayout finalLayout, VkImageLayout msaaFinalLayout,
bool msaa,
202 bool clearFramebuffer,
bool dependency);
234 VkCommandPool commandPool);
This initializes, manages and destroys the logical and physical devices(GPU).
VkCommandBuffer beginSingleTimeCommands(VkCommandPool commandPool, VkDevice device)
Begins recording of a command buffer that will be used once.
std::vector< VkFramebuffer > createFramebuffer(Chronos::Engine::Device device, Chronos::Engine::SwapChain swapChain, VkRenderPass renderPass, bool msaa)
Creates a set of framebuffers for use.
std::vector< VkCommandBuffer > createCommandBuffer(Chronos::Engine::Device device, Chronos::Engine::SwapChain swapChain, VkCommandPool commandPool)
Creates a set of command buffers for use.
void endSingleTimeCommands(VkCommandBuffer *commandBuffer, Chronos::Engine::Device device, VkCommandPool commandPool)
Ends recording of single time command buffer and destroys it.
VkRenderPass createRenderPass(Chronos::Engine::Device device, Chronos::Engine::SwapChain swapChain, VkImageLayout initalLayout, VkImageLayout finalLayout, VkImageLayout msaaFinalLayout, bool msaa, bool clearFramebuffer, bool dependency)
Creates a render pass.
uint32_t findMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties, VkPhysicalDevice physicalDevice)
Finds suitable memory type for given requrements.
QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device, VkSurfaceKHR surface)
Gets the indices of the needed queue families.
void createBuffer(Chronos::Engine::Device device, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer *buffer, VkDeviceMemory *bufferMemory)
Creates a buffer of a given size, usage and properties.
void copyBuffer(Chronos::Engine::Device device, VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size, VkCommandPool commandPool)
Copies data from one buffer to another.
VkCommandPool createCommandPool(Chronos::Engine::Device device, VkSurfaceKHR surface)
Creates a command pool for a given device and surface.
This is used to check if a given familty supports graphics and presentation.
std::optional< uint32_t > presentFamily
std::optional< uint32_t > graphicsFamily
Contains the swapChain class along with all the swapChain related functions.