Surface
All checks were successful
Build / Build (push) Successful in 3m15s

This commit is contained in:
2026-04-13 17:08:31 -04:00
parent aa39f81bb1
commit 7d50f6c148
3 changed files with 24 additions and 1 deletions

View File

@@ -46,6 +46,8 @@ namespace Oatmeal {
private:
// Members //
GLFWwindow *m_window = nullptr;
vk::raii::Context m_context;
vk::raii::Instance m_instance = nullptr;
vk::DebugUtilsMessengerEXT m_debugMessenger = nullptr;
@@ -81,5 +83,9 @@ namespace Oatmeal {
void createInstance();
std::vector<const char *> getRequiredExtensions();
void setupDebugMessenger();
void createSurface();
void pickPhysicalDevice();
bool isPhysicalDeviceSupported(vk::raii::PhysicalDevice device);
uint32_t scorePhysicalDevice(vk::raii::PhysicalDevice device);
};
} // namespace Oatmeal

View File

@@ -1,5 +1,4 @@
#include <GLFW/glfw3.h>
#include <X11/Xlib.h>
#include <cstdint>
#include <iostream>
#include <stdexcept>

View File

@@ -0,0 +1,18 @@
#include "ctx.h"
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>
#include <vulkan/vulkan_core.h>
#include <vulkan/vulkan_raii.hpp>
namespace Oatmeal {
void ctx::createSurface() {
VkSurfaceKHR _surface;
if (glfwCreateWindowSurface(*m_instance, m_window, nullptr, &_surface)) {
throw std::runtime_error("Failed to create window surface");
}
m_surface = vk::raii::SurfaceKHR(m_instance, _surface);
}
} // namespace Oatmeal