This commit is contained in:
@@ -46,6 +46,8 @@ namespace Oatmeal {
|
|||||||
private:
|
private:
|
||||||
// Members //
|
// Members //
|
||||||
|
|
||||||
|
GLFWwindow *m_window = nullptr;
|
||||||
|
|
||||||
vk::raii::Context m_context;
|
vk::raii::Context m_context;
|
||||||
vk::raii::Instance m_instance = nullptr;
|
vk::raii::Instance m_instance = nullptr;
|
||||||
vk::DebugUtilsMessengerEXT m_debugMessenger = nullptr;
|
vk::DebugUtilsMessengerEXT m_debugMessenger = nullptr;
|
||||||
@@ -81,5 +83,9 @@ namespace Oatmeal {
|
|||||||
void createInstance();
|
void createInstance();
|
||||||
std::vector<const char *> getRequiredExtensions();
|
std::vector<const char *> getRequiredExtensions();
|
||||||
void setupDebugMessenger();
|
void setupDebugMessenger();
|
||||||
|
void createSurface();
|
||||||
|
void pickPhysicalDevice();
|
||||||
|
bool isPhysicalDeviceSupported(vk::raii::PhysicalDevice device);
|
||||||
|
uint32_t scorePhysicalDevice(vk::raii::PhysicalDevice device);
|
||||||
};
|
};
|
||||||
} // namespace Oatmeal
|
} // namespace Oatmeal
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|||||||
18
oatmeal/src/ctx_surface.cpp
Normal file
18
oatmeal/src/ctx_surface.cpp
Normal 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
|
||||||
Reference in New Issue
Block a user