6#ifndef INCLUDE_VULKANENGINE_DEVICE_H_
7#define INCLUDE_VULKANENGINE_DEVICE_H_
10#include <vulkan/vulkan.hpp>
13#ifndef VK_API_VERSION_MAJOR
14#define VK_API_VERSION_MAJOR(version) VK_VERSION_MAJOR(version)
17#ifndef VK_API_VERSION_MINOR
18#define VK_API_VERSION_MINOR(version) VK_VERSION_MINOR(version)
21#ifndef VK_API_VERSION_PATCH
22#define VK_API_VERSION_PATCH(version) VK_VERSION_PATCH(version)
24#include <vk_mem_alloc.h>
38 const vk::Device& getVkDevice()
const;
40 void destroyCommandBuffers();
44 vk::CommandBuffer getCommandBuffer(
size_t index);
46 const VmaAllocator& getVmaAllocator();
48 vk::CommandPool getVkCommandPool();
50 vk::Queue getVkGraphicsQueue();
52 void beginSingleUsageCommandBuffer();
54 void endSingleUsageCommandBuffer();
57 int graphics_queue_family_index;
59 VmaAllocator vma_allocator;
60 vk::Queue vk_graphics_queue;
61 vk::CommandPool vk_command_pool;
62 std::vector<vk::CommandBuffer> vk_command_buffers;
63 vk::CommandBuffer single_use_command_buffer;
64 VULKAN_HPP_DEFAULT_DISPATCHER_TYPE vk_dispatch_loader_dynamic;
66#ifdef ENABLE_VULKAN_VALIDATION
67 vk::DebugUtilsMessengerEXT vk_debug_utils_messenger;
69 static VKAPI_ATTR VkBool32 VKAPI_CALL
70 debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT message_severity,
71 VkDebugUtilsMessageTypeFlagsEXT message_type,
72 const VkDebugUtilsMessengerCallbackDataEXT* callback_data,
Device()
Constructor.
Definition: Device.cpp:28
~Device()
Destructor.
Definition: Device.cpp:156
TODO development of this class is in progress.
Definition: Attribute.h:13