2#include "../foray_basics.hpp"
3#include "../foray_vkb.hpp"
34 inline operator
bool()
const {
return !!
mInstance.instance; }
35 inline operator VkInstance()
const {
return mInstance.instance; }
47 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
48 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
52 VkDebugReportObjectTypeEXT objectType,
56 const char* pLayerPrefix,
Wraps creation and lifetime of a vulkan instance. Includes default debug callback logging setup.
Definition foray_vulkaninstance.hpp:9
vkb::Instance mInstance
Definition foray_vulkaninstance.hpp:73
VkDebugReportCallbackEXT mDebugReportCallbackHandle
Definition foray_vulkaninstance.hpp:64
std::function< void(vkb::InstanceBuilder &)> BeforeInstanceBuildFunctionPointer
Function called after default callback configuration and before action of the instance builder.
Definition foray_vulkaninstance.hpp:12
bool Exists() const
Definition foray_vulkaninstance.hpp:40
BeforeInstanceBuildFunctionPointer mBeforeInstanceBuildFunc
Definition foray_vulkaninstance.hpp:60
bool mEnableDebugReport
Definition foray_vulkaninstance.hpp:69
PFN_vkDebugUtilsMessengerCallbackEXT mDebugMessengerFunc
Definition foray_vulkaninstance.hpp:61
bool mEnableDebugLayersAndCallbacks
If true, validation layers are enabled, and if mDebugMessengerFunc or mDebugUserData are set they are...
Definition foray_vulkaninstance.hpp:67
void Create()
If mEnableDebugLayersAndCallbacks is set, configures validation and callback. If mBeforeInstanceBuild...
core::Context * mContext
Definition foray_vulkaninstance.hpp:71
FORAY_SETTER_V(DebugReportFunc)
FORAY_SETTER_V(DebugMessengerFunc)
Set the function receiving vulkan validation messages.
PFN_vkDebugReportCallbackEXT mDebugReportFunc
Definition foray_vulkaninstance.hpp:63
void * mDebugUserData
Definition foray_vulkaninstance.hpp:62
static VkBool32 DefaultDebugMessengerCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData)
FORAY_SETTER_V(BeforeInstanceBuildFunc)
Set the function called after default callback configuration and before action of the instance builde...
VulkanInstance(core::Context *context, BeforeInstanceBuildFunctionPointer beforeInstanceBuildFunc, bool enableDebugLayersAndCallbacks)
Definition foray_vulkaninstance.hpp:17
static VkBool32 DefaultDebugReportCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char *pLayerPrefix, const char *pMessage, void *pUserData)
#define FORAY_PROPERTY_V(member)
Getter+Setter shorthand for value types.
Definition foray_basics.hpp:81
#define FORAY_PROPERTY_R(member)
Getter+Setter shorthand for reference types.
Definition foray_basics.hpp:86
Definition foray_base_declares.hpp:3
Non owning context object.
Definition foray_context.hpp:16