mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 10:56:58 +02:00
Refactor graphics #1
This commit is contained in:
@@ -10,7 +10,9 @@
|
||||
#define VMA_STATIC_VULKAN_FUNCTIONS 0
|
||||
#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <vulkan/vulkan.hpp>
|
||||
#include <vulkan/vulkan_hash.hpp>
|
||||
|
||||
@@ -27,6 +29,29 @@ std::string VulkanToString(vk::Result value);
|
||||
std::string VulkanToString(vk::Format value);
|
||||
std::string VulkanToString(vk::ImageLayout value);
|
||||
std::string VulkanToString(vk::QueueFlags value);
|
||||
vk::Format VulkanFormat(uint32_t guest_format);
|
||||
void RequireVulkanSuccess(vk::Result result, const char* operation);
|
||||
|
||||
template <typename T, typename Enumerator>
|
||||
[[nodiscard]] std::vector<T> EnumerateVulkan(const char* operation, Enumerator&& enumerate) {
|
||||
for (;;) {
|
||||
uint32_t count = 0;
|
||||
RequireVulkanSuccess(enumerate(&count, nullptr), operation);
|
||||
if (count == 0) {
|
||||
return {};
|
||||
}
|
||||
|
||||
std::vector<T> values(count);
|
||||
const auto result = enumerate(&count, values.data());
|
||||
if (result == vk::Result::eSuccess) {
|
||||
values.resize(count);
|
||||
return values;
|
||||
}
|
||||
if (result != vk::Result::eIncomplete) {
|
||||
RequireVulkanSuccess(result, operation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Libs::Graphics
|
||||
|
||||
|
||||
Reference in New Issue
Block a user