#include #include #include #include "vulkan.hpp" #include "glfw.hpp" #include "window.hpp" namespace ls { VulkanState::VulkanState(GlfwState* state) { VkApplicationInfo application_info = { VK_STRUCTURE_TYPE_APPLICATION_INFO, NULL, "Game", VK_MAKE_VERSION( 1, 0, 0 ), "LightningStrike", VK_MAKE_VERSION( 1, 0, 0 ), VK_API_VERSION_1_3, }; std::vector vk_exts = state->get_vulkan_exts(); VkInstanceCreateInfo instance_create_info = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, NULL, 0, &application_info, 0, NULL, static_cast(vk_exts.size()), vk_exts.data() }; VkResult res = vkCreateInstance(&instance_create_info, NULL, &__instance); assert(res == VK_SUCCESS); } void VulkanState::__make_surface(GlfwWindow* win, VkSurfaceKHR* surf) { VkResult res = win->__make_surface(__instance, surf); assert(res == VK_SUCCESS); } }