SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::VulkanContext Class Reference

#include <VulkanContext.hpp>

+ Collaboration diagram for sd::VulkanContext:

Public Member Functions

 VulkanContext (const GlfwContext &glfw_ctx)
 
void init (const Window &window)
 
 ~VulkanContext ()
 
vk::UniqueInstance & get_instance ()
 
std::vector< const char * > & get_device_extensions ()
 
vk::PhysicalDevice & get_physical_device ()
 
vk::UniqueDevice & get_vulkan_device ()
 
vk::PhysicalDeviceFeatures2 & get_features2 ()
 
vk::PhysicalDeviceVulkan12Features & get_features12 ()
 
vk::PhysicalDeviceVulkan13Features & get_features13 ()
 
VmaAllocator get_vma_allocator () const
 
u32 get_graphics_family_index () const
 
vk::Queue get_graphics_queue () const
 
vk::SurfaceFormatKHR get_surface_format () const
 
bool is_initialized ()
 

Private Member Functions

vk::UniqueInstance create_vulkan_application_instance ()
 
void setup_queues (vk::SurfaceKHR surface)
 
void setup_device_extensions ()
 
void create_vulkan_device ()
 

Private Attributes

const GlfwContextm_glfw_ctx
 
vk::UniqueInstance m_instance
 
vk::PhysicalDevice m_phys_dev
 
vk::UniqueDevice m_vulkan_device
 
vk::Queue m_graphics_queue
 
u32 m_graphics_family_index {}
 
vk::SurfaceFormatKHR m_surface_format
 
std::vector< const char * > m_device_exts
 
PFN_vkGetInstanceProcAddr m_vk_get_instance_proc_addr = nullptr
 
PFN_vkGetDeviceProcAddr m_vk_get_device_proc_addr = nullptr
 
VmaAllocator m_allocator = VK_NULL_HANDLE
 
vk::PhysicalDeviceFeatures2 m_features2
 
vk::PhysicalDeviceVulkan12Features m_features12
 
vk::PhysicalDeviceVulkan13Features m_features13
 

Constructor & Destructor Documentation

◆ VulkanContext()

sd::VulkanContext::VulkanContext ( const GlfwContext glfw_ctx)
explicit

◆ ~VulkanContext()

sd::VulkanContext::~VulkanContext ( )

Member Function Documentation

◆ create_vulkan_application_instance()

vk::UniqueInstance sd::VulkanContext::create_vulkan_application_instance ( )
private

◆ create_vulkan_device()

void sd::VulkanContext::create_vulkan_device ( )
private

◆ get_device_extensions()

std::vector< const char * > & sd::VulkanContext::get_device_extensions ( )

◆ get_features12()

vk::PhysicalDeviceVulkan12Features & sd::VulkanContext::get_features12 ( )

◆ get_features13()

vk::PhysicalDeviceVulkan13Features & sd::VulkanContext::get_features13 ( )

◆ get_features2()

vk::PhysicalDeviceFeatures2 & sd::VulkanContext::get_features2 ( )

◆ get_graphics_family_index()

u32 sd::VulkanContext::get_graphics_family_index ( ) const

◆ get_graphics_queue()

vk::Queue sd::VulkanContext::get_graphics_queue ( ) const

◆ get_instance()

vk::UniqueInstance & sd::VulkanContext::get_instance ( )

◆ get_physical_device()

vk::PhysicalDevice & sd::VulkanContext::get_physical_device ( )

◆ get_surface_format()

vk::SurfaceFormatKHR sd::VulkanContext::get_surface_format ( ) const
inline

◆ get_vma_allocator()

VmaAllocator sd::VulkanContext::get_vma_allocator ( ) const
inline

◆ get_vulkan_device()

vk::UniqueDevice & sd::VulkanContext::get_vulkan_device ( )

◆ init()

void sd::VulkanContext::init ( const Window window)

◆ is_initialized()

bool sd::VulkanContext::is_initialized ( )
inline

◆ setup_device_extensions()

void sd::VulkanContext::setup_device_extensions ( )
private

◆ setup_queues()

void sd::VulkanContext::setup_queues ( vk::SurfaceKHR  surface)
private

Member Data Documentation

◆ m_allocator

VmaAllocator sd::VulkanContext::m_allocator = VK_NULL_HANDLE
private

◆ m_device_exts

std::vector<const char*> sd::VulkanContext::m_device_exts
private

◆ m_features12

vk::PhysicalDeviceVulkan12Features sd::VulkanContext::m_features12
private

◆ m_features13

vk::PhysicalDeviceVulkan13Features sd::VulkanContext::m_features13
private

◆ m_features2

vk::PhysicalDeviceFeatures2 sd::VulkanContext::m_features2
private

◆ m_glfw_ctx

const GlfwContext& sd::VulkanContext::m_glfw_ctx
private

◆ m_graphics_family_index

u32 sd::VulkanContext::m_graphics_family_index {}
private

◆ m_graphics_queue

vk::Queue sd::VulkanContext::m_graphics_queue
private

◆ m_instance

vk::UniqueInstance sd::VulkanContext::m_instance
private

◆ m_phys_dev

vk::PhysicalDevice sd::VulkanContext::m_phys_dev
private

◆ m_surface_format

vk::SurfaceFormatKHR sd::VulkanContext::m_surface_format
private

◆ m_vk_get_device_proc_addr

PFN_vkGetDeviceProcAddr sd::VulkanContext::m_vk_get_device_proc_addr = nullptr
private

◆ m_vk_get_instance_proc_addr

PFN_vkGetInstanceProcAddr sd::VulkanContext::m_vk_get_instance_proc_addr = nullptr
private

◆ m_vulkan_device

vk::UniqueDevice sd::VulkanContext::m_vulkan_device
private

The documentation for this class was generated from the following files: