Make destroy_* functions pass by reference

The destroy_instance and destroy_device functions should be passed by
const reference to make it consistent with other destroy functions.
This commit is contained in:
Charles Giessen 2023-12-28 15:55:10 -06:00 committed by Charles Giessen
parent 605c3f1712
commit 25dc27c31c
2 changed files with 8 additions and 7 deletions

View File

@ -489,7 +489,7 @@ bool SystemInfo::is_layer_available(const char* layer_name) const {
if (!layer_name) return false; if (!layer_name) return false;
return detail::check_layer_supported(available_layers, layer_name); return detail::check_layer_supported(available_layers, layer_name);
} }
void destroy_surface(Instance instance, VkSurfaceKHR surface) { void destroy_surface(Instance const& instance, VkSurfaceKHR surface) {
if (instance.instance != VK_NULL_HANDLE && surface != VK_NULL_HANDLE) { if (instance.instance != VK_NULL_HANDLE && surface != VK_NULL_HANDLE) {
detail::vulkan_functions().fp_vkDestroySurfaceKHR(instance.instance, surface, instance.allocation_callbacks); detail::vulkan_functions().fp_vkDestroySurfaceKHR(instance.instance, surface, instance.allocation_callbacks);
} }
@ -499,7 +499,7 @@ void destroy_surface(VkInstance instance, VkSurfaceKHR surface, VkAllocationCall
detail::vulkan_functions().fp_vkDestroySurfaceKHR(instance, surface, callbacks); detail::vulkan_functions().fp_vkDestroySurfaceKHR(instance, surface, callbacks);
} }
} }
void destroy_instance(Instance instance) { void destroy_instance(Instance const& instance) {
if (instance.instance != VK_NULL_HANDLE) { if (instance.instance != VK_NULL_HANDLE) {
if (instance.debug_messenger != VK_NULL_HANDLE) if (instance.debug_messenger != VK_NULL_HANDLE)
destroy_debug_utils_messenger(instance.instance, instance.debug_messenger, instance.allocation_callbacks); destroy_debug_utils_messenger(instance.instance, instance.debug_messenger, instance.allocation_callbacks);
@ -1471,7 +1471,7 @@ Device::operator VkDevice() const { return this->device; }
CustomQueueDescription::CustomQueueDescription(uint32_t index, std::vector<float> priorities) CustomQueueDescription::CustomQueueDescription(uint32_t index, std::vector<float> priorities)
: index(index), priorities(priorities) {} : index(index), priorities(priorities) {}
void destroy_device(Device device) { void destroy_device(Device const& device) {
device.internal_table.fp_vkDestroyDevice(device.device, device.allocation_callbacks); device.internal_table.fp_vkDestroyDevice(device.device, device.allocation_callbacks);
} }

View File

@ -301,9 +301,9 @@ struct Instance {
friend class PhysicalDeviceSelector; friend class PhysicalDeviceSelector;
}; };
void destroy_surface(Instance instance, VkSurfaceKHR surface); // release surface handle void destroy_surface(Instance const& instance, VkSurfaceKHR surface); // release surface handle
void destroy_surface(VkInstance instance, VkSurfaceKHR surface, VkAllocationCallbacks* callbacks = nullptr); // release surface handle void destroy_surface(VkInstance instance, VkSurfaceKHR surface, VkAllocationCallbacks* callbacks = nullptr); // release surface handle
void destroy_instance(Instance instance); // release instance resources void destroy_instance(Instance const& instance); // release instance resources
/* If headless mode is false, by default vk-bootstrap use the following logic to enable the windowing extensions /* If headless mode is false, by default vk-bootstrap use the following logic to enable the windowing extensions
@ -730,9 +730,10 @@ struct Device {
PFN_vkDestroyDevice fp_vkDestroyDevice = nullptr; PFN_vkDestroyDevice fp_vkDestroyDevice = nullptr;
} internal_table; } internal_table;
friend class DeviceBuilder; friend class DeviceBuilder;
friend void destroy_device(Device device); friend void destroy_device(Device const& device);
}; };
// For advanced device queue setup // For advanced device queue setup
struct CustomQueueDescription { struct CustomQueueDescription {
explicit CustomQueueDescription(uint32_t index, std::vector<float> priorities); explicit CustomQueueDescription(uint32_t index, std::vector<float> priorities);
@ -740,7 +741,7 @@ struct CustomQueueDescription {
std::vector<float> priorities; std::vector<float> priorities;
}; };
void destroy_device(Device device); void destroy_device(Device const& device);
class DeviceBuilder { class DeviceBuilder {
public: public: