24 lines
730 B
C++
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
|