@@ -18,15 +18,12 @@ namespace Graphics {
1818namespace Booter {
1919#pragma region Instance
2020// Instance
21- VkInstance create_instance (const char * appName,
22- const char * engineName,
23- bool validation,
24- std::vector<const char *> validationLayers);
21+ VkInstance create_instance (const char * appName, const char * engineName, bool validation, std::vector<const char *> validationLayers);
2522
2623#pragma region Validation
2724// Validation Logger
28- VkDebugUtilsMessengerEXT create_debug_messenger (VkInstance instance);
29- void populate_debug_messenger_create_info (VkDebugUtilsMessengerCreateInfoEXT& createInfo);
25+ VkDebugUtilsMessengerEXT create_debug_messenger (VkInstance instance);
26+ void populate_debug_messenger_create_info (VkDebugUtilsMessengerCreateInfoEXT& createInfo);
3027inline static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback (VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3128 VkDebugUtilsMessageTypeFlagsEXT messageType,
3229 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
@@ -40,15 +37,12 @@ VkResult create_debug_utils_messenger_EXT(VkInstance
4037 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
4138 const VkAllocationCallbacks* pAllocator,
4239 VkDebugUtilsMessengerEXT* pDebugMessenger);
43- void destroy_debug_utils_messenger_EXT (VkInstance instance,
44- VkDebugUtilsMessengerEXT debugMessenger,
45- const VkAllocationCallbacks* pAllocator);
40+ void destroy_debug_utils_messenger_EXT (VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks* pAllocator);
4641#pragma region GPU
4742// GPU
48- VkPhysicalDevice
49- pick_graphics_card_device (VkInstance instance, VkSurfaceKHR surface, std::vector<const char *> extensions);
50- int rate_device_suitability (VkPhysicalDevice device, VkSurfaceKHR surface, std::vector<const char *> extensions);
51- bool check_device_extension_support (VkPhysicalDevice device, std::vector<const char *> extensions);
43+ VkPhysicalDevice pick_graphics_card_device (VkInstance instance, VkSurfaceKHR surface, std::vector<const char *> extensions);
44+ int rate_device_suitability (VkPhysicalDevice device, VkSurfaceKHR surface, std::vector<const char *> extensions);
45+ bool check_device_extension_support (VkPhysicalDevice device, std::vector<const char *> extensions);
5246struct SwapChainSupportDetails {
5347 VkSurfaceCapabilitiesKHR capabilities;
5448 std::vector<VkSurfaceFormatKHR> formats;
@@ -62,8 +56,10 @@ struct QueueFamilyIndices {
6256 std::optional<uint32_t > transferFamily;
6357 std::optional<uint32_t > sparseBindingFamily;
6458
65- inline bool isComplete () const {
66- return graphicsFamily.has_value () && presentFamily.has_value () && computeFamily.has_value ();
59+ inline bool isComplete (bool headless = false ) const {
60+
61+ return !headless ? graphicsFamily.has_value () && presentFamily.has_value () && computeFamily.has_value ()
62+ : graphicsFamily.has_value () && computeFamily.has_value ();
6763 }
6864};
6965QueueFamilyIndices find_queue_families (VkPhysicalDevice device, VkSurfaceKHR surface);
0 commit comments