// Copyright 2015-2021 The Khronos Group Inc. // // SPDX-License-Identifier: Apache-2.0 OR MIT // // This header is generated from the Khronos Vulkan XML API Registry. #ifndef VULKAN_RAII_HPP #define VULKAN_RAII_HPP #include #if !defined( VULKAN_HPP_RAII_NAMESPACE ) # define VULKAN_HPP_RAII_NAMESPACE raii #endif #if !defined( VULKAN_HPP_RAII_DISPATCHER_TYPE ) # define VULKAN_HPP_RAII_DISPATCHER_TYPE VULKAN_HPP_DEFAULT_DISPATCHER_TYPE #endif namespace VULKAN_HPP_NAMESPACE { namespace VULKAN_HPP_RAII_NAMESPACE { #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) && !defined( VULKAN_HPP_NO_EXCEPTIONS ) template VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_INLINE T exchange( T & obj, U && newValue ) { # if ( 14 <= VULKAN_HPP_CPP_VERSION ) return std::exchange( obj, std::forward( newValue ) ); # else T oldValue = std::move( obj ); obj = std::forward( newValue ); return oldValue; # endif } class Context { public: Context() { PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = m_dynamicLoader.getProcAddress( "vkGetInstanceProcAddr" ); m_dispatcher.init( vkGetInstanceProcAddr ); } ~Context() = default; Context( Context const & ) = delete; Context( Context && rhs ) : m_dynamicLoader( std::move( rhs.m_dynamicLoader ) ), m_dispatcher( std::move( rhs.m_dispatcher ) ) {} Context & operator=( Context const & ) = delete; Context & operator =( Context && rhs ) { if ( this != &rhs ) { m_dynamicLoader = std::move( rhs.m_dynamicLoader ); m_dispatcher = std::move( rhs.m_dispatcher ); } return *this; } VULKAN_HPP_NODISCARD std::vector enumerateInstanceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; VULKAN_HPP_NODISCARD std::vector enumerateInstanceLayerProperties() const; VULKAN_HPP_NODISCARD uint32_t enumerateInstanceVersion() const; VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return &m_dispatcher; } private: vk::DynamicLoader m_dynamicLoader; VULKAN_HPP_RAII_DISPATCHER_TYPE m_dispatcher; }; class Instance { public: using CType = VkInstance; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance; public: Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context, VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( *context.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateInstance( reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_instance ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateInstance" ); } m_dispatcher.init( m_instance ); } Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context, VkInstance instance, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( *context.getDispatcher() ) { m_dispatcher.init( m_instance ); } ~Instance() { if ( m_instance ) { getDispatcher()->vkDestroyInstance( static_cast( m_instance ), m_allocator ); } } Instance() = delete; Instance( Instance const & ) = delete; Instance( Instance && rhs ) : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Instance & operator=( Instance const & ) = delete; Instance & operator =( Instance && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyInstance( static_cast( m_instance ), m_allocator ); m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ); m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector enumeratePhysicalDeviceGroups() const; VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::Instance const & operator*() const VULKAN_HPP_NOEXCEPT { return m_instance; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return &m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Instance m_instance; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE m_dispatcher; }; class PhysicalDevice { public: using CType = VkPhysicalDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice; public: PhysicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VkPhysicalDevice physicalDevice ) : m_physicalDevice( physicalDevice ), m_dispatcher( instance.getDispatcher() ) {} PhysicalDevice( VkPhysicalDevice physicalDevice, VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher ) : m_physicalDevice( physicalDevice ), m_dispatcher( dispatcher ) {} PhysicalDevice() = delete; PhysicalDevice( PhysicalDevice const & ) = delete; PhysicalDevice( PhysicalDevice && rhs ) : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) ) , m_dispatcher( rhs.m_dispatcher ) {} PhysicalDevice & operator=( PhysicalDevice const & ) = delete; PhysicalDevice & operator =( PhysicalDevice && rhs ) { if ( this != &rhs ) { m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ); m_dispatcher = rhs.m_dispatcher; } return *this; } # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) void acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ VULKAN_HPP_NODISCARD std::vector enumerateDeviceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; VULKAN_HPP_NODISCARD std::vector enumerateDeviceLayerProperties() const; VULKAN_HPP_NODISCARD std::pair, std::vector> enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const; VULKAN_HPP_NODISCARD std::vector getCalibrateableTimeDomainsEXT() const; VULKAN_HPP_NODISCARD std::vector getCooperativeMatrixPropertiesNV() const; # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT; # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ VULKAN_HPP_NODISCARD std::vector getDisplayPlaneProperties2KHR() const; VULKAN_HPP_NODISCARD std::vector getDisplayPlanePropertiesKHR() const; VULKAN_HPP_NODISCARD std::vector getDisplayProperties2KHR() const; VULKAN_HPP_NODISCARD std::vector getDisplayPropertiesKHR() const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2() const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getFeatures2() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getFragmentShadingRatesKHR() const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2 getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; template VULKAN_HPP_NODISCARD StructureChain getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2() const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getMemoryProperties2() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2() const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getProperties2() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2() const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2() const; # if defined( VK_USE_PLATFORM_SCREEN_QNX ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT; # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getSupportedFramebufferMixedSamplesCombinationsNV() const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; template VULKAN_HPP_NODISCARD StructureChain getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; VULKAN_HPP_NODISCARD std::vector getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; VULKAN_HPP_NODISCARD std::vector getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD std::vector getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD std::vector getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; VULKAN_HPP_NODISCARD std::vector getToolPropertiesEXT() const; # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display ) const VULKAN_HPP_NOEXCEPT; # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_XCB_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT; # endif /*VK_USE_PLATFORM_XCB_KHR*/ # if defined( VK_USE_PLATFORM_XLIB_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT; # endif /*VK_USE_PLATFORM_XLIB_KHR*/ VULKAN_HPP_NAMESPACE::PhysicalDevice const & operator*() const VULKAN_HPP_NOEXCEPT { return m_physicalDevice; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class PhysicalDevices : public std::vector { public: PhysicalDevices( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = instance.getDispatcher(); std::vector physicalDevices; uint32_t physicalDeviceCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( dispatcher->vkEnumeratePhysicalDevices( static_cast( *instance ), &physicalDeviceCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount ) { physicalDevices.resize( physicalDeviceCount ); result = static_cast( dispatcher->vkEnumeratePhysicalDevices( static_cast( *instance ), &physicalDeviceCount, physicalDevices.data() ) ); VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) { this->reserve( physicalDeviceCount ); for ( auto const & physicalDevice : physicalDevices ) { this->emplace_back( physicalDevice, dispatcher ); } } else { throwResultException( result, "vkEnumeratePhysicalDevices" ); } } PhysicalDevices() = delete; PhysicalDevices( PhysicalDevices const & ) = delete; PhysicalDevices( PhysicalDevices && rhs ) = default; PhysicalDevices & operator=( PhysicalDevices const & ) = delete; PhysicalDevices & operator=( PhysicalDevices && rhs ) = default; }; class Device { public: using CType = VkDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice; public: Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( *physicalDevice.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDevice( static_cast( *physicalDevice ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_device ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDevice" ); } m_dispatcher.init( m_device ); } Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VkDevice device, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( *physicalDevice.getDispatcher() ) { m_dispatcher.init( m_device ); } ~Device() { if ( m_device ) { getDispatcher()->vkDestroyDevice( static_cast( m_device ), m_allocator ); } } Device() = delete; Device( Device const & ) = delete; Device( Device && rhs ) : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Device & operator=( Device const & ) = delete; Device & operator =( Device && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDevice( static_cast( m_device ), m_allocator ); m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ); m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD std::pair acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const; void acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const; void bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const; void bindBufferMemory2( ArrayProxy const & bindInfos ) const; void bindImageMemory2( ArrayProxy const & bindInfos ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info ) const; void debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const; void debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const; void waitIdle() const; void displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo ) const; void flushMappedMemoryRanges( ArrayProxy const & memoryRanges ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; # if defined( VK_USE_PLATFORM_ANDROID_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # if defined( VK_USE_PLATFORM_ANDROID_KHR ) template VULKAN_HPP_NODISCARD StructureChain getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::pair, uint64_t> getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR getGroupPresentCapabilitiesKHR() const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; VULKAN_HPP_NODISCARD uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD int getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD HANDLE getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; template VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT; # if defined( VK_USE_PLATFORM_ANDROID_KHR ) VULKAN_HPP_NODISCARD struct AHardwareBuffer * getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const; # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ VULKAN_HPP_NODISCARD int getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_NODISCARD zx_handle_t getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; # endif /*VK_USE_PLATFORM_FUCHSIA*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const; # endif /*VK_USE_PLATFORM_FUCHSIA*/ VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PerformanceValueINTEL getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const; VULKAN_HPP_NODISCARD std::vector getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const; VULKAN_HPP_NODISCARD std::vector getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const; VULKAN_HPP_NODISCARD std::vector getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const; VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD int getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD HANDLE getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_NODISCARD zx_handle_t getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; # endif /*VK_USE_PLATFORM_FUCHSIA*/ void importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) void importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ void importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) void importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) void importSemaphoreZirconHandleFUCHSIA( const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const; # endif /*VK_USE_PLATFORM_FUCHSIA*/ void initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const; void invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges ) const; void releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT; void resetFences( ArrayProxy const & fences ) const; void setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const; void setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const; void setHdrMetadataEXT( ArrayProxy const & swapchains, ArrayProxy const & metadata ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data ) const; void signalSemaphore( const SemaphoreSignalInfo & signalInfo ) const; void uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT; void updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForFences( ArrayProxy const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; template VULKAN_HPP_NODISCARD std::vector writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride ) const; template VULKAN_HPP_NODISCARD T writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride ) const; VULKAN_HPP_NAMESPACE::Device const & operator*() const VULKAN_HPP_NOEXCEPT { return m_device; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return &m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Device m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE m_dispatcher; }; class AccelerationStructureKHR { public: using CType = VkAccelerationStructureKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR; public: AccelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateAccelerationStructureKHR( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_accelerationStructureKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateAccelerationStructureKHR" ); } } AccelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkAccelerationStructureKHR accelerationStructureKHR, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_accelerationStructureKHR( accelerationStructureKHR ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~AccelerationStructureKHR() { if ( m_accelerationStructureKHR ) { getDispatcher()->vkDestroyAccelerationStructureKHR( m_device, static_cast( m_accelerationStructureKHR ), m_allocator ); } } AccelerationStructureKHR() = delete; AccelerationStructureKHR( AccelerationStructureKHR const & ) = delete; AccelerationStructureKHR( AccelerationStructureKHR && rhs ) : m_accelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureKHR, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} AccelerationStructureKHR & operator=( AccelerationStructureKHR const & ) = delete; AccelerationStructureKHR & operator =( AccelerationStructureKHR && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyAccelerationStructureKHR( m_device, static_cast( m_accelerationStructureKHR ), m_allocator ); m_accelerationStructureKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureKHR, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & operator*() const VULKAN_HPP_NOEXCEPT { return m_accelerationStructureKHR; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::AccelerationStructureKHR m_accelerationStructureKHR; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class AccelerationStructureNV { public: using CType = VkAccelerationStructureNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV; public: AccelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateAccelerationStructureNV( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_accelerationStructureNV ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateAccelerationStructureNV" ); } } AccelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkAccelerationStructureNV accelerationStructureNV, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_accelerationStructureNV( accelerationStructureNV ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~AccelerationStructureNV() { if ( m_accelerationStructureNV ) { getDispatcher()->vkDestroyAccelerationStructureNV( m_device, static_cast( m_accelerationStructureNV ), m_allocator ); } } AccelerationStructureNV() = delete; AccelerationStructureNV( AccelerationStructureNV const & ) = delete; AccelerationStructureNV( AccelerationStructureNV && rhs ) : m_accelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureNV, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} AccelerationStructureNV & operator=( AccelerationStructureNV const & ) = delete; AccelerationStructureNV & operator =( AccelerationStructureNV && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyAccelerationStructureNV( m_device, static_cast( m_accelerationStructureNV ), m_allocator ); m_accelerationStructureNV = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureNV, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } template VULKAN_HPP_NODISCARD std::vector getHandle( size_t dataSize ) const; template VULKAN_HPP_NODISCARD T getHandle() const; VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & operator*() const VULKAN_HPP_NOEXCEPT { return m_accelerationStructureNV; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::AccelerationStructureNV m_accelerationStructureNV; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Buffer { public: using CType = VkBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer; public: Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateBuffer( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_buffer ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateBuffer" ); } } Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkBuffer buffer, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_buffer( buffer ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Buffer() { if ( m_buffer ) { getDispatcher()->vkDestroyBuffer( m_device, static_cast( m_buffer ), m_allocator ); } } Buffer() = delete; Buffer( Buffer const & ) = delete; Buffer( Buffer && rhs ) : m_buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Buffer & operator=( Buffer const & ) = delete; Buffer & operator =( Buffer && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyBuffer( m_device, static_cast( m_buffer ), m_allocator ); m_buffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::Buffer const & operator*() const VULKAN_HPP_NOEXCEPT { return m_buffer; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Buffer m_buffer; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class BufferView { public: using CType = VkBufferView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView; public: BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateBufferView( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_bufferView ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateBufferView" ); } } BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkBufferView bufferView, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_bufferView( bufferView ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~BufferView() { if ( m_bufferView ) { getDispatcher()->vkDestroyBufferView( m_device, static_cast( m_bufferView ), m_allocator ); } } BufferView() = delete; BufferView( BufferView const & ) = delete; BufferView( BufferView && rhs ) : m_bufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} BufferView & operator=( BufferView const & ) = delete; BufferView & operator =( BufferView && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyBufferView( m_device, static_cast( m_bufferView ), m_allocator ); m_bufferView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::BufferView const & operator*() const VULKAN_HPP_NOEXCEPT { return m_bufferView; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::BufferView m_bufferView; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class CommandPool { public: using CType = VkCommandPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool; public: CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateCommandPool( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_commandPool ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateCommandPool" ); } } CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkCommandPool commandPool, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_commandPool( commandPool ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~CommandPool() { if ( m_commandPool ) { getDispatcher()->vkDestroyCommandPool( m_device, static_cast( m_commandPool ), m_allocator ); } } CommandPool() = delete; CommandPool( CommandPool const & ) = delete; CommandPool( CommandPool && rhs ) : m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} CommandPool & operator=( CommandPool const & ) = delete; CommandPool & operator =( CommandPool && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyCommandPool( m_device, static_cast( m_commandPool ), m_allocator ); m_commandPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } void reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; void trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::CommandPool const & operator*() const VULKAN_HPP_NOEXCEPT { return m_commandPool; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::CommandPool m_commandPool; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class CommandBuffer { public: using CType = VkCommandBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer; public: CommandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkCommandBuffer commandBuffer, VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool const & commandPool ) : m_commandBuffer( commandBuffer ) , m_device( *device ) , m_commandPool( *commandPool ) , m_dispatcher( device.getDispatcher() ) {} CommandBuffer( VkCommandBuffer commandBuffer, VkDevice device, VkCommandPool commandPool, VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher ) : m_commandBuffer( commandBuffer ), m_device( device ), m_commandPool( commandPool ), m_dispatcher( dispatcher ) {} ~CommandBuffer() { if ( m_commandBuffer ) { getDispatcher()->vkFreeCommandBuffers( m_device, m_commandPool, 1, reinterpret_cast( &m_commandBuffer ) ); } } CommandBuffer() = delete; CommandBuffer( CommandBuffer const & ) = delete; CommandBuffer( CommandBuffer && rhs ) : m_commandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} ) ) , m_device( rhs.m_device ) , m_commandPool( rhs.m_commandPool ) , m_dispatcher( rhs.m_dispatcher ) {} CommandBuffer & operator=( CommandBuffer const & ) = delete; CommandBuffer & operator =( CommandBuffer && rhs ) { if ( this != &rhs ) { getDispatcher()->vkFreeCommandBuffers( m_device, m_commandPool, 1, reinterpret_cast( &m_commandBuffer ) ); m_commandBuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} ); m_device = rhs.m_device; m_commandPool = rhs.m_commandPool; m_dispatcher = rhs.m_dispatcher; } return *this; } void begin( const CommandBufferBeginInfo & beginInfo ) const; void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT; void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT; void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT; void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT; void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy const & descriptorSets, ArrayProxy const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT; void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT; void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT; void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT; void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT; void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void bindVertexBuffers( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, ArrayProxy const & strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT; void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo ) const VULKAN_HPP_NOEXCEPT; void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT; void buildAccelerationStructuresIndirectKHR( ArrayProxy const & infos, ArrayProxy const & indirectDeviceAddresses, ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void buildAccelerationStructuresKHR( ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void clearAttachments( ArrayProxy const & attachments, ArrayProxy const & rects ) const VULKAN_HPP_NOEXCEPT; void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy const & ranges ) const VULKAN_HPP_NOEXCEPT; void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy const & ranges ) const VULKAN_HPP_NOEXCEPT; void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT; void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT; void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT; void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT; void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT; void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT; void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo ) const VULKAN_HPP_NOEXCEPT; void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT; void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT; void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT; void debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT; void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT; void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT; void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; void drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT; void drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; void drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT; void endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT; void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT; void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT; void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT; void endRenderPass() const VULKAN_HPP_NOEXCEPT; void endRenderPass2( const SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void executeCommands( ArrayProxy const & commandBuffers ) const VULKAN_HPP_NOEXCEPT; void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT; void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT; void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT; void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT; void pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT; template void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy const & values ) const VULKAN_HPP_NOEXCEPT; void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT; void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void * pData ) const VULKAN_HPP_NOEXCEPT; void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT; void resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT; void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT; void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT; void setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT; void setCheckpointNV( const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT; void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy const & customSampleOrders ) const VULKAN_HPP_NOEXCEPT; void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT; void setDepthBounds( float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT; void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT; void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT; void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT; void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT; void setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT; void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles ) const VULKAN_HPP_NOEXCEPT; void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT; void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT; void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT; void setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT; void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT; void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT; void setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT; void setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const; void setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const; void setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const; void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT; void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT; void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT; void setScissor( uint32_t firstScissor, ArrayProxy const & scissors ) const VULKAN_HPP_NOEXCEPT; void setScissorWithCountEXT( ArrayProxy const & scissors ) const VULKAN_HPP_NOEXCEPT; void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT; void setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT; void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT; void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT; void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT; void setViewport( uint32_t firstViewport, ArrayProxy const & viewports ) const VULKAN_HPP_NOEXCEPT; void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy const & shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT; void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy const & viewportWScalings ) const VULKAN_HPP_NOEXCEPT; void setViewportWithCountEXT( ArrayProxy const & viewports ) const VULKAN_HPP_NOEXCEPT; void traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT; void traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT; void traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT; template void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy const & data ) const VULKAN_HPP_NOEXCEPT; void waitEvents( ArrayProxy const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT; void waitEvents2KHR( ArrayProxy const & events, ArrayProxy const & dependencyInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; void writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; void writeAccelerationStructuresPropertiesNV( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; void writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT; void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT; void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT; void writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT; void end() const; void reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; VULKAN_HPP_NAMESPACE::CommandBuffer const & operator*() const VULKAN_HPP_NOEXCEPT { return m_commandBuffer; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::CommandBuffer m_commandBuffer; VkDevice m_device; VkCommandPool m_commandPool; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class CommandBuffers : public std::vector { public: CommandBuffers( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector commandBuffers( allocateInfo.commandBufferCount ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkAllocateCommandBuffers( static_cast( *device ), reinterpret_cast( &allocateInfo ), commandBuffers.data() ) ); if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) { this->reserve( allocateInfo.commandBufferCount ); for ( auto const & commandBuffer : commandBuffers ) { this->emplace_back( commandBuffer, static_cast( *device ), static_cast( allocateInfo.commandPool ), dispatcher ); } } else { throwResultException( result, "vkAllocateCommandBuffers" ); } } CommandBuffers() = delete; CommandBuffers( CommandBuffers const & ) = delete; CommandBuffers( CommandBuffers && rhs ) = default; CommandBuffers & operator=( CommandBuffers const & ) = delete; CommandBuffers & operator=( CommandBuffers && rhs ) = default; }; class DebugReportCallbackEXT { public: using CType = VkDebugReportCallbackEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT; public: DebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDebugReportCallbackEXT( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_debugReportCallbackEXT ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDebugReportCallbackEXT" ); } } DebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VkDebugReportCallbackEXT debugReportCallbackEXT, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_debugReportCallbackEXT( debugReportCallbackEXT ) , m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) {} ~DebugReportCallbackEXT() { if ( m_debugReportCallbackEXT ) { getDispatcher()->vkDestroyDebugReportCallbackEXT( m_instance, static_cast( m_debugReportCallbackEXT ), m_allocator ); } } DebugReportCallbackEXT() = delete; DebugReportCallbackEXT( DebugReportCallbackEXT const & ) = delete; DebugReportCallbackEXT( DebugReportCallbackEXT && rhs ) : m_debugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugReportCallbackEXT, {} ) ) , m_instance( rhs.m_instance ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DebugReportCallbackEXT & operator=( DebugReportCallbackEXT const & ) = delete; DebugReportCallbackEXT & operator =( DebugReportCallbackEXT && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDebugReportCallbackEXT( m_instance, static_cast( m_debugReportCallbackEXT ), m_allocator ); m_debugReportCallbackEXT = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugReportCallbackEXT, {} ); m_instance = rhs.m_instance; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & operator*() const VULKAN_HPP_NOEXCEPT { return m_debugReportCallbackEXT; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT m_debugReportCallbackEXT; VkInstance m_instance; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DebugUtilsMessengerEXT { public: using CType = VkDebugUtilsMessengerEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; public: DebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDebugUtilsMessengerEXT( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_debugUtilsMessengerEXT ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDebugUtilsMessengerEXT" ); } } DebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VkDebugUtilsMessengerEXT debugUtilsMessengerEXT, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT ) , m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) {} ~DebugUtilsMessengerEXT() { if ( m_debugUtilsMessengerEXT ) { getDispatcher()->vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( m_debugUtilsMessengerEXT ), m_allocator ); } } DebugUtilsMessengerEXT() = delete; DebugUtilsMessengerEXT( DebugUtilsMessengerEXT const & ) = delete; DebugUtilsMessengerEXT( DebugUtilsMessengerEXT && rhs ) : m_debugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugUtilsMessengerEXT, {} ) ) , m_instance( rhs.m_instance ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT const & ) = delete; DebugUtilsMessengerEXT & operator =( DebugUtilsMessengerEXT && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( m_debugUtilsMessengerEXT ), m_allocator ); m_debugUtilsMessengerEXT = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugUtilsMessengerEXT, {} ); m_instance = rhs.m_instance; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & operator*() const VULKAN_HPP_NOEXCEPT { return m_debugUtilsMessengerEXT; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT m_debugUtilsMessengerEXT; VkInstance m_instance; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DeferredOperationKHR { public: using CType = VkDeferredOperationKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; public: DeferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDeferredOperationKHR( static_cast( *device ), m_allocator, reinterpret_cast( &m_deferredOperationKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDeferredOperationKHR" ); } } DeferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDeferredOperationKHR deferredOperationKHR, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_deferredOperationKHR( deferredOperationKHR ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~DeferredOperationKHR() { if ( m_deferredOperationKHR ) { getDispatcher()->vkDestroyDeferredOperationKHR( m_device, static_cast( m_deferredOperationKHR ), m_allocator ); } } DeferredOperationKHR() = delete; DeferredOperationKHR( DeferredOperationKHR const & ) = delete; DeferredOperationKHR( DeferredOperationKHR && rhs ) : m_deferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deferredOperationKHR, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DeferredOperationKHR & operator=( DeferredOperationKHR const & ) = delete; DeferredOperationKHR & operator =( DeferredOperationKHR && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDeferredOperationKHR( m_device, static_cast( m_deferredOperationKHR ), m_allocator ); m_deferredOperationKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deferredOperationKHR, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result join() const; VULKAN_HPP_NODISCARD uint32_t getMaxConcurrency() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getResult() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & operator*() const VULKAN_HPP_NOEXCEPT { return m_deferredOperationKHR; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DeferredOperationKHR m_deferredOperationKHR; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DescriptorPool { public: using CType = VkDescriptorPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool; public: DescriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDescriptorPool( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_descriptorPool ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDescriptorPool" ); } } DescriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_descriptorPool( descriptorPool ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~DescriptorPool() { if ( m_descriptorPool ) { getDispatcher()->vkDestroyDescriptorPool( m_device, static_cast( m_descriptorPool ), m_allocator ); } } DescriptorPool() = delete; DescriptorPool( DescriptorPool const & ) = delete; DescriptorPool( DescriptorPool && rhs ) : m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DescriptorPool & operator=( DescriptorPool const & ) = delete; DescriptorPool & operator =( DescriptorPool && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDescriptorPool( m_device, static_cast( m_descriptorPool ), m_allocator ); m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } void reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::DescriptorPool const & operator*() const VULKAN_HPP_NOEXCEPT { return m_descriptorPool; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DescriptorSet { public: using CType = VkDescriptorSet; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet; public: DescriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool const & descriptorPool ) : m_descriptorSet( descriptorSet ) , m_device( *device ) , m_descriptorPool( *descriptorPool ) , m_dispatcher( device.getDispatcher() ) {} DescriptorSet( VkDescriptorSet descriptorSet, VkDevice device, VkDescriptorPool descriptorPool, VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher ) : m_descriptorSet( descriptorSet ) , m_device( device ) , m_descriptorPool( descriptorPool ) , m_dispatcher( dispatcher ) {} ~DescriptorSet() { if ( m_descriptorSet ) { getDispatcher()->vkFreeDescriptorSets( m_device, m_descriptorPool, 1, reinterpret_cast( &m_descriptorSet ) ); } } DescriptorSet() = delete; DescriptorSet( DescriptorSet const & ) = delete; DescriptorSet( DescriptorSet && rhs ) : m_descriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} ) ) , m_device( rhs.m_device ) , m_descriptorPool( rhs.m_descriptorPool ) , m_dispatcher( rhs.m_dispatcher ) {} DescriptorSet & operator=( DescriptorSet const & ) = delete; DescriptorSet & operator =( DescriptorSet && rhs ) { if ( this != &rhs ) { getDispatcher()->vkFreeDescriptorSets( m_device, m_descriptorPool, 1, reinterpret_cast( &m_descriptorSet ) ); m_descriptorSet = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} ); m_device = rhs.m_device; m_descriptorPool = rhs.m_descriptorPool; m_dispatcher = rhs.m_dispatcher; } return *this; } void updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void * pData ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::DescriptorSet const & operator*() const VULKAN_HPP_NOEXCEPT { return m_descriptorSet; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DescriptorSet m_descriptorSet; VkDevice m_device; VkDescriptorPool m_descriptorPool; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DescriptorSets : public std::vector { public: DescriptorSets( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector descriptorSets( allocateInfo.descriptorSetCount ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkAllocateDescriptorSets( static_cast( *device ), reinterpret_cast( &allocateInfo ), descriptorSets.data() ) ); if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) { this->reserve( allocateInfo.descriptorSetCount ); for ( auto const & descriptorSet : descriptorSets ) { this->emplace_back( descriptorSet, static_cast( *device ), static_cast( allocateInfo.descriptorPool ), dispatcher ); } } else { throwResultException( result, "vkAllocateDescriptorSets" ); } } DescriptorSets() = delete; DescriptorSets( DescriptorSets const & ) = delete; DescriptorSets( DescriptorSets && rhs ) = default; DescriptorSets & operator=( DescriptorSets const & ) = delete; DescriptorSets & operator=( DescriptorSets && rhs ) = default; }; class DescriptorSetLayout { public: using CType = VkDescriptorSetLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout; public: DescriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDescriptorSetLayout( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_descriptorSetLayout ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDescriptorSetLayout" ); } } DescriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDescriptorSetLayout descriptorSetLayout, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_descriptorSetLayout( descriptorSetLayout ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~DescriptorSetLayout() { if ( m_descriptorSetLayout ) { getDispatcher()->vkDestroyDescriptorSetLayout( m_device, static_cast( m_descriptorSetLayout ), m_allocator ); } } DescriptorSetLayout() = delete; DescriptorSetLayout( DescriptorSetLayout const & ) = delete; DescriptorSetLayout( DescriptorSetLayout && rhs ) : m_descriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DescriptorSetLayout & operator=( DescriptorSetLayout const & ) = delete; DescriptorSetLayout & operator =( DescriptorSetLayout && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDescriptorSetLayout( m_device, static_cast( m_descriptorSetLayout ), m_allocator ); m_descriptorSetLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & operator*() const VULKAN_HPP_NOEXCEPT { return m_descriptorSetLayout; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DescriptorSetLayout m_descriptorSetLayout; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DescriptorUpdateTemplate { public: using CType = VkDescriptorUpdateTemplate; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; public: DescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDescriptorUpdateTemplate( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_descriptorUpdateTemplate ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDescriptorUpdateTemplate" ); } } DescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_descriptorUpdateTemplate( descriptorUpdateTemplate ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~DescriptorUpdateTemplate() { if ( m_descriptorUpdateTemplate ) { getDispatcher()->vkDestroyDescriptorUpdateTemplate( m_device, static_cast( m_descriptorUpdateTemplate ), m_allocator ); } } DescriptorUpdateTemplate() = delete; DescriptorUpdateTemplate( DescriptorUpdateTemplate const & ) = delete; DescriptorUpdateTemplate( DescriptorUpdateTemplate && rhs ) : m_descriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate const & ) = delete; DescriptorUpdateTemplate & operator =( DescriptorUpdateTemplate && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyDescriptorUpdateTemplate( m_device, static_cast( m_descriptorUpdateTemplate ), m_allocator ); m_descriptorUpdateTemplate = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & operator*() const VULKAN_HPP_NOEXCEPT { return m_descriptorUpdateTemplate; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate m_descriptorUpdateTemplate; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DeviceMemory { public: using CType = VkDeviceMemory; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory; public: DeviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAllocateMemory( static_cast( *device ), reinterpret_cast( &allocateInfo ), m_allocator, reinterpret_cast( &m_deviceMemory ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkAllocateMemory" ); } } DeviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDeviceMemory deviceMemory, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_deviceMemory( deviceMemory ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~DeviceMemory() { if ( m_deviceMemory ) { getDispatcher()->vkFreeMemory( m_device, static_cast( m_deviceMemory ), m_allocator ); } } DeviceMemory() = delete; DeviceMemory( DeviceMemory const & ) = delete; DeviceMemory( DeviceMemory && rhs ) : m_deviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deviceMemory, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} DeviceMemory & operator=( DeviceMemory const & ) = delete; DeviceMemory & operator =( DeviceMemory && rhs ) { if ( this != &rhs ) { getDispatcher()->vkFreeMemory( m_device, static_cast( m_deviceMemory ), m_allocator ); m_deviceMemory = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deviceMemory, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getCommitment() const VULKAN_HPP_NOEXCEPT; # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD void * mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; void unmapMemory() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::DeviceMemory const & operator*() const VULKAN_HPP_NOEXCEPT { return m_deviceMemory; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DeviceMemory m_deviceMemory; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DisplayKHR { public: using CType = VkDisplayKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR; public: # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, Display & dpy, RROutput rrOutput ) : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetRandROutputDisplayEXT( static_cast( *physicalDevice ), &dpy, rrOutput, reinterpret_cast( &m_displayKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkGetRandROutputDisplayEXT" ); } } # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, uint32_t deviceRelativeId ) : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetWinrtDisplayNV( static_cast( *physicalDevice ), deviceRelativeId, reinterpret_cast( &m_displayKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkGetWinrtDisplayNV" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VkDisplayKHR displayKHR ) : m_displayKHR( displayKHR ) , m_physicalDevice( *physicalDevice ) , m_dispatcher( physicalDevice.getDispatcher() ) {} DisplayKHR( VkDisplayKHR displayKHR, VkPhysicalDevice physicalDevice, VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher ) : m_displayKHR( displayKHR ), m_physicalDevice( physicalDevice ), m_dispatcher( dispatcher ) {} ~DisplayKHR() { if ( m_displayKHR ) { getDispatcher()->vkReleaseDisplayEXT( m_physicalDevice, static_cast( m_displayKHR ) ); } } DisplayKHR() = delete; DisplayKHR( DisplayKHR const & ) = delete; DisplayKHR( DisplayKHR && rhs ) : m_displayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayKHR, {} ) ) , m_physicalDevice( rhs.m_physicalDevice ) , m_dispatcher( rhs.m_dispatcher ) {} DisplayKHR & operator=( DisplayKHR const & ) = delete; DisplayKHR & operator =( DisplayKHR && rhs ) { if ( this != &rhs ) { getDispatcher()->vkReleaseDisplayEXT( m_physicalDevice, static_cast( m_displayKHR ) ); m_displayKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayKHR, {} ); m_physicalDevice = rhs.m_physicalDevice; m_dispatcher = rhs.m_dispatcher; } return *this; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) void acquireWinrtNV() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD std::vector getModeProperties2() const; VULKAN_HPP_NODISCARD std::vector getModeProperties() const; VULKAN_HPP_NAMESPACE::DisplayKHR const & operator*() const VULKAN_HPP_NOEXCEPT { return m_displayKHR; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DisplayKHR m_displayKHR; VkPhysicalDevice m_physicalDevice; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class DisplayKHRs : public std::vector { public: DisplayKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, uint32_t planeIndex ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = physicalDevice.getDispatcher(); std::vector displays; uint32_t displayCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR( static_cast( *physicalDevice ), planeIndex, &displayCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount ) { displays.resize( displayCount ); result = static_cast( dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR( static_cast( *physicalDevice ), planeIndex, &displayCount, displays.data() ) ); VULKAN_HPP_ASSERT( displayCount <= displays.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) { this->reserve( displayCount ); for ( auto const & displayKHR : displays ) { this->emplace_back( displayKHR, static_cast( *physicalDevice ), dispatcher ); } } else { throwResultException( result, "vkGetDisplayPlaneSupportedDisplaysKHR" ); } } DisplayKHRs() = delete; DisplayKHRs( DisplayKHRs const & ) = delete; DisplayKHRs( DisplayKHRs && rhs ) = default; DisplayKHRs & operator=( DisplayKHRs const & ) = delete; DisplayKHRs & operator=( DisplayKHRs && rhs ) = default; }; class DisplayModeKHR { public: using CType = VkDisplayModeKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR; public: DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDisplayModeKHR( static_cast( *physicalDevice ), static_cast( *display ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &m_displayModeKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDisplayModeKHR" ); } } DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VkDisplayModeKHR displayModeKHR ) : m_displayModeKHR( displayModeKHR ) , m_physicalDevice( *physicalDevice ) , m_dispatcher( physicalDevice.getDispatcher() ) {} DisplayModeKHR() = delete; DisplayModeKHR( DisplayModeKHR const & ) = delete; DisplayModeKHR( DisplayModeKHR && rhs ) : m_displayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ) ) , m_dispatcher( rhs.m_dispatcher ) {} DisplayModeKHR & operator=( DisplayModeKHR const & ) = delete; DisplayModeKHR & operator =( DisplayModeKHR && rhs ) { if ( this != &rhs ) { m_displayModeKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ); m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities( uint32_t planeIndex ) const; VULKAN_HPP_NAMESPACE::DisplayModeKHR const & operator*() const VULKAN_HPP_NOEXCEPT { return m_displayModeKHR; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::DisplayModeKHR m_displayModeKHR; VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Event { public: using CType = VkEvent; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent; public: Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateEvent( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_event ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateEvent" ); } } Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkEvent event, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_event( event ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Event() { if ( m_event ) { getDispatcher()->vkDestroyEvent( m_device, static_cast( m_event ), m_allocator ); } } Event() = delete; Event( Event const & ) = delete; Event( Event && rhs ) : m_event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Event & operator=( Event const & ) = delete; Event & operator =( Event && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyEvent( m_device, static_cast( m_event ), m_allocator ); m_event = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; void reset() const; void set() const; VULKAN_HPP_NAMESPACE::Event const & operator*() const VULKAN_HPP_NOEXCEPT { return m_event; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Event m_event; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Fence { public: using CType = VkFence; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence; public: Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateFence( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_fence ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateFence" ); } } Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkRegisterDeviceEventEXT( static_cast( *device ), reinterpret_cast( &deviceEventInfo ), m_allocator, reinterpret_cast( &m_fence ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkRegisterDeviceEventEXT" ); } } Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkRegisterDisplayEventEXT( static_cast( *device ), static_cast( *display ), reinterpret_cast( &displayEventInfo ), m_allocator, reinterpret_cast( &m_fence ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkRegisterDisplayEventEXT" ); } } Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkFence fence, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_fence( fence ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Fence() { if ( m_fence ) { getDispatcher()->vkDestroyFence( m_device, static_cast( m_fence ), m_allocator ); } } Fence() = delete; Fence( Fence const & ) = delete; Fence( Fence && rhs ) : m_fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Fence & operator=( Fence const & ) = delete; Fence & operator =( Fence && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyFence( m_device, static_cast( m_fence ), m_allocator ); m_fence = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; VULKAN_HPP_NAMESPACE::Fence const & operator*() const VULKAN_HPP_NOEXCEPT { return m_fence; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Fence m_fence; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Framebuffer { public: using CType = VkFramebuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer; public: Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateFramebuffer( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_framebuffer ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateFramebuffer" ); } } Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkFramebuffer framebuffer, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_framebuffer( framebuffer ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Framebuffer() { if ( m_framebuffer ) { getDispatcher()->vkDestroyFramebuffer( m_device, static_cast( m_framebuffer ), m_allocator ); } } Framebuffer() = delete; Framebuffer( Framebuffer const & ) = delete; Framebuffer( Framebuffer && rhs ) : m_framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Framebuffer & operator=( Framebuffer const & ) = delete; Framebuffer & operator =( Framebuffer && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyFramebuffer( m_device, static_cast( m_framebuffer ), m_allocator ); m_framebuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::Framebuffer const & operator*() const VULKAN_HPP_NOEXCEPT { return m_framebuffer; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Framebuffer m_framebuffer; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Image { public: using CType = VkImage; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage; public: Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateImage( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_image ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateImage" ); } } Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkImage image, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_image( image ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Image() { if ( m_image ) { getDispatcher()->vkDestroyImage( m_device, static_cast( m_image ), m_allocator ); } } Image() = delete; Image( Image const & ) = delete; Image( Image && rhs ) : m_image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Image & operator=( Image const & ) = delete; Image & operator =( Image && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyImage( m_device, static_cast( m_image ), m_allocator ); m_image = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT getDrmFormatModifierPropertiesEXT() const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getSparseMemoryRequirements() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getSubresourceLayout( const ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::Image const & operator*() const VULKAN_HPP_NOEXCEPT { return m_image; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Image m_image; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class ImageView { public: using CType = VkImageView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView; public: ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateImageView( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_imageView ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateImageView" ); } } ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkImageView imageView, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_imageView( imageView ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~ImageView() { if ( m_imageView ) { getDispatcher()->vkDestroyImageView( m_device, static_cast( m_imageView ), m_allocator ); } } ImageView() = delete; ImageView( ImageView const & ) = delete; ImageView( ImageView && rhs ) : m_imageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} ImageView & operator=( ImageView const & ) = delete; ImageView & operator =( ImageView && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyImageView( m_device, static_cast( m_imageView ), m_allocator ); m_imageView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const; VULKAN_HPP_NAMESPACE::ImageView const & operator*() const VULKAN_HPP_NOEXCEPT { return m_imageView; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::ImageView m_imageView; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class IndirectCommandsLayoutNV { public: using CType = VkIndirectCommandsLayoutNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; public: IndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateIndirectCommandsLayoutNV( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_indirectCommandsLayoutNV ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateIndirectCommandsLayoutNV" ); } } IndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkIndirectCommandsLayoutNV indirectCommandsLayoutNV, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~IndirectCommandsLayoutNV() { if ( m_indirectCommandsLayoutNV ) { getDispatcher()->vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( m_indirectCommandsLayoutNV ), m_allocator ); } } IndirectCommandsLayoutNV() = delete; IndirectCommandsLayoutNV( IndirectCommandsLayoutNV const & ) = delete; IndirectCommandsLayoutNV( IndirectCommandsLayoutNV && rhs ) : m_indirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutNV, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV const & ) = delete; IndirectCommandsLayoutNV & operator =( IndirectCommandsLayoutNV && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( m_indirectCommandsLayoutNV ), m_allocator ); m_indirectCommandsLayoutNV = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutNV, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & operator*() const VULKAN_HPP_NOEXCEPT { return m_indirectCommandsLayoutNV; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV m_indirectCommandsLayoutNV; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class PerformanceConfigurationINTEL { public: using CType = VkPerformanceConfigurationINTEL; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; public: PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) : m_device( *device ), m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquirePerformanceConfigurationINTEL( static_cast( *device ), reinterpret_cast( &acquireInfo ), reinterpret_cast( &m_performanceConfigurationINTEL ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkAcquirePerformanceConfigurationINTEL" ); } } PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) : m_performanceConfigurationINTEL( performanceConfigurationINTEL ) , m_device( *device ) , m_dispatcher( device.getDispatcher() ) {} ~PerformanceConfigurationINTEL() { if ( m_performanceConfigurationINTEL ) { getDispatcher()->vkReleasePerformanceConfigurationINTEL( m_device, static_cast( m_performanceConfigurationINTEL ) ); } } PerformanceConfigurationINTEL() = delete; PerformanceConfigurationINTEL( PerformanceConfigurationINTEL const & ) = delete; PerformanceConfigurationINTEL( PerformanceConfigurationINTEL && rhs ) : m_performanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_performanceConfigurationINTEL, {} ) ) , m_device( rhs.m_device ) , m_dispatcher( rhs.m_dispatcher ) {} PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL const & ) = delete; PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL && rhs ) { if ( this != &rhs ) { getDispatcher()->vkReleasePerformanceConfigurationINTEL( m_device, static_cast( m_performanceConfigurationINTEL ) ); m_performanceConfigurationINTEL = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_performanceConfigurationINTEL, {} ); m_device = rhs.m_device; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & operator*() const VULKAN_HPP_NOEXCEPT { return m_performanceConfigurationINTEL; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL m_performanceConfigurationINTEL; VkDevice m_device; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class PipelineCache { public: using CType = VkPipelineCache; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache; public: PipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreatePipelineCache( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_pipelineCache ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreatePipelineCache" ); } } PipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPipelineCache pipelineCache, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_pipelineCache( pipelineCache ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~PipelineCache() { if ( m_pipelineCache ) { getDispatcher()->vkDestroyPipelineCache( m_device, static_cast( m_pipelineCache ), m_allocator ); } } PipelineCache() = delete; PipelineCache( PipelineCache const & ) = delete; PipelineCache( PipelineCache && rhs ) : m_pipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} PipelineCache & operator=( PipelineCache const & ) = delete; PipelineCache & operator =( PipelineCache && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyPipelineCache( m_device, static_cast( m_pipelineCache ), m_allocator ); m_pipelineCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD std::vector getData() const; void merge( ArrayProxy const & srcCaches ) const; VULKAN_HPP_NAMESPACE::PipelineCache const & operator*() const VULKAN_HPP_NOEXCEPT { return m_pipelineCache; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::PipelineCache m_pipelineCache; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Pipeline { public: using CType = VkPipeline; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline; public: Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { m_constructorSuccessCode = static_cast( getDispatcher()->vkCreateComputePipelines( static_cast( *device ), pipelineCache ? static_cast( **pipelineCache ) : 0, 1, reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_pipeline ) ) ); if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { throwResultException( m_constructorSuccessCode, "vkCreateComputePipelines" ); } } Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { m_constructorSuccessCode = static_cast( getDispatcher()->vkCreateGraphicsPipelines( static_cast( *device ), pipelineCache ? static_cast( **pipelineCache ) : 0, 1, reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_pipeline ) ) ); if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { throwResultException( m_constructorSuccessCode, "vkCreateGraphicsPipelines" ); } } Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional< const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { m_constructorSuccessCode = static_cast( getDispatcher()->vkCreateRayTracingPipelinesKHR( static_cast( *device ), deferredOperation ? static_cast( **deferredOperation ) : 0, pipelineCache ? static_cast( **pipelineCache ) : 0, 1, reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_pipeline ) ) ); if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) && ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { throwResultException( m_constructorSuccessCode, "vkCreateRayTracingPipelinesKHR" ); } } Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { m_constructorSuccessCode = static_cast( getDispatcher()->vkCreateRayTracingPipelinesNV( static_cast( *device ), pipelineCache ? static_cast( **pipelineCache ) : 0, 1, reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_pipeline ) ) ); if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { throwResultException( m_constructorSuccessCode, "vkCreateRayTracingPipelinesNV" ); } } Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPipeline pipeline, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_pipeline( pipeline ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} Pipeline( VkPipeline pipeline, VkDevice device, VkAllocationCallbacks const * allocator, VULKAN_HPP_NAMESPACE::Result successCode, VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher ) : m_pipeline( pipeline ) , m_device( device ) , m_allocator( allocator ) , m_constructorSuccessCode( successCode ) , m_dispatcher( dispatcher ) {} ~Pipeline() { if ( m_pipeline ) { getDispatcher()->vkDestroyPipeline( m_device, static_cast( m_pipeline ), m_allocator ); } } Pipeline() = delete; Pipeline( Pipeline const & ) = delete; Pipeline( Pipeline && rhs ) : m_pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Pipeline & operator=( Pipeline const & ) = delete; Pipeline & operator =( Pipeline && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyPipeline( m_device, static_cast( m_pipeline ), m_allocator ); m_pipeline = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } void compileDeferredNV( uint32_t shader ) const; template VULKAN_HPP_NODISCARD std::vector getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; template VULKAN_HPP_NODISCARD T getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; template VULKAN_HPP_NODISCARD std::vector getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; template VULKAN_HPP_NODISCARD T getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const; VULKAN_HPP_NAMESPACE::Pipeline const & operator*() const VULKAN_HPP_NOEXCEPT { return m_pipeline; } VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const { return m_constructorSuccessCode; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Pipeline m_pipeline; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_NAMESPACE::Result m_constructorSuccessCode; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Pipelines : public std::vector { public: Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::ArrayProxy const & createInfos, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector pipelines( createInfos.size() ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkCreateComputePipelines( static_cast( *device ), pipelineCache ? static_cast( **pipelineCache ) : 0, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), pipelines.data() ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { this->reserve( createInfos.size() ); for ( auto const & pipeline : pipelines ) { this->emplace_back( pipeline, static_cast( *device ), reinterpret_cast( static_cast( allocator ) ), result, dispatcher ); } } else { throwResultException( result, "vkCreateComputePipelines" ); } } Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::ArrayProxy const & createInfos, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector pipelines( createInfos.size() ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkCreateGraphicsPipelines( static_cast( *device ), pipelineCache ? static_cast( **pipelineCache ) : 0, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), pipelines.data() ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { this->reserve( createInfos.size() ); for ( auto const & pipeline : pipelines ) { this->emplace_back( pipeline, static_cast( *device ), reinterpret_cast( static_cast( allocator ) ), result, dispatcher ); } } else { throwResultException( result, "vkCreateGraphicsPipelines" ); } } Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional< const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::ArrayProxy const & createInfos, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector pipelines( createInfos.size() ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkCreateRayTracingPipelinesKHR( static_cast( *device ), deferredOperation ? static_cast( **deferredOperation ) : 0, pipelineCache ? static_cast( **pipelineCache ) : 0, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), pipelines.data() ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) || ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { this->reserve( createInfos.size() ); for ( auto const & pipeline : pipelines ) { this->emplace_back( pipeline, static_cast( *device ), reinterpret_cast( static_cast( allocator ) ), result, dispatcher ); } } else { throwResultException( result, "vkCreateRayTracingPipelinesKHR" ); } } Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::Optional const & pipelineCache, VULKAN_HPP_NAMESPACE::ArrayProxy const & createInfos, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector pipelines( createInfos.size() ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkCreateRayTracingPipelinesNV( static_cast( *device ), pipelineCache ? static_cast( **pipelineCache ) : 0, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), pipelines.data() ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) { this->reserve( createInfos.size() ); for ( auto const & pipeline : pipelines ) { this->emplace_back( pipeline, static_cast( *device ), reinterpret_cast( static_cast( allocator ) ), result, dispatcher ); } } else { throwResultException( result, "vkCreateRayTracingPipelinesNV" ); } } Pipelines() = delete; Pipelines( Pipelines const & ) = delete; Pipelines( Pipelines && rhs ) = default; Pipelines & operator=( Pipelines const & ) = delete; Pipelines & operator=( Pipelines && rhs ) = default; }; class PipelineLayout { public: using CType = VkPipelineLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout; public: PipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreatePipelineLayout( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_pipelineLayout ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreatePipelineLayout" ); } } PipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPipelineLayout pipelineLayout, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_pipelineLayout( pipelineLayout ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~PipelineLayout() { if ( m_pipelineLayout ) { getDispatcher()->vkDestroyPipelineLayout( m_device, static_cast( m_pipelineLayout ), m_allocator ); } } PipelineLayout() = delete; PipelineLayout( PipelineLayout const & ) = delete; PipelineLayout( PipelineLayout && rhs ) : m_pipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} PipelineLayout & operator=( PipelineLayout const & ) = delete; PipelineLayout & operator =( PipelineLayout && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyPipelineLayout( m_device, static_cast( m_pipelineLayout ), m_allocator ); m_pipelineLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::PipelineLayout const & operator*() const VULKAN_HPP_NOEXCEPT { return m_pipelineLayout; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::PipelineLayout m_pipelineLayout; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class PrivateDataSlotEXT { public: using CType = VkPrivateDataSlotEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; public: PrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreatePrivateDataSlotEXT( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_privateDataSlotEXT ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreatePrivateDataSlotEXT" ); } } PrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPrivateDataSlotEXT privateDataSlotEXT, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_privateDataSlotEXT( privateDataSlotEXT ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~PrivateDataSlotEXT() { if ( m_privateDataSlotEXT ) { getDispatcher()->vkDestroyPrivateDataSlotEXT( m_device, static_cast( m_privateDataSlotEXT ), m_allocator ); } } PrivateDataSlotEXT() = delete; PrivateDataSlotEXT( PrivateDataSlotEXT const & ) = delete; PrivateDataSlotEXT( PrivateDataSlotEXT && rhs ) : m_privateDataSlotEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlotEXT, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} PrivateDataSlotEXT & operator=( PrivateDataSlotEXT const & ) = delete; PrivateDataSlotEXT & operator =( PrivateDataSlotEXT && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyPrivateDataSlotEXT( m_device, static_cast( m_privateDataSlotEXT ), m_allocator ); m_privateDataSlotEXT = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlotEXT, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & operator*() const VULKAN_HPP_NOEXCEPT { return m_privateDataSlotEXT; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT m_privateDataSlotEXT; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class QueryPool { public: using CType = VkQueryPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool; public: QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateQueryPool( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_queryPool ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateQueryPool" ); } } QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkQueryPool queryPool, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_queryPool( queryPool ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~QueryPool() { if ( m_queryPool ) { getDispatcher()->vkDestroyQueryPool( m_device, static_cast( m_queryPool ), m_allocator ); } } QueryPool() = delete; QueryPool( QueryPool const & ) = delete; QueryPool( QueryPool && rhs ) : m_queryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} QueryPool & operator=( QueryPool const & ) = delete; QueryPool & operator =( QueryPool && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyQueryPool( m_device, static_cast( m_queryPool ), m_allocator ); m_queryPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } template VULKAN_HPP_NODISCARD std::pair> getResults( uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; template VULKAN_HPP_NODISCARD std::pair getResult( uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; void reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::QueryPool const & operator*() const VULKAN_HPP_NOEXCEPT { return m_queryPool; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::QueryPool m_queryPool; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Queue { public: using CType = VkQueue; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue; public: Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, uint32_t queueFamilyIndex, uint32_t queueIndex ) : m_dispatcher( device.getDispatcher() ) { getDispatcher()->vkGetDeviceQueue( static_cast( *device ), queueFamilyIndex, queueIndex, reinterpret_cast( &m_queue ) ); } Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) : m_dispatcher( device.getDispatcher() ) { getDispatcher()->vkGetDeviceQueue2( static_cast( *device ), reinterpret_cast( &queueInfo ), reinterpret_cast( &m_queue ) ); } Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkQueue queue ) : m_queue( queue ), m_dispatcher( device.getDispatcher() ) {} Queue() = delete; Queue( Queue const & ) = delete; Queue( Queue && rhs ) : m_queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ) ) , m_dispatcher( rhs.m_dispatcher ) {} Queue & operator=( Queue const & ) = delete; Queue & operator =( Queue && rhs ) { if ( this != &rhs ) { m_queue = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ); m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD std::vector getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD std::vector getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT; void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; void bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT; void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result presentKHR( const PresentInfoKHR & presentInfo ) const; void setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const; void submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; void submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; void waitIdle() const; VULKAN_HPP_NAMESPACE::Queue const & operator*() const VULKAN_HPP_NOEXCEPT { return m_queue; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Queue m_queue; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class RenderPass { public: using CType = VkRenderPass; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass; public: RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateRenderPass( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_renderPass ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateRenderPass" ); } } RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateRenderPass2( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_renderPass ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateRenderPass2" ); } } RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkRenderPass renderPass, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_renderPass( renderPass ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~RenderPass() { if ( m_renderPass ) { getDispatcher()->vkDestroyRenderPass( m_device, static_cast( m_renderPass ), m_allocator ); } } RenderPass() = delete; RenderPass( RenderPass const & ) = delete; RenderPass( RenderPass && rhs ) : m_renderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} RenderPass & operator=( RenderPass const & ) = delete; RenderPass & operator =( RenderPass && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyRenderPass( m_device, static_cast( m_renderPass ), m_allocator ); m_renderPass = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::RenderPass const & operator*() const VULKAN_HPP_NOEXCEPT { return m_renderPass; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::RenderPass m_renderPass; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Sampler { public: using CType = VkSampler; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler; public: Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateSampler( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_sampler ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateSampler" ); } } Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkSampler sampler, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_sampler( sampler ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Sampler() { if ( m_sampler ) { getDispatcher()->vkDestroySampler( m_device, static_cast( m_sampler ), m_allocator ); } } Sampler() = delete; Sampler( Sampler const & ) = delete; Sampler( Sampler && rhs ) : m_sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Sampler & operator=( Sampler const & ) = delete; Sampler & operator =( Sampler && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroySampler( m_device, static_cast( m_sampler ), m_allocator ); m_sampler = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::Sampler const & operator*() const VULKAN_HPP_NOEXCEPT { return m_sampler; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Sampler m_sampler; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class SamplerYcbcrConversion { public: using CType = VkSamplerYcbcrConversion; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion; public: SamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateSamplerYcbcrConversion( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_samplerYcbcrConversion ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateSamplerYcbcrConversion" ); } } SamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkSamplerYcbcrConversion samplerYcbcrConversion, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_samplerYcbcrConversion( samplerYcbcrConversion ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~SamplerYcbcrConversion() { if ( m_samplerYcbcrConversion ) { getDispatcher()->vkDestroySamplerYcbcrConversion( m_device, static_cast( m_samplerYcbcrConversion ), m_allocator ); } } SamplerYcbcrConversion() = delete; SamplerYcbcrConversion( SamplerYcbcrConversion const & ) = delete; SamplerYcbcrConversion( SamplerYcbcrConversion && rhs ) : m_samplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_samplerYcbcrConversion, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} SamplerYcbcrConversion & operator=( SamplerYcbcrConversion const & ) = delete; SamplerYcbcrConversion & operator =( SamplerYcbcrConversion && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroySamplerYcbcrConversion( m_device, static_cast( m_samplerYcbcrConversion ), m_allocator ); m_samplerYcbcrConversion = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_samplerYcbcrConversion, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & operator*() const VULKAN_HPP_NOEXCEPT { return m_samplerYcbcrConversion; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion m_samplerYcbcrConversion; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class Semaphore { public: using CType = VkSemaphore; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore; public: Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateSemaphore( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_semaphore ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateSemaphore" ); } } Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkSemaphore semaphore, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_semaphore( semaphore ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~Semaphore() { if ( m_semaphore ) { getDispatcher()->vkDestroySemaphore( m_device, static_cast( m_semaphore ), m_allocator ); } } Semaphore() = delete; Semaphore( Semaphore const & ) = delete; Semaphore( Semaphore && rhs ) : m_semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} Semaphore & operator=( Semaphore const & ) = delete; Semaphore & operator =( Semaphore && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroySemaphore( m_device, static_cast( m_semaphore ), m_allocator ); m_semaphore = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD uint64_t getCounterValue() const; VULKAN_HPP_NAMESPACE::Semaphore const & operator*() const VULKAN_HPP_NOEXCEPT { return m_semaphore; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::Semaphore m_semaphore; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class ShaderModule { public: using CType = VkShaderModule; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule; public: ShaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateShaderModule( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_shaderModule ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateShaderModule" ); } } ShaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkShaderModule shaderModule, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_shaderModule( shaderModule ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~ShaderModule() { if ( m_shaderModule ) { getDispatcher()->vkDestroyShaderModule( m_device, static_cast( m_shaderModule ), m_allocator ); } } ShaderModule() = delete; ShaderModule( ShaderModule const & ) = delete; ShaderModule( ShaderModule && rhs ) : m_shaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} ShaderModule & operator=( ShaderModule const & ) = delete; ShaderModule & operator =( ShaderModule && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyShaderModule( m_device, static_cast( m_shaderModule ), m_allocator ); m_shaderModule = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::ShaderModule const & operator*() const VULKAN_HPP_NOEXCEPT { return m_shaderModule; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::ShaderModule m_shaderModule; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class SurfaceKHR { public: using CType = VkSurfaceKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR; public: # if defined( VK_USE_PLATFORM_ANDROID_KHR ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateAndroidSurfaceKHR( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateAndroidSurfaceKHR" ); } } # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDirectFBSurfaceEXT( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDirectFBSurfaceEXT" ); } } # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateDisplayPlaneSurfaceKHR( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateDisplayPlaneSurfaceKHR" ); } } SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateHeadlessSurfaceEXT( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateHeadlessSurfaceEXT" ); } } # if defined( VK_USE_PLATFORM_IOS_MVK ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateIOSSurfaceMVK( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateIOSSurfaceMVK" ); } } # endif /*VK_USE_PLATFORM_IOS_MVK*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateImagePipeSurfaceFUCHSIA( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateImagePipeSurfaceFUCHSIA" ); } } # endif /*VK_USE_PLATFORM_FUCHSIA*/ # if defined( VK_USE_PLATFORM_MACOS_MVK ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateMacOSSurfaceMVK( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateMacOSSurfaceMVK" ); } } # endif /*VK_USE_PLATFORM_MACOS_MVK*/ # if defined( VK_USE_PLATFORM_METAL_EXT ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateMetalSurfaceEXT( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateMetalSurfaceEXT" ); } } # endif /*VK_USE_PLATFORM_METAL_EXT*/ # if defined( VK_USE_PLATFORM_SCREEN_QNX ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateScreenSurfaceQNX( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateScreenSurfaceQNX" ); } } # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ # if defined( VK_USE_PLATFORM_GGP ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateStreamDescriptorSurfaceGGP( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateStreamDescriptorSurfaceGGP" ); } } # endif /*VK_USE_PLATFORM_GGP*/ # if defined( VK_USE_PLATFORM_VI_NN ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateViSurfaceNN( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateViSurfaceNN" ); } } # endif /*VK_USE_PLATFORM_VI_NN*/ # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateWaylandSurfaceKHR( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateWaylandSurfaceKHR" ); } } # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateWin32SurfaceKHR( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateWin32SurfaceKHR" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_XCB_KHR ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateXcbSurfaceKHR( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateXcbSurfaceKHR" ); } } # endif /*VK_USE_PLATFORM_XCB_KHR*/ # if defined( VK_USE_PLATFORM_XLIB_KHR ) SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateXlibSurfaceKHR( static_cast( *instance ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_surfaceKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateXlibSurfaceKHR" ); } } # endif /*VK_USE_PLATFORM_XLIB_KHR*/ SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VkSurfaceKHR surfaceKHR, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_surfaceKHR( surfaceKHR ) , m_instance( *instance ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( instance.getDispatcher() ) {} ~SurfaceKHR() { if ( m_surfaceKHR ) { getDispatcher()->vkDestroySurfaceKHR( m_instance, static_cast( m_surfaceKHR ), m_allocator ); } } SurfaceKHR() = delete; SurfaceKHR( SurfaceKHR const & ) = delete; SurfaceKHR( SurfaceKHR && rhs ) : m_surfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surfaceKHR, {} ) ) , m_instance( rhs.m_instance ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} SurfaceKHR & operator=( SurfaceKHR const & ) = delete; SurfaceKHR & operator =( SurfaceKHR && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroySurfaceKHR( m_instance, static_cast( m_surfaceKHR ), m_allocator ); m_surfaceKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surfaceKHR, {} ); m_instance = rhs.m_instance; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NAMESPACE::SurfaceKHR const & operator*() const VULKAN_HPP_NOEXCEPT { return m_surfaceKHR; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::SurfaceKHR m_surfaceKHR; VkInstance m_instance; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class SwapchainKHR { public: using CType = VkSwapchainKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR; public: SwapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateSwapchainKHR( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_swapchainKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateSwapchainKHR" ); } } SwapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkSwapchainKHR swapchainKHR, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_swapchainKHR( swapchainKHR ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} SwapchainKHR( VkSwapchainKHR swapchainKHR, VkDevice device, VkAllocationCallbacks const * allocator, VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher ) : m_swapchainKHR( swapchainKHR ), m_device( device ), m_allocator( allocator ), m_dispatcher( dispatcher ) {} ~SwapchainKHR() { if ( m_swapchainKHR ) { getDispatcher()->vkDestroySwapchainKHR( m_device, static_cast( m_swapchainKHR ), m_allocator ); } } SwapchainKHR() = delete; SwapchainKHR( SwapchainKHR const & ) = delete; SwapchainKHR( SwapchainKHR && rhs ) : m_swapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchainKHR, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} SwapchainKHR & operator=( SwapchainKHR const & ) = delete; SwapchainKHR & operator =( SwapchainKHR && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroySwapchainKHR( m_device, static_cast( m_swapchainKHR ), m_allocator ); m_swapchainKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchainKHR, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) void acquireFullScreenExclusiveModeEXT() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD std::pair acquireNextImage( uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; VULKAN_HPP_NODISCARD std::vector getPastPresentationTimingGOOGLE() const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE getRefreshCycleDurationGOOGLE() const; VULKAN_HPP_NODISCARD uint64_t getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const; VULKAN_HPP_NODISCARD std::vector getImages() const; VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) void releaseFullScreenExclusiveModeEXT() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT; VULKAN_HPP_NAMESPACE::SwapchainKHR const & operator*() const VULKAN_HPP_NOEXCEPT { return m_swapchainKHR; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchainKHR; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; class SwapchainKHRs : public std::vector { public: SwapchainKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::ArrayProxy const & createInfos, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) { VULKAN_HPP_RAII_DISPATCHER_TYPE const * dispatcher = device.getDispatcher(); std::vector swapchains( createInfos.size() ); VULKAN_HPP_NAMESPACE::Result result = static_cast( dispatcher->vkCreateSharedSwapchainsKHR( static_cast( *device ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), swapchains.data() ) ); if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) { this->reserve( createInfos.size() ); for ( auto const & swapchainKHR : swapchains ) { this->emplace_back( swapchainKHR, static_cast( *device ), reinterpret_cast( static_cast( allocator ) ), dispatcher ); } } else { throwResultException( result, "vkCreateSharedSwapchainsKHR" ); } } SwapchainKHRs() = delete; SwapchainKHRs( SwapchainKHRs const & ) = delete; SwapchainKHRs( SwapchainKHRs && rhs ) = default; SwapchainKHRs & operator=( SwapchainKHRs const & ) = delete; SwapchainKHRs & operator=( SwapchainKHRs && rhs ) = default; }; class ValidationCacheEXT { public: using CType = VkValidationCacheEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT; public: ValidationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateValidationCacheEXT( static_cast( *device ), reinterpret_cast( &createInfo ), m_allocator, reinterpret_cast( &m_validationCacheEXT ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, "vkCreateValidationCacheEXT" ); } } ValidationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkValidationCacheEXT validationCacheEXT, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) : m_validationCacheEXT( validationCacheEXT ) , m_device( *device ) , m_allocator( reinterpret_cast( static_cast( allocator ) ) ) , m_dispatcher( device.getDispatcher() ) {} ~ValidationCacheEXT() { if ( m_validationCacheEXT ) { getDispatcher()->vkDestroyValidationCacheEXT( m_device, static_cast( m_validationCacheEXT ), m_allocator ); } } ValidationCacheEXT() = delete; ValidationCacheEXT( ValidationCacheEXT const & ) = delete; ValidationCacheEXT( ValidationCacheEXT && rhs ) : m_validationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCacheEXT, {} ) ) , m_device( rhs.m_device ) , m_allocator( rhs.m_allocator ) , m_dispatcher( rhs.m_dispatcher ) {} ValidationCacheEXT & operator=( ValidationCacheEXT const & ) = delete; ValidationCacheEXT & operator =( ValidationCacheEXT && rhs ) { if ( this != &rhs ) { getDispatcher()->vkDestroyValidationCacheEXT( m_device, static_cast( m_validationCacheEXT ), m_allocator ); m_validationCacheEXT = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCacheEXT, {} ); m_device = rhs.m_device; m_allocator = rhs.m_allocator; m_dispatcher = rhs.m_dispatcher; } return *this; } VULKAN_HPP_NODISCARD std::vector getData() const; void merge( ArrayProxy const & srcCaches ) const; VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & operator*() const VULKAN_HPP_NOEXCEPT { return m_validationCacheEXT; } VULKAN_HPP_RAII_DISPATCHER_TYPE const * getDispatcher() const { return m_dispatcher; } private: VULKAN_HPP_NAMESPACE::ValidationCacheEXT m_validationCacheEXT; VkDevice m_device; const VkAllocationCallbacks * m_allocator; VULKAN_HPP_RAII_DISPATCHER_TYPE const * m_dispatcher; }; VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Context::enumerateInstanceExtensionProperties( Optional layerName ) const { std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Context::enumerateInstanceLayerProperties() const { std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Context::enumerateInstanceVersion() const { uint32_t apiVersion; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkEnumerateInstanceVersion( &apiVersion ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion" ); } return apiVersion; } VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkDebugReportMessageEXT && "Function needs extension enabled!" ); getDispatcher()->vkDebugReportMessageEXT( static_cast( m_instance ), static_cast( flags ), static_cast( objectType_ ), object, location, messageCode, layerPrefix.c_str(), message.c_str() ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Instance::enumeratePhysicalDeviceGroups() const { std::vector physicalDeviceGroupProperties; uint32_t physicalDeviceGroupCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast( m_instance ), &physicalDeviceGroupCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount ) { physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); result = static_cast( getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast( m_instance ), &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) { physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); } return physicalDeviceGroupProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT { return getDispatcher()->vkGetInstanceProcAddr( static_cast( m_instance ), name.c_str() ); } VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkSubmitDebugUtilsMessageEXT && "Function needs extension enabled!" ); getDispatcher()->vkSubmitDebugUtilsMessageEXT( static_cast( m_instance ), static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( &callbackData ) ); } # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireXlibDisplayEXT( static_cast( m_physicalDevice ), &dpy, static_cast( display ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); } } # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName ) const { std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkEnumerateDeviceExtensionProperties( static_cast( m_physicalDevice ), layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkEnumerateDeviceExtensionProperties( static_cast( m_physicalDevice ), layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::enumerateDeviceLayerProperties() const { std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkEnumerateDeviceLayerProperties( static_cast( m_physicalDevice ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkEnumerateDeviceLayerProperties( static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, std::vector> PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR && "Function needs extension enabled!" ); std::pair, std::vector> data; std::vector & counters = data.first; std::vector & counterDescriptions = data.second; uint32_t counterCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &counterCount, nullptr, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount ) { counters.resize( counterCount ); counterDescriptions.resize( counterCount ); result = static_cast( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &counterCount, reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); VULKAN_HPP_ASSERT( counterCount <= counters.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( counterCount < counters.size() ) ) { counters.resize( counterCount ); counterDescriptions.resize( counterCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); } return data; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &displayPlaneInfo ), reinterpret_cast( &capabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); } return capabilities; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCalibrateableTimeDomainsEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT && "Function needs extension enabled!" ); std::vector timeDomains; uint32_t timeDomainCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( static_cast( m_physicalDevice ), &timeDomainCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount ) { timeDomains.resize( timeDomainCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( static_cast( m_physicalDevice ), &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) { timeDomains.resize( timeDomainCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); } return timeDomains; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCooperativeMatrixPropertiesNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( static_cast( m_physicalDevice ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); } return properties; } # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT( static_cast( m_physicalDevice ), queueFamilyIndex, &dfb ) ); } # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPlaneProperties2KHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( static_cast( m_physicalDevice ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPlanePropertiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( static_cast( m_physicalDevice ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayProperties2KHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( static_cast( m_physicalDevice ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPropertiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( static_cast( m_physicalDevice ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties( static_cast( m_physicalDevice ), reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); return externalBufferProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties( static_cast( m_physicalDevice ), reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); return externalFenceProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV( static_cast( m_physicalDevice ), static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast( &externalImageFormatProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); } return externalImageFormatProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties( static_cast( m_physicalDevice ), reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); return externalSemaphoreProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; getDispatcher()->vkGetPhysicalDeviceFeatures( static_cast( m_physicalDevice ), reinterpret_cast( &features ) ); return features; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast( m_physicalDevice ), reinterpret_cast( &features ) ); return features; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get(); getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast( m_physicalDevice ), reinterpret_cast( &features ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; getDispatcher()->vkGetPhysicalDeviceFormatProperties( static_cast( m_physicalDevice ), static_cast( format ), reinterpret_cast( &formatProperties ) ); return formatProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; getDispatcher()->vkGetPhysicalDeviceFormatProperties2( static_cast( m_physicalDevice ), static_cast( format ), reinterpret_cast( &formatProperties ) ); return formatProperties; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get(); getDispatcher()->vkGetPhysicalDeviceFormatProperties2( static_cast( m_physicalDevice ), static_cast( format ), reinterpret_cast( &formatProperties ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getFragmentShadingRatesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR && "Function needs extension enabled!" ); std::vector fragmentShadingRates; uint32_t fragmentShadingRateCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( static_cast( m_physicalDevice ), &fragmentShadingRateCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount ) { fragmentShadingRates.resize( fragmentShadingRateCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( static_cast( m_physicalDevice ), &fragmentShadingRateCount, reinterpret_cast( fragmentShadingRates.data() ) ) ); VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) { fragmentShadingRates.resize( fragmentShadingRateCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); } return fragmentShadingRates; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags ) const { VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties( static_cast( m_physicalDevice ), static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( &imageFormatProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); } return imageFormatProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2 PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const { VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); } return imageFormatProperties; } template VULKAN_HPP_NODISCARD StructureChain PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const { StructureChain structureChain; VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get(); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); } return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; getDispatcher()->vkGetPhysicalDeviceMemoryProperties( static_cast( m_physicalDevice ), reinterpret_cast( &memoryProperties ) ); return memoryProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &memoryProperties ) ); return memoryProperties; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get(); getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &memoryProperties ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT( static_cast( m_physicalDevice ), static_cast( samples ), reinterpret_cast( &multisampleProperties ) ); return multisampleProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR && "Function needs at least one of the following extensions enabled: , " ); std::vector rects; uint32_t rectCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( static_cast( m_physicalDevice ), static_cast( surface ), &rectCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount ) { rects.resize( rectCount ); result = static_cast( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( static_cast( m_physicalDevice ), static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); VULKAN_HPP_ASSERT( rectCount <= rects.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( rectCount < rects.size() ) ) { rects.resize( rectCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); } return rects; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; getDispatcher()->vkGetPhysicalDeviceProperties( static_cast( m_physicalDevice ), reinterpret_cast( &properties ) ); return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &properties ) ); return properties; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get(); getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &properties ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR && "Function needs extension enabled!" ); uint32_t numPasses; getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( static_cast( m_physicalDevice ), reinterpret_cast( &performanceQueryCreateInfo ), &numPasses ); return numPasses; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties() const VULKAN_HPP_NOEXCEPT { uint32_t queueFamilyPropertyCount; getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( static_cast( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); std::vector queueFamilyProperties( queueFamilyPropertyCount ); getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( static_cast( m_physicalDevice ), &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); return queueFamilyProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2() const VULKAN_HPP_NOEXCEPT { uint32_t queueFamilyPropertyCount; getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); std::vector queueFamilyProperties( queueFamilyPropertyCount ); getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast( m_physicalDevice ), &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); return queueFamilyProperties; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2() const { uint32_t queueFamilyPropertyCount; getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); std::vector returnVector( queueFamilyPropertyCount ); std::vector queueFamilyProperties( queueFamilyPropertyCount ); for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) { queueFamilyProperties[i].pNext = returnVector[i].template get().pNext; } getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast( m_physicalDevice ), &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) { returnVector[i].template get() = queueFamilyProperties[i]; } return returnVector; } # if defined( VK_USE_PLATFORM_SCREEN_QNX ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX( static_cast( m_physicalDevice ), queueFamilyIndex, &window ) ); } # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling ) const VULKAN_HPP_NOEXCEPT { uint32_t propertyCount; getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( static_cast( m_physicalDevice ), static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); std::vector properties( propertyCount ); getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( static_cast( m_physicalDevice ), static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const VULKAN_HPP_NOEXCEPT { uint32_t propertyCount; getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); std::vector properties( propertyCount ); getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV && "Function needs extension enabled!" ); std::vector combinations; uint32_t combinationCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( static_cast( m_physicalDevice ), &combinationCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount ) { combinations.resize( combinationCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( static_cast( m_physicalDevice ), &combinationCount, reinterpret_cast( combinations.data() ) ) ); VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( combinationCount < combinations.size() ) ) { combinations.resize( combinationCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); } return combinations; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( static_cast( m_physicalDevice ), static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); } return surfaceCapabilities; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); } return surfaceCapabilities; } template VULKAN_HPP_NODISCARD StructureChain PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { StructureChain structureChain; VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get(); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); } return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast( m_physicalDevice ), static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); } return surfaceCapabilities; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && "Function needs extension enabled!" ); std::vector surfaceFormats; uint32_t surfaceFormatCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) { surfaceFormats.resize( surfaceFormatCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) { surfaceFormats.resize( surfaceFormatCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); } return surfaceFormats; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR && "Function needs extension enabled!" ); std::vector surfaceFormats; uint32_t surfaceFormatCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast( m_physicalDevice ), static_cast( surface ), &surfaceFormatCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) { surfaceFormats.resize( surfaceFormatCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast( m_physicalDevice ), static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) { surfaceFormats.resize( surfaceFormatCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); } return surfaceFormats; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT && "Function needs extension enabled!" ); std::vector presentModes; uint32_t presentModeCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount ) { presentModes.resize( presentModeCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) { presentModes.resize( presentModeCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); } return presentModes; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR && "Function needs extension enabled!" ); std::vector presentModes; uint32_t presentModeCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast( m_physicalDevice ), static_cast( surface ), &presentModeCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount ) { presentModes.resize( presentModeCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast( m_physicalDevice ), static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) { presentModes.resize( presentModeCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); } return presentModes; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Bool32 supported; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, static_cast( surface ), reinterpret_cast( &supported ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); } return supported; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getToolPropertiesEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT && "Function needs extension enabled!" ); std::vector toolProperties; uint32_t toolCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( static_cast( m_physicalDevice ), &toolCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount ) { toolProperties.resize( toolCount ); result = static_cast( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( static_cast( m_physicalDevice ), &toolCount, reinterpret_cast( toolProperties.data() ) ) ); VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) { toolProperties.resize( toolCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); } return toolProperties; } # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &display ) ); } # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_XCB_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &connection, visual_id ) ); } # endif /*VK_USE_PLATFORM_XCB_KHR*/ # if defined( VK_USE_PLATFORM_XLIB_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR( static_cast( m_physicalDevice ), queueFamilyIndex, &dpy, visualID ) ); } # endif /*VK_USE_PLATFORM_XLIB_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImage2KHR && "Function needs at least one of the following extensions enabled: , " ); uint32_t imageIndex; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireNextImage2KHR( static_cast( m_device ), reinterpret_cast( &acquireInfo ), &imageIndex ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) && ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) && ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR" ); } return std::make_pair( result, imageIndex ); } VULKAN_HPP_INLINE void Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireProfilingLockKHR( static_cast( m_device ), reinterpret_cast( &info ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); } } VULKAN_HPP_INLINE void Device::bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindAccelerationStructureMemoryNV && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindAccelerationStructureMemoryNV( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); } } VULKAN_HPP_INLINE void Device::bindBufferMemory2( ArrayProxy const & bindInfos ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindBufferMemory2( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); } } VULKAN_HPP_INLINE void Device::bindImageMemory2( ArrayProxy const & bindInfos ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindImageMemory2( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBuildAccelerationStructuresKHR && "Function needs extension enabled!" ); if ( infos.size() != pBuildRangeInfos.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); } VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBuildAccelerationStructuresKHR( static_cast( m_device ), static_cast( deferredOperation ), infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR" ); } return result; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyAccelerationStructureKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCopyAccelerationStructureKHR( static_cast( m_device ), static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR" ); } return result; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyAccelerationStructureToMemoryKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCopyAccelerationStructureToMemoryKHR( static_cast( m_device ), static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR" ); } return result; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToAccelerationStructureKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCopyMemoryToAccelerationStructureKHR( static_cast( m_device ), static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR" ); } return result; } VULKAN_HPP_INLINE void Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDebugMarkerSetObjectNameEXT( static_cast( m_device ), reinterpret_cast( &nameInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); } } VULKAN_HPP_INLINE void Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDebugMarkerSetObjectTagEXT( static_cast( m_device ), reinterpret_cast( &tagInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); } } VULKAN_HPP_INLINE void Device::waitIdle() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDeviceWaitIdle( static_cast( m_device ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); } } VULKAN_HPP_INLINE void Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDisplayPowerControlEXT( static_cast( m_device ), static_cast( display ), reinterpret_cast( &displayPowerInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); } } VULKAN_HPP_INLINE void Device::flushMappedMemoryRanges( ArrayProxy const & memoryRanges ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkFlushMappedMemoryRanges( static_cast( m_device ), memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy const & maxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureBuildSizesKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; getDispatcher()->vkGetAccelerationStructureBuildSizesKHR( static_cast( m_device ), static_cast( buildType ), reinterpret_cast( &buildInfo ), maxPrimitiveCounts.data(), reinterpret_cast( &sizeInfo ) ); return sizeInfo; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR( static_cast( m_device ), reinterpret_cast( &info ) ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return memoryRequirements; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && "Function needs extension enabled!" ); StructureChain structureChain; VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get(); getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return structureChain; } # if defined( VK_USE_PLATFORM_ANDROID_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( static_cast( m_device ), &buffer, reinterpret_cast( &properties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); } return properties; } # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # if defined( VK_USE_PLATFORM_ANDROID_KHR ) template VULKAN_HPP_NODISCARD StructureChain Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const { StructureChain structureChain; VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get(); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( static_cast( m_device ), &buffer, reinterpret_cast( &properties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); } return structureChain; } # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT { return static_cast( getDispatcher()->vkGetBufferDeviceAddress( static_cast( m_device ), reinterpret_cast( &info ) ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; getDispatcher()->vkGetBufferMemoryRequirements2( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return memoryRequirements; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); getDispatcher()->vkGetBufferMemoryRequirements2( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT { return getDispatcher()->vkGetBufferOpaqueCaptureAddress( static_cast( m_device ), reinterpret_cast( &info ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, uint64_t> Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT && "Function needs extension enabled!" ); std::pair, uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); std::vector & timestamps = data.first; uint64_t & maxDeviation = data.second; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetCalibratedTimestampsEXT( static_cast( m_device ), timestampInfos.size(), reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); } return data; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; getDispatcher()->vkGetDescriptorSetLayoutSupport( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); return support; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get(); getDispatcher()->vkGetDescriptorSetLayoutSupport( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR( static_cast( m_device ), reinterpret_cast( &versionInfo ), reinterpret_cast( &compatibility ) ); return compatibility; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures( static_cast( m_device ), heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); return peerMemoryFeatures; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR Device::getGroupPresentCapabilitiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR && "Function needs at least one of the following extensions enabled: , " ); VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR( static_cast( m_device ), reinterpret_cast( &deviceGroupPresentCapabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); } return deviceGroupPresentCapabilities; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( static_cast( m_device ), reinterpret_cast( &surfaceInfo ), reinterpret_cast( &modes ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); } return modes; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR && "Function needs at least one of the following extensions enabled: , " ); VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR( static_cast( m_device ), static_cast( surface ), reinterpret_cast( &modes ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); } return modes; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT { return getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress( static_cast( m_device ), reinterpret_cast( &info ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT { return getDispatcher()->vkGetDeviceProcAddr( static_cast( m_device ), name.c_str() ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && "Function needs extension enabled!" ); int fd; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetFenceFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); } return fd; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR && "Function needs extension enabled!" ); HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetFenceWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &getWin32HandleInfo ), &handle ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); } return handle; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return memoryRequirements; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && "Function needs extension enabled!" ); StructureChain structureChain; VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; getDispatcher()->vkGetImageMemoryRequirements2( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return memoryRequirements; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT { StructureChain structureChain; VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); getDispatcher()->vkGetImageMemoryRequirements2( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); return structureChain; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT { uint32_t sparseMemoryRequirementCount; getDispatcher()->vkGetImageSparseMemoryRequirements2( static_cast( m_device ), reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); std::vector sparseMemoryRequirements( sparseMemoryRequirementCount ); getDispatcher()->vkGetImageSparseMemoryRequirements2( static_cast( m_device ), reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); return sparseMemoryRequirements; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewHandleNVX && "Function needs extension enabled!" ); return getDispatcher()->vkGetImageViewHandleNVX( static_cast( m_device ), reinterpret_cast( &info ) ); } # if defined( VK_USE_PLATFORM_ANDROID_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer * Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID && "Function needs extension enabled!" ); struct AHardwareBuffer * buffer; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID( static_cast( m_device ), reinterpret_cast( &info ), &buffer ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); } return buffer; } # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && "Function needs extension enabled!" ); int fd; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); } return fd; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryFdPropertiesKHR( static_cast( m_device ), static_cast( handleType ), fd, reinterpret_cast( &memoryFdProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); } return memoryFdProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT( static_cast( m_device ), static_cast( handleType ), pHostPointer, reinterpret_cast( &memoryHostPointerProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); } return memoryHostPointerProperties; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleKHR && "Function needs extension enabled!" ); HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &getWin32HandleInfo ), &handle ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); } return handle; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR( static_cast( m_device ), static_cast( handleType ), handle, reinterpret_cast( &memoryWin32HandleProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); } return memoryWin32HandleProperties; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t Device::getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA && "Function needs extension enabled!" ); zx_handle_t zirconHandle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA( static_cast( m_device ), reinterpret_cast( &getZirconHandleInfo ), &zirconHandle ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" ); } return zirconHandle; } # endif /*VK_USE_PLATFORM_FUCHSIA*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA( static_cast( m_device ), static_cast( handleType ), zirconHandle, reinterpret_cast( &memoryZirconHandleProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" ); } return memoryZirconHandleProperties; } # endif /*VK_USE_PLATFORM_FUCHSIA*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PerformanceValueINTEL Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPerformanceParameterINTEL && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetPerformanceParameterINTEL( static_cast( m_device ), static_cast( parameter ), reinterpret_cast( &value ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); } return value; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR && "Function needs extension enabled!" ); std::vector internalRepresentations; uint32_t internalRepresentationCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( static_cast( m_device ), reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount ) { internalRepresentations.resize( internalRepresentationCount ); result = static_cast( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( static_cast( m_device ), reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) { internalRepresentations.resize( internalRepresentationCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); } return internalRepresentations; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutablePropertiesKHR && "Function needs extension enabled!" ); std::vector properties; uint32_t executableCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPipelineExecutablePropertiesKHR( static_cast( m_device ), reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount ) { properties.resize( executableCount ); result = static_cast( getDispatcher()->vkGetPipelineExecutablePropertiesKHR( static_cast( m_device ), reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( executableCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( executableCount < properties.size() ) ) { properties.resize( executableCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableStatisticsKHR && "Function needs extension enabled!" ); std::vector statistics; uint32_t statisticCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPipelineExecutableStatisticsKHR( static_cast( m_device ), reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount ) { statistics.resize( statisticCount ); result = static_cast( getDispatcher()->vkGetPipelineExecutableStatisticsKHR( static_cast( m_device ), reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( statisticCount < statistics.size() ) ) { statistics.resize( statisticCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); } return statistics; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateDataEXT && "Function needs extension enabled!" ); uint64_t data; getDispatcher()->vkGetPrivateDataEXT( static_cast( m_device ), static_cast( objectType_ ), objectHandle, static_cast( privateDataSlot ), &data ); return data; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && "Function needs extension enabled!" ); int fd; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSemaphoreFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); } return fd; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreWin32HandleKHR && "Function needs extension enabled!" ); HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSemaphoreWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &getWin32HandleInfo ), &handle ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); } return handle; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t Device::getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA && "Function needs extension enabled!" ); zx_handle_t zirconHandle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA( static_cast( m_device ), reinterpret_cast( &getZirconHandleInfo ), &zirconHandle ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" ); } return zirconHandle; } # endif /*VK_USE_PLATFORM_FUCHSIA*/ VULKAN_HPP_INLINE void Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportFenceFdKHR( static_cast( m_device ), reinterpret_cast( &importFenceFdInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); } } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceWin32HandleKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportFenceWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &importFenceWin32HandleInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_INLINE void Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportSemaphoreFdKHR( static_cast( m_device ), reinterpret_cast( &importSemaphoreFdInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); } } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_INLINE void Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreWin32HandleKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportSemaphoreWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &importSemaphoreWin32HandleInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) VULKAN_HPP_INLINE void Device::importSemaphoreZirconHandleFUCHSIA( const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA( static_cast( m_device ), reinterpret_cast( &importSemaphoreZirconHandleInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" ); } } # endif /*VK_USE_PLATFORM_FUCHSIA*/ VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkInitializePerformanceApiINTEL && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkInitializePerformanceApiINTEL( static_cast( m_device ), reinterpret_cast( &initializeInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); } } VULKAN_HPP_INLINE void Device::invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkInvalidateMappedMemoryRanges( static_cast( m_device ), memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); } } VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseProfilingLockKHR && "Function needs extension enabled!" ); getDispatcher()->vkReleaseProfilingLockKHR( static_cast( m_device ) ); } VULKAN_HPP_INLINE void Device::resetFences( ArrayProxy const & fences ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkResetFences( static_cast( m_device ), fences.size(), reinterpret_cast( fences.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); } } VULKAN_HPP_INLINE void Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetDebugUtilsObjectNameEXT( static_cast( m_device ), reinterpret_cast( &nameInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); } } VULKAN_HPP_INLINE void Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetDebugUtilsObjectTagEXT( static_cast( m_device ), reinterpret_cast( &tagInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); } } VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy const & swapchains, ArrayProxy const & metadata ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkSetHdrMetadataEXT && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); # else if ( swapchains.size() != metadata.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkSetHdrMetadataEXT( static_cast( m_device ), swapchains.size(), reinterpret_cast( swapchains.data() ), reinterpret_cast( metadata.data() ) ); } VULKAN_HPP_INLINE void Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetPrivateDataEXT( static_cast( m_device ), static_cast( objectType_ ), objectHandle, static_cast( privateDataSlot ), data ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); } } VULKAN_HPP_INLINE void Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSignalSemaphore( static_cast( m_device ), reinterpret_cast( &signalInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); } } VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkUninitializePerformanceApiINTEL && "Function needs extension enabled!" ); getDispatcher()->vkUninitializePerformanceApiINTEL( static_cast( m_device ) ); } VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkUpdateDescriptorSets( static_cast( m_device ), descriptorWrites.size(), reinterpret_cast( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast( descriptorCopies.data() ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitForFences( ArrayProxy const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkWaitForFences( static_cast( m_device ), fences.size(), reinterpret_cast( fences.data() ), static_cast( waitAll ), timeout ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences" ); } return result; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkWaitSemaphores( static_cast( m_device ), reinterpret_cast( &waitInfo ), timeout ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores" ); } return result; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR && "Function needs extension enabled!" ); VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( static_cast( m_device ), accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), data.size() * sizeof( T ), reinterpret_cast( data.data() ), stride ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); } return data; } template VULKAN_HPP_NODISCARD T Device::writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride ) const { T data; Result result = static_cast( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( static_cast( m_device ), accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), sizeof( T ), reinterpret_cast( &data ), stride ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); } return data; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector AccelerationStructureNV::getHandle( size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function needs extension enabled!" ); VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast( m_device ), static_cast( m_accelerationStructureNV ), data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); } return data; } template VULKAN_HPP_NODISCARD T AccelerationStructureNV::getHandle() const { T data; Result result = static_cast( getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast( m_device ), static_cast( m_accelerationStructureNV ), sizeof( T ), reinterpret_cast( &data ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); } return data; } VULKAN_HPP_INLINE void Buffer::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindBufferMemory( static_cast( m_device ), static_cast( m_buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Buffer::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; getDispatcher()->vkGetBufferMemoryRequirements( static_cast( m_device ), static_cast( m_buffer ), reinterpret_cast( &memoryRequirements ) ); return memoryRequirements; } VULKAN_HPP_INLINE void CommandPool::reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkResetCommandPool( static_cast( m_device ), static_cast( m_commandPool ), static_cast( flags ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset" ); } } VULKAN_HPP_INLINE void CommandPool::trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkTrimCommandPool( static_cast( m_device ), static_cast( m_commandPool ), static_cast( flags ) ); } VULKAN_HPP_INLINE void CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBeginCommandBuffer( static_cast( m_commandBuffer ), reinterpret_cast( &beginInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); } } VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginConditionalRenderingEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdBeginConditionalRenderingEXT( static_cast( m_commandBuffer ), reinterpret_cast( &conditionalRenderingBegin ) ); } VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginDebugUtilsLabelEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdBeginDebugUtilsLabelEXT( static_cast( m_commandBuffer ), reinterpret_cast( &labelInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBeginQuery( static_cast( m_commandBuffer ), static_cast( queryPool ), query, static_cast( flags ) ); } VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQueryIndexedEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdBeginQueryIndexedEXT( static_cast( m_commandBuffer ), static_cast( queryPool ), query, static_cast( flags ), index ); } VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBeginRenderPass( static_cast( m_commandBuffer ), reinterpret_cast( &renderPassBegin ), static_cast( contents ) ); } VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBeginRenderPass2( static_cast( m_commandBuffer ), reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginTransformFeedbackEXT && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); # else if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdBeginTransformFeedbackEXT( static_cast( m_commandBuffer ), firstCounterBuffer, counterBuffers.size(), reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy const & descriptorSets, ArrayProxy const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBindDescriptorSets( static_cast( m_commandBuffer ), static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSets.size(), reinterpret_cast( descriptorSets.data() ), dynamicOffsets.size(), dynamicOffsets.data() ); } VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBindIndexBuffer( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), static_cast( indexType ) ); } VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBindPipeline( static_cast( m_commandBuffer ), static_cast( pipelineBindPoint ), static_cast( pipeline ) ); } VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindPipelineShaderGroupNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdBindPipelineShaderGroupNV( static_cast( m_commandBuffer ), static_cast( pipelineBindPoint ), static_cast( pipeline ), groupIndex ); } VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadingRateImageNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdBindShadingRateImageNV( static_cast( m_commandBuffer ), static_cast( imageView ), static_cast( imageLayout ) ); } VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); # else if ( buffers.size() != offsets.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" ); } if ( !sizes.empty() && buffers.size() != sizes.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT( static_cast( m_commandBuffer ), firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); # else if ( buffers.size() != offsets.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdBindVertexBuffers( static_cast( m_commandBuffer ), firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes, ArrayProxy const & strides ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers2EXT && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); # else if ( buffers.size() != offsets.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" ); } if ( !sizes.empty() && buffers.size() != sizes.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" ); } if ( !strides.empty() && buffers.size() != strides.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdBindVertexBuffers2EXT( static_cast( m_commandBuffer ), firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ), reinterpret_cast( strides.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdBlitImage( static_cast( m_commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ), static_cast( filter ) ); } VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdBlitImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( &blitImageInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructureNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdBuildAccelerationStructureNV( static_cast( m_commandBuffer ), reinterpret_cast( &info ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); } VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( ArrayProxy const & infos, ArrayProxy const & indirectDeviceAddresses, ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() ); # else if ( infos.size() != indirectDeviceAddresses.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" ); } if ( infos.size() != indirectStrides.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" ); } if ( infos.size() != pMaxPrimitiveCounts.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR( static_cast( m_commandBuffer ), infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( indirectDeviceAddresses.data() ), indirectStrides.data(), pMaxPrimitiveCounts.data() ); } VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructuresKHR && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); # else if ( infos.size() != pBuildRangeInfos.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdBuildAccelerationStructuresKHR( static_cast( m_commandBuffer ), infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy const & attachments, ArrayProxy const & rects ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdClearAttachments( static_cast( m_commandBuffer ), attachments.size(), reinterpret_cast( attachments.data() ), rects.size(), reinterpret_cast( rects.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy const & ranges ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdClearColorImage( static_cast( m_commandBuffer ), static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &color ), ranges.size(), reinterpret_cast( ranges.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy const & ranges ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdClearDepthStencilImage( static_cast( m_commandBuffer ), static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &depthStencil ), ranges.size(), reinterpret_cast( ranges.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyAccelerationStructureKHR( static_cast( m_commandBuffer ), reinterpret_cast( &info ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyAccelerationStructureNV( static_cast( m_commandBuffer ), static_cast( dst ), static_cast( src ), static_cast( mode ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR( static_cast( m_commandBuffer ), reinterpret_cast( &info ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdCopyBuffer( static_cast( m_commandBuffer ), static_cast( srcBuffer ), static_cast( dstBuffer ), regions.size(), reinterpret_cast( regions.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyBuffer2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©BufferInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdCopyBufferToImage( static_cast( m_commandBuffer ), static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyBufferToImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©BufferToImageInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdCopyImage( static_cast( m_commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©ImageInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdCopyImageToBuffer( static_cast( m_commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regions.size(), reinterpret_cast( regions.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyImageToBuffer2KHR( static_cast( m_commandBuffer ), reinterpret_cast( ©ImageToBufferInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR( static_cast( m_commandBuffer ), reinterpret_cast( &info ) ); } VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdCopyQueryPoolResults( static_cast( m_commandBuffer ), static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( stride ), static_cast( flags ) ); } VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerBeginEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdDebugMarkerBeginEXT( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerEndEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdDebugMarkerEndEXT( static_cast( m_commandBuffer ) ); } VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerInsertEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdDebugMarkerInsertEXT( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDispatch( static_cast( m_commandBuffer ), groupCountX, groupCountY, groupCountZ ); } VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDispatchBase( static_cast( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); } VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDispatchIndirect( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ) ); } VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDraw( static_cast( m_commandBuffer ), vertexCount, instanceCount, firstVertex, firstInstance ); } VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDrawIndexed( static_cast( m_commandBuffer ), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); } VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDrawIndexedIndirect( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), drawCount, stride ); } VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDrawIndexedIndirectCount( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); } VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDrawIndirect( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), drawCount, stride ); } VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectByteCountEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdDrawIndirectByteCountEXT( static_cast( m_commandBuffer ), instanceCount, firstInstance, static_cast( counterBuffer ), static_cast( counterBufferOffset ), counterOffset, vertexStride ); } VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdDrawIndirectCount( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); } VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); } VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdDrawMeshTasksIndirectNV( static_cast( m_commandBuffer ), static_cast( buffer ), static_cast( offset ), drawCount, stride ); } VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdDrawMeshTasksNV( static_cast( m_commandBuffer ), taskCount, firstTask ); } VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndConditionalRenderingEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdEndConditionalRenderingEXT( static_cast( m_commandBuffer ) ); } VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndDebugUtilsLabelEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdEndDebugUtilsLabelEXT( static_cast( m_commandBuffer ) ); } VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdEndQuery( static_cast( m_commandBuffer ), static_cast( queryPool ), query ); } VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQueryIndexedEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdEndQueryIndexedEXT( static_cast( m_commandBuffer ), static_cast( queryPool ), query, index ); } VULKAN_HPP_INLINE void CommandBuffer::endRenderPass() const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdEndRenderPass( static_cast( m_commandBuffer ) ); } VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdEndRenderPass2( static_cast( m_commandBuffer ), reinterpret_cast( &subpassEndInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndTransformFeedbackEXT && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); # else if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdEndTransformFeedbackEXT( static_cast( m_commandBuffer ), firstCounterBuffer, counterBuffers.size(), reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy const & commandBuffers ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdExecuteCommands( static_cast( m_commandBuffer ), commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdExecuteGeneratedCommandsNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdExecuteGeneratedCommandsNV( static_cast( m_commandBuffer ), static_cast( isPreprocessed ), reinterpret_cast( &generatedCommandsInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdFillBuffer( static_cast( m_commandBuffer ), static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( size ), data ); } VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInsertDebugUtilsLabelEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdInsertDebugUtilsLabelEXT( static_cast( m_commandBuffer ), reinterpret_cast( &labelInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdNextSubpass( static_cast( m_commandBuffer ), static_cast( contents ) ); } VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdNextSubpass2( static_cast( m_commandBuffer ), reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdPipelineBarrier( static_cast( m_commandBuffer ), static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarriers.size(), reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast( imageMemoryBarriers.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdPipelineBarrier2KHR( static_cast( m_commandBuffer ), reinterpret_cast( &dependencyInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPreprocessGeneratedCommandsNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdPreprocessGeneratedCommandsNV( static_cast( m_commandBuffer ), reinterpret_cast( &generatedCommandsInfo ) ); } template VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy const & values ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdPushConstants( static_cast( m_commandBuffer ), static_cast( layout ), static_cast( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast( values.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdPushDescriptorSetKHR( static_cast( m_commandBuffer ), static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWrites.size(), reinterpret_cast( descriptorWrites.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void * pData ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR && "Function needs at least one of the following extensions enabled: , " ); getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR( static_cast( m_commandBuffer ), static_cast( descriptorUpdateTemplate ), static_cast( layout ), set, pData ); } VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdResetEvent( static_cast( m_commandBuffer ), static_cast( event ), static_cast( stageMask ) ); } VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdResetEvent2KHR( static_cast( m_commandBuffer ), static_cast( event ), static_cast( stageMask ) ); } VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdResetQueryPool( static_cast( m_commandBuffer ), static_cast( queryPool ), firstQuery, queryCount ); } VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdResolveImage( static_cast( m_commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdResolveImage2KHR( static_cast( m_commandBuffer ), reinterpret_cast( &resolveImageInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetBlendConstants( static_cast( m_commandBuffer ), blendConstants ); } VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCheckpointNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetCheckpointNV( static_cast( m_commandBuffer ), pCheckpointMarker ); } VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy const & customSampleOrders ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoarseSampleOrderNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetCoarseSampleOrderNV( static_cast( m_commandBuffer ), static_cast( sampleOrderType ), customSampleOrders.size(), reinterpret_cast( customSampleOrders.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullModeEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetCullModeEXT( static_cast( m_commandBuffer ), static_cast( cullMode ) ); } VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetDepthBias( static_cast( m_commandBuffer ), depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); } VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetDepthBounds( static_cast( m_commandBuffer ), minDepthBounds, maxDepthBounds ); } VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT( static_cast( m_commandBuffer ), static_cast( depthBoundsTestEnable ) ); } VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthCompareOpEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetDepthCompareOpEXT( static_cast( m_commandBuffer ), static_cast( depthCompareOp ) ); } VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthTestEnableEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetDepthTestEnableEXT( static_cast( m_commandBuffer ), static_cast( depthTestEnable ) ); } VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthWriteEnableEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetDepthWriteEnableEXT( static_cast( m_commandBuffer ), static_cast( depthWriteEnable ) ); } VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetDeviceMask( static_cast( m_commandBuffer ), deviceMask ); } VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetDiscardRectangleEXT( static_cast( m_commandBuffer ), firstDiscardRectangle, discardRectangles.size(), reinterpret_cast( discardRectangles.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetEvent( static_cast( m_commandBuffer ), static_cast( event ), static_cast( stageMask ) ); } VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetEvent2KHR( static_cast( m_commandBuffer ), static_cast( event ), reinterpret_cast( &dependencyInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetExclusiveScissorNV( static_cast( m_commandBuffer ), firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast( exclusiveScissors.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFragmentShadingRateEnumNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetFragmentShadingRateEnumNV( static_cast( m_commandBuffer ), static_cast( shadingRate ), reinterpret_cast( combinerOps ) ); } VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFragmentShadingRateKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetFragmentShadingRateKHR( static_cast( m_commandBuffer ), reinterpret_cast( &fragmentSize ), reinterpret_cast( combinerOps ) ); } VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFaceEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetFrontFaceEXT( static_cast( m_commandBuffer ), static_cast( frontFace ) ); } VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetLineStippleEXT( static_cast( m_commandBuffer ), lineStippleFactor, lineStipplePattern ); } VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetLineWidth( static_cast( m_commandBuffer ), lineWidth ); } VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceMarkerINTEL && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCmdSetPerformanceMarkerINTEL( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); } } VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceOverrideINTEL && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCmdSetPerformanceOverrideINTEL( static_cast( m_commandBuffer ), reinterpret_cast( &overrideInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); } } VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); } } VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveTopologyEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetPrimitiveTopologyEXT( static_cast( m_commandBuffer ), static_cast( primitiveTopology ) ); } VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR( static_cast( m_commandBuffer ), pipelineStackSize ); } VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetSampleLocationsEXT( static_cast( m_commandBuffer ), reinterpret_cast( &sampleLocationsInfo ) ); } VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy const & scissors ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetScissor( static_cast( m_commandBuffer ), firstScissor, scissors.size(), reinterpret_cast( scissors.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy const & scissors ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissorWithCountEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetScissorWithCountEXT( static_cast( m_commandBuffer ), scissors.size(), reinterpret_cast( scissors.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetStencilCompareMask( static_cast( m_commandBuffer ), static_cast( faceMask ), compareMask ); } VULKAN_HPP_INLINE void CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOpEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetStencilOpEXT( static_cast( m_commandBuffer ), static_cast( faceMask ), static_cast( failOp ), static_cast( passOp ), static_cast( depthFailOp ), static_cast( compareOp ) ); } VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetStencilReference( static_cast( m_commandBuffer ), static_cast( faceMask ), reference ); } VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilTestEnableEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetStencilTestEnableEXT( static_cast( m_commandBuffer ), static_cast( stencilTestEnable ) ); } VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetStencilWriteMask( static_cast( m_commandBuffer ), static_cast( faceMask ), writeMask ); } VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy const & viewports ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdSetViewport( static_cast( m_commandBuffer ), firstViewport, viewports.size(), reinterpret_cast( viewports.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy const & shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportShadingRatePaletteNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetViewportShadingRatePaletteNV( static_cast( m_commandBuffer ), firstViewport, shadingRatePalettes.size(), reinterpret_cast( shadingRatePalettes.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy const & viewportWScalings ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWScalingNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetViewportWScalingNV( static_cast( m_commandBuffer ), firstViewport, viewportWScalings.size(), reinterpret_cast( viewportWScalings.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy const & viewports ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWithCountEXT && "Function needs extension enabled!" ); getDispatcher()->vkCmdSetViewportWithCountEXT( static_cast( m_commandBuffer ), viewports.size(), reinterpret_cast( viewports.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirectKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdTraceRaysIndirectKHR( static_cast( m_commandBuffer ), reinterpret_cast( &raygenShaderBindingTable ), reinterpret_cast( &missShaderBindingTable ), reinterpret_cast( &hitShaderBindingTable ), reinterpret_cast( &callableShaderBindingTable ), static_cast( indirectDeviceAddress ) ); } VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdTraceRaysKHR( static_cast( m_commandBuffer ), reinterpret_cast( &raygenShaderBindingTable ), reinterpret_cast( &missShaderBindingTable ), reinterpret_cast( &hitShaderBindingTable ), reinterpret_cast( &callableShaderBindingTable ), width, height, depth ); } VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdTraceRaysNV( static_cast( m_commandBuffer ), static_cast( raygenShaderBindingTableBuffer ), static_cast( raygenShaderBindingOffset ), static_cast( missShaderBindingTableBuffer ), static_cast( missShaderBindingOffset ), static_cast( missShaderBindingStride ), static_cast( hitShaderBindingTableBuffer ), static_cast( hitShaderBindingOffset ), static_cast( hitShaderBindingStride ), static_cast( callableShaderBindingTableBuffer ), static_cast( callableShaderBindingOffset ), static_cast( callableShaderBindingStride ), width, height, depth ); } template VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy const & data ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdUpdateBuffer( static_cast( m_commandBuffer ), static_cast( dstBuffer ), static_cast( dstOffset ), data.size() * sizeof( T ), reinterpret_cast( data.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdWaitEvents( static_cast( m_commandBuffer ), events.size(), reinterpret_cast( events.data() ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarriers.size(), reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast( imageMemoryBarriers.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( ArrayProxy const & events, ArrayProxy const & dependencyInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2KHR && "Function needs extension enabled!" ); # ifdef VULKAN_HPP_NO_EXCEPTIONS VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); # else if ( events.size() != dependencyInfos.size() ) { throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" ); } # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ getDispatcher()->vkCmdWaitEvents2KHR( static_cast( m_commandBuffer ), events.size(), reinterpret_cast( events.data() ), reinterpret_cast( dependencyInfos.data() ) ); } VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR( static_cast( m_commandBuffer ), accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); } VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV && "Function needs extension enabled!" ); getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV( static_cast( m_commandBuffer ), accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); } VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarker2AMD && "Function needs extension enabled!" ); getDispatcher()->vkCmdWriteBufferMarker2AMD( static_cast( m_commandBuffer ), static_cast( stage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); } VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarkerAMD && "Function needs extension enabled!" ); getDispatcher()->vkCmdWriteBufferMarkerAMD( static_cast( m_commandBuffer ), static_cast( pipelineStage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); } VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkCmdWriteTimestamp( static_cast( m_commandBuffer ), static_cast( pipelineStage ), static_cast( queryPool ), query ); } VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2KHR && "Function needs extension enabled!" ); getDispatcher()->vkCmdWriteTimestamp2KHR( static_cast( m_commandBuffer ), static_cast( stage ), static_cast( queryPool ), query ); } VULKAN_HPP_INLINE void CommandBuffer::end() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkEndCommandBuffer( static_cast( m_commandBuffer ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); } } VULKAN_HPP_INLINE void CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkResetCommandBuffer( static_cast( m_commandBuffer ), static_cast( flags ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::join() const { VULKAN_HPP_ASSERT( getDispatcher()->vkDeferredOperationJoinKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkDeferredOperationJoinKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::join" ); } return result; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t DeferredOperationKHR::getMaxConcurrency() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR && "Function needs extension enabled!" ); return getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::getResult() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeferredOperationResultKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetDeferredOperationResultKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ) ); } VULKAN_HPP_INLINE void DescriptorPool::reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkResetDescriptorPool( static_cast( m_device ), static_cast( m_descriptorPool ), static_cast( flags ) ); } VULKAN_HPP_INLINE void DescriptorSet::updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void * pData ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkUpdateDescriptorSetWithTemplate( static_cast( m_device ), static_cast( m_descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize DeviceMemory::getCommitment() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; getDispatcher()->vkGetDeviceMemoryCommitment( static_cast( m_device ), static_cast( m_deviceMemory ), reinterpret_cast( &committedMemoryInBytes ) ); return committedMemoryInBytes; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE DeviceMemory::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV && "Function needs extension enabled!" ); HANDLE handle; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandleNV( static_cast( m_device ), static_cast( m_deviceMemory ), static_cast( handleType ), &handle ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" ); } return handle; } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * DeviceMemory::mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags ) const { void * pData; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkMapMemory( static_cast( m_device ), static_cast( m_deviceMemory ), static_cast( offset ), static_cast( size ), static_cast( flags ), &pData ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory" ); } return pData; } VULKAN_HPP_INLINE void DeviceMemory::unmapMemory() const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkUnmapMemory( static_cast( m_device ), static_cast( m_deviceMemory ) ); } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireWinrtDisplayNV( static_cast( m_physicalDevice ), static_cast( m_displayKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties2() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModeProperties2KHR && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetDisplayModeProperties2KHR( static_cast( m_physicalDevice ), static_cast( m_displayKHR ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetDisplayModeProperties2KHR( static_cast( m_physicalDevice ), static_cast( m_displayKHR ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR && "Function needs extension enabled!" ); std::vector properties; uint32_t propertyCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetDisplayModePropertiesKHR( static_cast( m_physicalDevice ), static_cast( m_displayKHR ), &propertyCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) { properties.resize( propertyCount ); result = static_cast( getDispatcher()->vkGetDisplayModePropertiesKHR( static_cast( m_physicalDevice ), static_cast( m_displayKHR ), &propertyCount, reinterpret_cast( properties.data() ) ) ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) { properties.resize( propertyCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR( static_cast( m_physicalDevice ), static_cast( m_displayModeKHR ), planeIndex, reinterpret_cast( &capabilities ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" ); } return capabilities; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Event::getStatus() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetEventStatus( static_cast( m_device ), static_cast( m_event ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eEventSet ) && ( result != VULKAN_HPP_NAMESPACE::Result::eEventReset ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus" ); } return result; } VULKAN_HPP_INLINE void Event::reset() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkResetEvent( static_cast( m_device ), static_cast( m_event ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Event::reset" ); } } VULKAN_HPP_INLINE void Event::set() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkSetEvent( static_cast( m_device ), static_cast( m_event ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Event::set" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Fence::getStatus() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetFenceStatus( static_cast( m_device ), static_cast( m_fence ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus" ); } return result; } VULKAN_HPP_INLINE void Image::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindImageMemory( static_cast( m_device ), static_cast( m_image ), static_cast( memory ), static_cast( memoryOffset ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT Image::getDrmFormatModifierPropertiesEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT( static_cast( m_device ), static_cast( m_image ), reinterpret_cast( &properties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Image::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; getDispatcher()->vkGetImageMemoryRequirements( static_cast( m_device ), static_cast( m_image ), reinterpret_cast( &memoryRequirements ) ); return memoryRequirements; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Image::getSparseMemoryRequirements() const VULKAN_HPP_NOEXCEPT { uint32_t sparseMemoryRequirementCount; getDispatcher()->vkGetImageSparseMemoryRequirements( static_cast( m_device ), static_cast( m_image ), &sparseMemoryRequirementCount, nullptr ); std::vector sparseMemoryRequirements( sparseMemoryRequirementCount ); getDispatcher()->vkGetImageSparseMemoryRequirements( static_cast( m_device ), static_cast( m_image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); return sparseMemoryRequirements; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Image::getSubresourceLayout( const ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::SubresourceLayout layout; getDispatcher()->vkGetImageSubresourceLayout( static_cast( m_device ), static_cast( m_image ), reinterpret_cast( &subresource ), reinterpret_cast( &layout ) ); return layout; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX ImageView::getAddressNVX() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetImageViewAddressNVX( static_cast( m_device ), static_cast( m_imageView ), reinterpret_cast( &properties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX" ); } return properties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PipelineCache::getData() const { std::vector data; size_t dataSize; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPipelineCacheData( static_cast( m_device ), static_cast( m_pipelineCache ), &dataSize, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) { data.resize( dataSize ); result = static_cast( getDispatcher()->vkGetPipelineCacheData( static_cast( m_device ), static_cast( m_pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); VULKAN_HPP_ASSERT( dataSize <= data.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( dataSize < data.size() ) ) { data.resize( dataSize ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData" ); } return data; } VULKAN_HPP_INLINE void PipelineCache::merge( ArrayProxy const & srcCaches ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkMergePipelineCaches( static_cast( m_device ), static_cast( m_pipelineCache ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge" ); } } VULKAN_HPP_INLINE void Pipeline::compileDeferredNV( uint32_t shader ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCompileDeferredNV( static_cast( m_device ), static_cast( m_pipeline ), shader ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV" ); } } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && "Function needs extension enabled!" ); VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast( m_device ), static_cast( m_pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); } return data; } template VULKAN_HPP_NODISCARD T Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const { T data; Result result = static_cast( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast( m_device ), static_cast( m_pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" ); } return data; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && "Function needs extension enabled!" ); VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast( m_device ), static_cast( m_pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" ); } return data; } template VULKAN_HPP_NODISCARD T Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const { T data; Result result = static_cast( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast( m_device ), static_cast( m_pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" ); } return data; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Pipeline::getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR && "Function needs extension enabled!" ); return static_cast( getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR( static_cast( m_device ), static_cast( m_pipeline ), group, static_cast( groupShader ) ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Pipeline::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && "Function needs extension enabled!" ); std::vector info; size_t infoSize; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetShaderInfoAMD( static_cast( m_device ), static_cast( m_pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize ) { info.resize( infoSize ); result = static_cast( getDispatcher()->vkGetShaderInfoAMD( static_cast( m_device ), static_cast( m_pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); VULKAN_HPP_ASSERT( infoSize <= info.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( infoSize < info.size() ) ) { info.resize( infoSize ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" ); } return info; } template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair> QueryPool::getResults( uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const { VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); std::vector data( dataSize / sizeof( T ) ); Result result = static_cast( getDispatcher()->vkGetQueryPoolResults( static_cast( m_device ), static_cast( m_queryPool ), firstQuery, queryCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults" ); } return std::make_pair( result, data ); } template VULKAN_HPP_NODISCARD std::pair QueryPool::getResult( uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const { T data; Result result = static_cast( getDispatcher()->vkGetQueryPoolResults( static_cast( m_device ), static_cast( m_queryPool ), firstQuery, queryCount, sizeof( T ), reinterpret_cast( &data ), static_cast( stride ), static_cast( flags ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult" ); } return std::make_pair( result, data ); } VULKAN_HPP_INLINE void QueryPool::reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT { getDispatcher()->vkResetQueryPool( static_cast( m_device ), static_cast( m_queryPool ), firstQuery, queryCount ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointData2NV && "Function needs extension enabled!" ); uint32_t checkpointDataCount; getDispatcher()->vkGetQueueCheckpointData2NV( static_cast( m_queue ), &checkpointDataCount, nullptr ); std::vector checkpointData( checkpointDataCount ); getDispatcher()->vkGetQueueCheckpointData2NV( static_cast( m_queue ), &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); return checkpointData; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointDataNV && "Function needs extension enabled!" ); uint32_t checkpointDataCount; getDispatcher()->vkGetQueueCheckpointDataNV( static_cast( m_queue ), &checkpointDataCount, nullptr ); std::vector checkpointData( checkpointDataCount ); getDispatcher()->vkGetQueueCheckpointDataNV( static_cast( m_queue ), &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); return checkpointData; } VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBeginDebugUtilsLabelEXT && "Function needs extension enabled!" ); getDispatcher()->vkQueueBeginDebugUtilsLabelEXT( static_cast( m_queue ), reinterpret_cast( &labelInfo ) ); } VULKAN_HPP_INLINE void Queue::bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueBindSparse( static_cast( m_queue ), bindInfo.size(), reinterpret_cast( bindInfo.data() ), static_cast( fence ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); } } VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueEndDebugUtilsLabelEXT && "Function needs extension enabled!" ); getDispatcher()->vkQueueEndDebugUtilsLabelEXT( static_cast( m_queue ) ); } VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueInsertDebugUtilsLabelEXT && "Function needs extension enabled!" ); getDispatcher()->vkQueueInsertDebugUtilsLabelEXT( static_cast( m_queue ), reinterpret_cast( &labelInfo ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Queue::presentKHR( const PresentInfoKHR & presentInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueuePresentKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueuePresentKHR( static_cast( m_queue ), reinterpret_cast( &presentInfo ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR" ); } return result; } VULKAN_HPP_INLINE void Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL( static_cast( m_queue ), static_cast( configuration ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); } } VULKAN_HPP_INLINE void Queue::submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueSubmit( static_cast( m_queue ), submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); } } VULKAN_HPP_INLINE void Queue::submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueSubmit2KHR( static_cast( m_queue ), submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" ); } } VULKAN_HPP_INLINE void Queue::waitIdle() const { VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkQueueWaitIdle( static_cast( m_queue ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); } } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D RenderPass::getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::Extent2D granularity; getDispatcher()->vkGetRenderAreaGranularity( static_cast( m_device ), static_cast( m_renderPass ), reinterpret_cast( &granularity ) ); return granularity; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValue() const { uint64_t value; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSemaphoreCounterValue( static_cast( m_device ), static_cast( m_semaphore ), &value ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue" ); } return value; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair SwapchainKHR::acquireNextImage( uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && "Function needs extension enabled!" ); uint32_t imageIndex; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkAcquireNextImageKHR( static_cast( m_device ), static_cast( m_swapchainKHR ), timeout, static_cast( semaphore ), static_cast( fence ), &imageIndex ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) && ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) && ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage" ); } return std::make_pair( result, imageIndex ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector SwapchainKHR::getPastPresentationTimingGOOGLE() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPastPresentationTimingGOOGLE && "Function needs extension enabled!" ); std::vector presentationTimings; uint32_t presentationTimingCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetPastPresentationTimingGOOGLE( static_cast( m_device ), static_cast( m_swapchainKHR ), &presentationTimingCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount ) { presentationTimings.resize( presentationTimingCount ); result = static_cast( getDispatcher()->vkGetPastPresentationTimingGOOGLE( static_cast( m_device ), static_cast( m_swapchainKHR ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) { presentationTimings.resize( presentationTimingCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" ); } return presentationTimings; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE SwapchainKHR::getRefreshCycleDurationGOOGLE() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRefreshCycleDurationGOOGLE && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetRefreshCycleDurationGOOGLE( static_cast( m_device ), static_cast( m_swapchainKHR ), reinterpret_cast( &displayTimingProperties ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" ); } return displayTimingProperties; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t SwapchainKHR::getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && "Function needs extension enabled!" ); uint64_t counterValue; VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSwapchainCounterEXT( static_cast( m_device ), static_cast( m_swapchainKHR ), static_cast( counter ), &counterValue ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" ); } return counterValue; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector SwapchainKHR::getImages() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && "Function needs extension enabled!" ); std::vector swapchainImages; uint32_t swapchainImageCount; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetSwapchainImagesKHR( static_cast( m_device ), static_cast( m_swapchainKHR ), &swapchainImageCount, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount ) { swapchainImages.resize( swapchainImageCount ); result = static_cast( getDispatcher()->vkGetSwapchainImagesKHR( static_cast( m_device ), static_cast( m_swapchainKHR ), &swapchainImageCount, swapchainImages.data() ) ); VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) { swapchainImages.resize( swapchainImageCount ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages" ); } return swapchainImages; } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::getStatus() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainStatusKHR && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetSwapchainStatusKHR( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getStatus" ); } return result; } # if defined( VK_USE_PLATFORM_WIN32_KHR ) VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" ); } } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ VULKAN_HPP_INLINE void SwapchainKHR::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkSetLocalDimmingAMD && "Function needs extension enabled!" ); getDispatcher()->vkSetLocalDimmingAMD( static_cast( m_device ), static_cast( m_swapchainKHR ), static_cast( localDimmingEnable ) ); } VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector ValidationCacheEXT::getData() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT && "Function needs extension enabled!" ); std::vector data; size_t dataSize; VULKAN_HPP_NAMESPACE::Result result; do { result = static_cast( getDispatcher()->vkGetValidationCacheDataEXT( static_cast( m_device ), static_cast( m_validationCacheEXT ), &dataSize, nullptr ) ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) { data.resize( dataSize ); result = static_cast( getDispatcher()->vkGetValidationCacheDataEXT( static_cast( m_device ), static_cast( m_validationCacheEXT ), &dataSize, reinterpret_cast( data.data() ) ) ); VULKAN_HPP_ASSERT( dataSize <= data.size() ); } } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( dataSize < data.size() ) ) { data.resize( dataSize ); } if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData" ); } return data; } VULKAN_HPP_INLINE void ValidationCacheEXT::merge( ArrayProxy const & srcCaches ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT && "Function needs extension enabled!" ); VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkMergeValidationCachesEXT( static_cast( m_device ), static_cast( m_validationCacheEXT ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) { throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge" ); } } #endif } // namespace VULKAN_HPP_RAII_NAMESPACE } // namespace VULKAN_HPP_NAMESPACE #endif