2023-09-17 17:01:29 +00:00
|
|
|
#pragma once
|
|
|
|
#include <SDL.h>
|
|
|
|
#include <src/video/khronos/vulkan/vulkan_core.h>
|
|
|
|
|
2023-09-18 11:52:16 +00:00
|
|
|
#include <vector>
|
2023-09-17 17:01:29 +00:00
|
|
|
|
2023-09-18 11:52:16 +00:00
|
|
|
#include "emulator.h"
|
2023-09-17 17:01:29 +00:00
|
|
|
|
2023-09-18 11:52:16 +00:00
|
|
|
namespace Graphics::Vulkan {
|
2023-09-17 17:01:29 +00:00
|
|
|
|
2023-09-18 11:52:16 +00:00
|
|
|
void vulkanCreate(Emulator::WindowCtx* ctx);
|
|
|
|
void vulkanGetInstanceExtensions(Emulator::VulkanExt* ext);
|
|
|
|
void vulkanFindCompatiblePhysicalDevice(VkInstance instance, VkSurfaceKHR surface, const std::vector<const char*>& device_extensions,
|
|
|
|
Emulator::VulkanSurfaceCapabilities* out_capabilities, VkPhysicalDevice* out_device, Emulator::VulkanQueues* out_queues);
|
2023-09-19 06:15:59 +00:00
|
|
|
Emulator::VulkanQueues vulkanFindQueues(VkPhysicalDevice device, VkSurfaceKHR surface);
|
2023-09-19 11:02:40 +00:00
|
|
|
void vulkanGetSurfaceCapabilities(VkPhysicalDevice physical_device, VkSurfaceKHR surface,
|
|
|
|
Emulator::VulkanSurfaceCapabilities* surfaceCap);
|
2023-09-18 11:52:16 +00:00
|
|
|
}; // namespace Graphics::Vulkan
|