2#include "../foray_basics.hpp"
3#include "../foray_vkb.hpp"
24 inline operator bool()
const {
return !!
mDevice.device; }
25 inline operator VkDevice()
const {
return mDevice.device; }
26 inline operator VkPhysicalDevice()
const {
return mPhysicalDevice.physical_device; }
27 inline operator vkb::Device&() {
return mDevice; }
28 inline operator const vkb::Device&()
const {
return mDevice; }
Wraps selection and creation of a vulkan logical device.
Definition foray_vulkandevice.hpp:9
void BuildDevice()
If mEnableDefaultDeviceFeatures is set, configures defaults. If mBeforeDeviceBuildFunc is set,...
VulkanDevice & SetBeforePhysicalDeviceSelectFunc(BeforePhysicalDeviceSelectFunctionPointer beforePhysicalDeviceSelectFunc)
Set the function called after default configuration and before action with physical device selector.
vkb::DispatchTable mDispatchTable
Definition foray_vulkandevice.hpp:77
BeforeDeviceBuildFunctionPointer mBeforeDeviceBuildFunc
Definition foray_vulkandevice.hpp:61
bool mEnableDefaultPhysicalDeviceFeatures
Enables features a few physical device features (anisotrophy, etc.)
Definition foray_vulkandevice.hpp:68
vkb::Device mDevice
Definition foray_vulkandevice.hpp:76
bool Exists() const
Definition foray_vulkandevice.hpp:54
core::Context * mContext
Definition foray_vulkandevice.hpp:73
vkb::PhysicalDevice mPhysicalDevice
Definition foray_vulkandevice.hpp:75
std::function< void(vkb::PhysicalDeviceSelector &)> BeforePhysicalDeviceSelectFunctionPointer
Function called after default configuration and before action with physical device selector.
Definition foray_vulkandevice.hpp:12
VulkanDevice(core::Context *context, BeforePhysicalDeviceSelectFunctionPointer beforePhysicalDeviceSelectFunc, BeforeDeviceBuildFunctionPointer beforeDeviceBuildFunc)
Definition foray_vulkandevice.hpp:19
VulkanDevice & SetBeforeDeviceBuildFunc(BeforeDeviceBuildFunctionPointer beforeDeviceBuildFunc)
Set the function called after default configuration and before action with device builder.
std::function< void(vkb::DeviceBuilder &)> BeforeDeviceBuildFunctionPointer
Function called after default configuration and before action with device builder.
Definition foray_vulkandevice.hpp:14
struct foray::base::VulkanDevice::DefaultFeatures mDefaultFeatures
void SelectPhysicalDevice()
If mSetDefaultCapabilitiesToDeviceSelector is set, configures defaults. If mBeforePhysicalDeviceSelec...
BeforePhysicalDeviceSelectFunctionPointer mBeforePhysicalDeviceSelectFunc
Definition foray_vulkandevice.hpp:60
void Create()
Create logical device by invoking SelectPhysicalDevice(..,) and BuildDevice()
bool mSetDefaultCapabilitiesToDeviceSelector
Requires present capability, prefers dedicated devices. Enables VK_KHR_ACCELERATION_STRUCTURE,...
Definition foray_vulkandevice.hpp:64
VkPhysicalDeviceFeatures mPhysicalDeviceFeatures
Definition foray_vulkandevice.hpp:88
bool mEnableDefaultDeviceFeatures
Enables features listed in mDefaultFeatures member.
Definition foray_vulkandevice.hpp:66
bool mShowConsoleDeviceSelectionPrompt
If enabled, prompts the user in the console to select a device if multiple suitable devices are prese...
Definition foray_vulkandevice.hpp:71
#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
Definition foray_vulkandevice.hpp:80
VkPhysicalDeviceAccelerationStructureFeaturesKHR AccelerationStructureFeatures
Definition foray_vulkandevice.hpp:83
VkPhysicalDeviceDescriptorIndexingFeaturesEXT DescriptorIndexingFeatures
Definition foray_vulkandevice.hpp:84
VkPhysicalDeviceRayTracingPipelineFeaturesKHR RayTracingPipelineFeatures
Definition foray_vulkandevice.hpp:82
VkPhysicalDeviceSynchronization2Features Sync2FEatures
Definition foray_vulkandevice.hpp:85
VkPhysicalDeviceBufferDeviceAddressFeatures BufferDeviceAdressFeatures
Definition foray_vulkandevice.hpp:81
Non owning context object.
Definition foray_context.hpp:16