yave/src/yave_vulkan_surface.cpp

24 lines
730 B
C++

#include "yave_vulkan_surface.hpp"
#include "yave_vulkan_instance.hpp"
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
namespace yave {
YaveVulkanSurface::YaveVulkanSurface(YaveVulkanInstance &yaveVulkanInstance,
YaveWindow *window)
: instance(yaveVulkanInstance) {
if (glfwCreateWindowSurface(*instance.getVkInstance(),
window->getGLFWWindow(), nullptr, &surface)) {
throw std::runtime_error("failed to create window surface!");
}
}
VkSurfaceKHR *YaveVulkanSurface::getVkSurface() { return &this->surface; }
YaveVulkanSurface::~YaveVulkanSurface() {
vkDestroySurfaceKHR(*instance.getVkInstance(), surface, nullptr);
}
} // namespace yave