mirror of
https://github.com/KhronosGroup/Vulkan-Hpp.git
synced 2024-10-14 16:32:17 +00:00
Identify delete commands starting with "vkRelease" (#1697)
This commit is contained in:
parent
d2134fefe2
commit
962979c679
@ -15194,17 +15194,32 @@ TypeInfo VulkanHppGenerator::readTypeInfo( tinyxml2::XMLElement const * element
|
|||||||
|
|
||||||
void VulkanHppGenerator::registerDeleter( std::string const & commandName, CommandData const & commandData )
|
void VulkanHppGenerator::registerDeleter( std::string const & commandName, CommandData const & commandData )
|
||||||
{
|
{
|
||||||
if ( ( commandName.substr( 2, 7 ) == "Destroy" ) || ( commandName.substr( 2, 4 ) == "Free" ) )
|
// some special handling for release functions that don't release an object
|
||||||
|
const std::set<std::string> noDeleterFunctions = { "vkReleaseFullScreenExclusiveModeEXT", "vkReleaseProfilingLockKHR", "vkReleaseSwapchainImagesEXT" };
|
||||||
|
|
||||||
|
if ( ( commandName.substr( 2, 7 ) == "Destroy" ) || ( commandName.substr( 2, 4 ) == "Free" ) ||
|
||||||
|
( ( commandName.substr( 2, 7 ) == "Release" ) && !noDeleterFunctions.contains( commandName ) ) )
|
||||||
{
|
{
|
||||||
std::string key;
|
std::string key;
|
||||||
size_t valueIndex;
|
size_t valueIndex;
|
||||||
switch ( commandData.params.size() )
|
switch ( commandData.params.size() )
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
|
if ( commandData.params.back().type.type == "VkAllocationCallbacks" )
|
||||||
|
{
|
||||||
|
key = "";
|
||||||
|
valueIndex = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
key = commandData.params[0].type.type;
|
||||||
|
valueIndex = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
assert( commandData.params.back().type.type == "VkAllocationCallbacks" );
|
assert( commandData.params.back().type.type == "VkAllocationCallbacks" );
|
||||||
key = ( commandData.params.size() == 2 ) ? "" : commandData.params[0].type.type;
|
key = commandData.params[0].type.type;
|
||||||
valueIndex = commandData.params.size() - 2;
|
valueIndex = 1;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
key = commandData.params[0].type.type;
|
key = commandData.params[0].type.type;
|
||||||
|
@ -2874,6 +2874,9 @@ export namespace VULKAN_HPP_NAMESPACE
|
|||||||
//=== VK_KHR_swapchain ===
|
//=== VK_KHR_swapchain ===
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueSwapchainKHR;
|
using VULKAN_HPP_NAMESPACE::UniqueSwapchainKHR;
|
||||||
|
|
||||||
|
//=== VK_KHR_display ===
|
||||||
|
using VULKAN_HPP_NAMESPACE::UniqueDisplayKHR;
|
||||||
|
|
||||||
//=== VK_EXT_debug_report ===
|
//=== VK_EXT_debug_report ===
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueDebugReportCallbackEXT;
|
using VULKAN_HPP_NAMESPACE::UniqueDebugReportCallbackEXT;
|
||||||
|
|
||||||
@ -2897,6 +2900,9 @@ export namespace VULKAN_HPP_NAMESPACE
|
|||||||
//=== VK_NV_ray_tracing ===
|
//=== VK_NV_ray_tracing ===
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueAccelerationStructureNV;
|
using VULKAN_HPP_NAMESPACE::UniqueAccelerationStructureNV;
|
||||||
|
|
||||||
|
//=== VK_INTEL_performance_query ===
|
||||||
|
using VULKAN_HPP_NAMESPACE::UniquePerformanceConfigurationINTEL;
|
||||||
|
|
||||||
//=== VK_KHR_deferred_host_operations ===
|
//=== VK_KHR_deferred_host_operations ===
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueDeferredOperationKHR;
|
using VULKAN_HPP_NAMESPACE::UniqueDeferredOperationKHR;
|
||||||
|
|
||||||
|
@ -2095,6 +2095,16 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
||||||
|
|
||||||
|
//=== VK_KHR_display ===
|
||||||
|
template <typename Dispatch>
|
||||||
|
class UniqueHandleTraits<DisplayKHR, Dispatch>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using deleter = ObjectDestroy<PhysicalDevice, Dispatch>;
|
||||||
|
};
|
||||||
|
|
||||||
|
using UniqueDisplayKHR = UniqueHandle<DisplayKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
||||||
|
|
||||||
//=== VK_EXT_debug_report ===
|
//=== VK_EXT_debug_report ===
|
||||||
template <typename Dispatch>
|
template <typename Dispatch>
|
||||||
class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch>
|
class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch>
|
||||||
@ -2183,6 +2193,16 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
||||||
|
|
||||||
|
//=== VK_INTEL_performance_query ===
|
||||||
|
template <typename Dispatch>
|
||||||
|
class UniqueHandleTraits<PerformanceConfigurationINTEL, Dispatch>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using deleter = ObjectDestroy<Device, Dispatch>;
|
||||||
|
};
|
||||||
|
|
||||||
|
using UniquePerformanceConfigurationINTEL = UniqueHandle<PerformanceConfigurationINTEL, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
||||||
|
|
||||||
//=== VK_KHR_deferred_host_operations ===
|
//=== VK_KHR_deferred_host_operations ===
|
||||||
template <typename Dispatch>
|
template <typename Dispatch>
|
||||||
class UniqueHandleTraits<DeferredOperationKHR, Dispatch>
|
class UniqueHandleTraits<DeferredOperationKHR, Dispatch>
|
||||||
|
@ -708,6 +708,17 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
using SharedSwapchainKHR = SharedHandle<SwapchainKHR>;
|
using SharedSwapchainKHR = SharedHandle<SwapchainKHR>;
|
||||||
|
|
||||||
|
//=== VK_KHR_display ===
|
||||||
|
template <>
|
||||||
|
class SharedHandleTraits<DisplayKHR>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using DestructorType = PhysicalDevice;
|
||||||
|
using deleter = ObjectDestroyShared<DisplayKHR>;
|
||||||
|
};
|
||||||
|
|
||||||
|
using SharedDisplayKHR = SharedHandle<DisplayKHR>;
|
||||||
|
|
||||||
//=== VK_EXT_debug_report ===
|
//=== VK_EXT_debug_report ===
|
||||||
template <>
|
template <>
|
||||||
class SharedHandleTraits<DebugReportCallbackEXT>
|
class SharedHandleTraits<DebugReportCallbackEXT>
|
||||||
@ -805,6 +816,17 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
using SharedAccelerationStructureNV = SharedHandle<AccelerationStructureNV>;
|
using SharedAccelerationStructureNV = SharedHandle<AccelerationStructureNV>;
|
||||||
|
|
||||||
|
//=== VK_INTEL_performance_query ===
|
||||||
|
template <>
|
||||||
|
class SharedHandleTraits<PerformanceConfigurationINTEL>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using DestructorType = Device;
|
||||||
|
using deleter = ObjectDestroyShared<PerformanceConfigurationINTEL>;
|
||||||
|
};
|
||||||
|
|
||||||
|
using SharedPerformanceConfigurationINTEL = SharedHandle<PerformanceConfigurationINTEL>;
|
||||||
|
|
||||||
//=== VK_KHR_deferred_host_operations ===
|
//=== VK_KHR_deferred_host_operations ===
|
||||||
template <>
|
template <>
|
||||||
class SharedHandleTraits<DeferredOperationKHR>
|
class SharedHandleTraits<DeferredOperationKHR>
|
||||||
@ -1015,22 +1037,6 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
//=== VK_KHR_display ===
|
//=== VK_KHR_display ===
|
||||||
|
|
||||||
template <>
|
|
||||||
class SharedHandle<DisplayKHR> : public SharedHandleBaseNoDestroy<DisplayKHR, SharedPhysicalDevice>
|
|
||||||
{
|
|
||||||
friend SharedHandleBase<DisplayKHR, SharedPhysicalDevice>;
|
|
||||||
|
|
||||||
public:
|
|
||||||
SharedHandle() = default;
|
|
||||||
|
|
||||||
explicit SharedHandle( DisplayKHR handle, SharedPhysicalDevice parent ) noexcept
|
|
||||||
: SharedHandleBaseNoDestroy<DisplayKHR, SharedPhysicalDevice>( handle, std::move( parent ) )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
using SharedDisplayKHR = SharedHandle<DisplayKHR>;
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
class SharedHandle<DisplayModeKHR> : public SharedHandleBaseNoDestroy<DisplayModeKHR, SharedDisplayKHR>
|
class SharedHandle<DisplayModeKHR> : public SharedHandleBaseNoDestroy<DisplayModeKHR, SharedDisplayKHR>
|
||||||
{
|
{
|
||||||
@ -1046,24 +1052,6 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
};
|
};
|
||||||
|
|
||||||
using SharedDisplayModeKHR = SharedHandle<DisplayModeKHR>;
|
using SharedDisplayModeKHR = SharedHandle<DisplayModeKHR>;
|
||||||
|
|
||||||
//=== VK_INTEL_performance_query ===
|
|
||||||
|
|
||||||
template <>
|
|
||||||
class SharedHandle<PerformanceConfigurationINTEL> : public SharedHandleBaseNoDestroy<PerformanceConfigurationINTEL, SharedDevice>
|
|
||||||
{
|
|
||||||
friend SharedHandleBase<PerformanceConfigurationINTEL, SharedDevice>;
|
|
||||||
|
|
||||||
public:
|
|
||||||
SharedHandle() = default;
|
|
||||||
|
|
||||||
explicit SharedHandle( PerformanceConfigurationINTEL handle, SharedDevice parent ) noexcept
|
|
||||||
: SharedHandleBaseNoDestroy<PerformanceConfigurationINTEL, SharedDevice>( handle, std::move( parent ) )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
using SharedPerformanceConfigurationINTEL = SharedHandle<PerformanceConfigurationINTEL>;
|
|
||||||
#endif // !VULKAN_HPP_NO_SMART_HANDLE
|
#endif // !VULKAN_HPP_NO_SMART_HANDLE
|
||||||
} // namespace VULKAN_HPP_NAMESPACE
|
} // namespace VULKAN_HPP_NAMESPACE
|
||||||
#endif // VULKAN_SHARED_HPP
|
#endif // VULKAN_SHARED_HPP
|
||||||
|
@ -1347,6 +1347,9 @@ export namespace VULKAN_HPP_NAMESPACE
|
|||||||
//=== VK_KHR_surface ===
|
//=== VK_KHR_surface ===
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueSurfaceKHR;
|
using VULKAN_HPP_NAMESPACE::UniqueSurfaceKHR;
|
||||||
|
|
||||||
|
//=== VK_KHR_display ===
|
||||||
|
using VULKAN_HPP_NAMESPACE::UniqueDisplayKHR;
|
||||||
|
|
||||||
//=== VK_EXT_debug_utils ===
|
//=== VK_EXT_debug_utils ===
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueDebugUtilsMessengerEXT;
|
using VULKAN_HPP_NAMESPACE::UniqueDebugUtilsMessengerEXT;
|
||||||
using VULKAN_HPP_NAMESPACE::UniqueHandleTraits;
|
using VULKAN_HPP_NAMESPACE::UniqueHandleTraits;
|
||||||
|
@ -991,6 +991,16 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
||||||
|
|
||||||
|
//=== VK_KHR_display ===
|
||||||
|
template <typename Dispatch>
|
||||||
|
class UniqueHandleTraits<DisplayKHR, Dispatch>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using deleter = ObjectDestroy<PhysicalDevice, Dispatch>;
|
||||||
|
};
|
||||||
|
|
||||||
|
using UniqueDisplayKHR = UniqueHandle<DisplayKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
|
||||||
|
|
||||||
//=== VK_EXT_debug_utils ===
|
//=== VK_EXT_debug_utils ===
|
||||||
template <typename Dispatch>
|
template <typename Dispatch>
|
||||||
class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch>
|
class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch>
|
||||||
|
@ -636,6 +636,17 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
using SharedSurfaceKHR = SharedHandle<SurfaceKHR>;
|
using SharedSurfaceKHR = SharedHandle<SurfaceKHR>;
|
||||||
|
|
||||||
|
//=== VK_KHR_display ===
|
||||||
|
template <>
|
||||||
|
class SharedHandleTraits<DisplayKHR>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using DestructorType = PhysicalDevice;
|
||||||
|
using deleter = ObjectDestroyShared<DisplayKHR>;
|
||||||
|
};
|
||||||
|
|
||||||
|
using SharedDisplayKHR = SharedHandle<DisplayKHR>;
|
||||||
|
|
||||||
//=== VK_EXT_debug_utils ===
|
//=== VK_EXT_debug_utils ===
|
||||||
template <>
|
template <>
|
||||||
class SharedHandleTraits<DebugUtilsMessengerEXT>
|
class SharedHandleTraits<DebugUtilsMessengerEXT>
|
||||||
@ -886,22 +897,6 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
|
|
||||||
//=== VK_KHR_display ===
|
//=== VK_KHR_display ===
|
||||||
|
|
||||||
template <>
|
|
||||||
class SharedHandle<DisplayKHR> : public SharedHandleBaseNoDestroy<DisplayKHR, SharedPhysicalDevice>
|
|
||||||
{
|
|
||||||
friend SharedHandleBase<DisplayKHR, SharedPhysicalDevice>;
|
|
||||||
|
|
||||||
public:
|
|
||||||
SharedHandle() = default;
|
|
||||||
|
|
||||||
explicit SharedHandle( DisplayKHR handle, SharedPhysicalDevice parent ) noexcept
|
|
||||||
: SharedHandleBaseNoDestroy<DisplayKHR, SharedPhysicalDevice>( handle, std::move( parent ) )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
using SharedDisplayKHR = SharedHandle<DisplayKHR>;
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
class SharedHandle<DisplayModeKHR> : public SharedHandleBaseNoDestroy<DisplayModeKHR, SharedDisplayKHR>
|
class SharedHandle<DisplayModeKHR> : public SharedHandleBaseNoDestroy<DisplayModeKHR, SharedDisplayKHR>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user