Working as of https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Physical_devices_and_queue_families
This commit is contained in:
1
VulkanContext.cpp
Normal file
1
VulkanContext.cpp
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#include "VulkanContext.h"
|
||||||
49
VulkanContext.h
Normal file
49
VulkanContext.h
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
#include "Logger.h"
|
||||||
|
#include "VulkanInstanceManager.h"
|
||||||
|
#include "VulkanDeviceManager.h"
|
||||||
|
#include "VulkanDebugManager.h"
|
||||||
|
#include "GlfwWindowManager.h"
|
||||||
|
|
||||||
|
#define GLFW_INCLUDE_VULKAN
|
||||||
|
#include <GLFW/glfw3.h>
|
||||||
|
|
||||||
|
const std::vector<const char*> ValidationLayers = {
|
||||||
|
"VK_LAYER_KHRONOS_validation"
|
||||||
|
};
|
||||||
|
|
||||||
|
struct FVulkanConfig
|
||||||
|
{
|
||||||
|
bool bValidationEnabled = true;
|
||||||
|
bool bVerboseLogging = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
class VulkanContext
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VulkanContext();
|
||||||
|
~VulkanContext();
|
||||||
|
|
||||||
|
void Initialize(FVulkanConfig& inConfig);
|
||||||
|
void Cleanup();
|
||||||
|
|
||||||
|
private:
|
||||||
|
FVulkanConfig Config = {};
|
||||||
|
|
||||||
|
VkInstance Instance = VK_NULL_HANDLE;
|
||||||
|
VkPhysicalDevice PhysicalDevice = VK_NULL_HANDLE;
|
||||||
|
VkDevice Device = VK_NULL_HANDLE;
|
||||||
|
VkQueue GraphicsQueue = VK_NULL_HANDLE;
|
||||||
|
VkSurfaceKHR Surface = VK_NULL_HANDLE;
|
||||||
|
VkDebugUtilsMessengerEXT debugMessenger = VK_NULL_HANDLE;
|
||||||
|
|
||||||
|
public:
|
||||||
|
VkInstance GetInstance() const { return Instance; }
|
||||||
|
VkPhysicalDevice GetPhysicalDevice() const { return PhysicalDevice; }
|
||||||
|
VkDevice GetDevice() const { return Device; }
|
||||||
|
VkQueue GetGraphicsQueue() const { return GraphicsQueue; }
|
||||||
|
VkSurfaceKHR GetSurface() const { return Surface; }
|
||||||
|
};
|
||||||
@@ -3,20 +3,20 @@
|
|||||||
#define GLFW_INCLUDE_VULKAN
|
#define GLFW_INCLUDE_VULKAN
|
||||||
#include <GLFW/glfw3.h>
|
#include <GLFW/glfw3.h>
|
||||||
|
|
||||||
struct FCreateDebugUtilsMessengerExtParams
|
// struct FCreateDebugUtilsMessengerExtParams
|
||||||
{
|
//{
|
||||||
VkInstance Instance;
|
// VkInstance Instance;
|
||||||
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo;
|
// const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo;
|
||||||
const VkAllocationCallbacks* pAllocator;
|
// const VkAllocationCallbacks* pAllocator;
|
||||||
VkDebugUtilsMessengerEXT* pDebugMessenger;
|
// VkDebugUtilsMessengerEXT* pDebugMessenger;
|
||||||
};
|
// };
|
||||||
|
//
|
||||||
struct FDestroyDebugUtilsMessengerExtParams
|
// struct FDestroyDebugUtilsMessengerExtParams
|
||||||
{
|
//{
|
||||||
VkInstance Instance;
|
// VkInstance Instance;
|
||||||
VkDebugUtilsMessengerEXT DebugMessenger;
|
// VkDebugUtilsMessengerEXT DebugMessenger;
|
||||||
const VkAllocationCallbacks* pAllocator;
|
// const VkAllocationCallbacks* pAllocator;
|
||||||
};
|
// };
|
||||||
|
|
||||||
class VulkanDeviceManager
|
class VulkanDeviceManager
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user