Vulkan: Simplify GetPhysicalDevice* functions if possible

Former-commit-id: b988fa0aa44cd6a4901f2c3a186be36f7af4fa5b [formerly 078ffb29db688a5be9073a878c9097c1dd8d5b90] [formerly 4ec47c87662b2a5e9ce6552a136028fd38926137 [formerly 608a8dfadf1d4a28c83eaf7e8c7f1d68367ed311]]
Former-commit-id: a648892c9de765f4ad831502650389ab134e932c [formerly 40666003fc56c12591937aae0de884904fe0a6cb]
Former-commit-id: 6517c78c107dcded7b5a3dbcec860f1a3d74936d
This commit is contained in:
Lynix 2016-08-09 13:51:56 +02:00
parent e9f888b550
commit 16818fa7a3
3 changed files with 27 additions and 15 deletions

View File

@ -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<VkQueueFamilyProperties>* queueFamilyProperties);
inline VkResult GetLastErrorCode() const;

View File

@ -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)

View File

@ -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));
}