diff --git a/include/Nazara/Vulkan/VkInstance.hpp b/include/Nazara/Vulkan/VkInstance.hpp index ded2b0ef7..7b36ff14a 100644 --- a/include/Nazara/Vulkan/VkInstance.hpp +++ b/include/Nazara/Vulkan/VkInstance.hpp @@ -34,11 +34,11 @@ namespace Nz inline PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* name); - inline void GetPhysicalDeviceFeatures(VkPhysicalDevice device, VkPhysicalDeviceFeatures* features); - inline void GetPhysicalDeviceFormatProperties(VkPhysicalDevice device, VkFormat format, VkFormatProperties* formatProperties); + inline VkPhysicalDeviceFeatures GetPhysicalDeviceFeatures(VkPhysicalDevice device); + inline VkFormatProperties GetPhysicalDeviceFormatProperties(VkPhysicalDevice device, VkFormat format); inline bool GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* imageFormatProperties); - inline void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice device, VkPhysicalDeviceMemoryProperties* properties); - inline void GetPhysicalDeviceProperties(VkPhysicalDevice device, VkPhysicalDeviceProperties* properties); + inline VkPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties(VkPhysicalDevice device); + inline VkPhysicalDeviceProperties GetPhysicalDeviceProperties(VkPhysicalDevice device); bool GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice device, std::vector* queueFamilyProperties); inline VkResult GetLastErrorCode() const; diff --git a/include/Nazara/Vulkan/VkInstance.inl b/include/Nazara/Vulkan/VkInstance.inl index bea7164fb..a8793ece7 100644 --- a/include/Nazara/Vulkan/VkInstance.inl +++ b/include/Nazara/Vulkan/VkInstance.inl @@ -85,14 +85,20 @@ namespace Nz return m_instance; } - inline void Instance::GetPhysicalDeviceFeatures(VkPhysicalDevice device, VkPhysicalDeviceFeatures* features) + inline VkPhysicalDeviceFeatures Instance::GetPhysicalDeviceFeatures(VkPhysicalDevice device) { - return vkGetPhysicalDeviceFeatures(device, features); + VkPhysicalDeviceFeatures features; + vkGetPhysicalDeviceFeatures(device, &features); + + return features; } - inline void Instance::GetPhysicalDeviceFormatProperties(VkPhysicalDevice device, VkFormat format, VkFormatProperties* formatProperties) + inline VkFormatProperties Instance::GetPhysicalDeviceFormatProperties(VkPhysicalDevice device, VkFormat format) { - return vkGetPhysicalDeviceFormatProperties(device, format, formatProperties); + VkFormatProperties formatProperties; + vkGetPhysicalDeviceFormatProperties(device, format, &formatProperties); + + return formatProperties; } inline bool Instance::GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* imageFormatProperties) @@ -107,14 +113,20 @@ namespace Nz return true; } - inline void Instance::GetPhysicalDeviceMemoryProperties(VkPhysicalDevice device, VkPhysicalDeviceMemoryProperties* memoryProperties) + inline VkPhysicalDeviceMemoryProperties Instance::GetPhysicalDeviceMemoryProperties(VkPhysicalDevice device) { - return vkGetPhysicalDeviceMemoryProperties(device, memoryProperties); + VkPhysicalDeviceMemoryProperties memoryProperties; + vkGetPhysicalDeviceMemoryProperties(device, &memoryProperties); + + return memoryProperties; } - inline void Instance::GetPhysicalDeviceProperties(VkPhysicalDevice device, VkPhysicalDeviceProperties* properties) + inline VkPhysicalDeviceProperties Instance::GetPhysicalDeviceProperties(VkPhysicalDevice device) { - return vkGetPhysicalDeviceProperties(device, properties); + VkPhysicalDeviceProperties properties; + vkGetPhysicalDeviceProperties(device, &properties); + + return properties; } inline PFN_vkVoidFunction Instance::GetProcAddr(const char* name) diff --git a/src/Nazara/Vulkan/Vulkan.cpp b/src/Nazara/Vulkan/Vulkan.cpp index 6af41d9b2..599728b35 100644 --- a/src/Nazara/Vulkan/Vulkan.cpp +++ b/src/Nazara/Vulkan/Vulkan.cpp @@ -213,9 +213,9 @@ namespace Nz deviceInfo.device = physDevice; - s_instance.GetPhysicalDeviceFeatures(physDevice, &deviceInfo.features); - s_instance.GetPhysicalDeviceMemoryProperties(physDevice, &deviceInfo.memoryProperties); - s_instance.GetPhysicalDeviceProperties(physDevice, &deviceInfo.properties); + deviceInfo.features = s_instance.GetPhysicalDeviceFeatures(physDevice); + deviceInfo.memoryProperties = s_instance.GetPhysicalDeviceMemoryProperties(physDevice); + deviceInfo.properties = s_instance.GetPhysicalDeviceProperties(physDevice); s_physDevices.emplace_back(std::move(deviceInfo)); }