OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::VulkanInstance Class Referencefinal

We need the ability to re-enumerate devices to handle physical device removing, that requires fresh VkInstance instance, as otherwise Vulkan returns obsolete physical devices list. More...

#include <OgreVulkanDevice.h>

Public Member Functions

 VulkanInstance (const String &appName, VulkanExternalInstance *externalInstance, PFN_vkDebugReportCallbackEXT debugCallback, RenderSystem *renderSystem)
 
 ~VulkanInstance ()
 
const VulkanPhysicalDevicefindByName (const String &name) const
 
void initDebugFeatures (PFN_vkDebugReportCallbackEXT callback, void *userdata, bool hasRenderDocApi)
 
void initPhysicalDeviceList ()
 

Static Public Member Functions

static void enumerateExtensionsAndLayers (VulkanExternalInstance *externalInstance)
 
static bool hasExtension (const char *extension)
 

Public Attributes

PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT
 
PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT
 
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallback
 
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallback
 
VkDebugReportCallbackEXT mDebugReportCallback
 
VkInstance mVkInstance
 
bool mVkInstanceIsExternal
 
FastArray< VulkanPhysicalDevicemVulkanPhysicalDevices
 

Static Public Attributes

static FastArray< const char * > enabledExtensions
 
static FastArray< const char * > enabledLayers
 
static bool hasValidationLayers
 

Detailed Description

We need the ability to re-enumerate devices to handle physical device removing, that requires fresh VkInstance instance, as otherwise Vulkan returns obsolete physical devices list.

Constructor & Destructor Documentation

◆ VulkanInstance()

Ogre::VulkanInstance::VulkanInstance ( const String appName,
VulkanExternalInstance externalInstance,
PFN_vkDebugReportCallbackEXT  debugCallback,
RenderSystem renderSystem 
)

◆ ~VulkanInstance()

Ogre::VulkanInstance::~VulkanInstance ( )

Member Function Documentation

◆ enumerateExtensionsAndLayers()

static void Ogre::VulkanInstance::enumerateExtensionsAndLayers ( VulkanExternalInstance externalInstance)
static

◆ findByName()

const VulkanPhysicalDevice* Ogre::VulkanInstance::findByName ( const String name) const

◆ hasExtension()

static bool Ogre::VulkanInstance::hasExtension ( const char *  extension)
static

◆ initDebugFeatures()

void Ogre::VulkanInstance::initDebugFeatures ( PFN_vkDebugReportCallbackEXT  callback,
void *  userdata,
bool  hasRenderDocApi 
)

◆ initPhysicalDeviceList()

void Ogre::VulkanInstance::initPhysicalDeviceList ( )

Member Data Documentation

◆ CmdBeginDebugUtilsLabelEXT

PFN_vkCmdBeginDebugUtilsLabelEXT Ogre::VulkanInstance::CmdBeginDebugUtilsLabelEXT

◆ CmdEndDebugUtilsLabelEXT

PFN_vkCmdEndDebugUtilsLabelEXT Ogre::VulkanInstance::CmdEndDebugUtilsLabelEXT

◆ CreateDebugReportCallback

PFN_vkCreateDebugReportCallbackEXT Ogre::VulkanInstance::CreateDebugReportCallback

◆ DestroyDebugReportCallback

PFN_vkDestroyDebugReportCallbackEXT Ogre::VulkanInstance::DestroyDebugReportCallback

◆ enabledExtensions

FastArray<const char *> Ogre::VulkanInstance::enabledExtensions
static

◆ enabledLayers

FastArray<const char *> Ogre::VulkanInstance::enabledLayers
static

◆ hasValidationLayers

bool Ogre::VulkanInstance::hasValidationLayers
static

◆ mDebugReportCallback

VkDebugReportCallbackEXT Ogre::VulkanInstance::mDebugReportCallback

◆ mVkInstance

VkInstance Ogre::VulkanInstance::mVkInstance

◆ mVkInstanceIsExternal

bool Ogre::VulkanInstance::mVkInstanceIsExternal

◆ mVulkanPhysicalDevices

FastArray<VulkanPhysicalDevice> Ogre::VulkanInstance::mVulkanPhysicalDevices

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