traits: use a MAP to define is_native
This commit is contained in:
parent
47bcb065c5
commit
4ecac0648b
278
fwd.hpp
278
fwd.hpp
@ -96,6 +96,284 @@ namespace cruft::vk {
|
|||||||
VK_ENUMERATED_TYPE_MAP(FUNC) \
|
VK_ENUMERATED_TYPE_MAP(FUNC) \
|
||||||
VK_DESCENDANT_TYPE_MAP(FUNC) \
|
VK_DESCENDANT_TYPE_MAP(FUNC) \
|
||||||
VK_OWNED_TYPE_MAP(FUNC)
|
VK_OWNED_TYPE_MAP(FUNC)
|
||||||
|
|
||||||
|
#define VK_NATIVE_TYPE_MAP(FUNC) \
|
||||||
|
MAP0(FUNC, \
|
||||||
|
VkClearColorValue, \
|
||||||
|
VkClearValue, \
|
||||||
|
VkOffset2D, \
|
||||||
|
VkOffset3D, \
|
||||||
|
VkExtent2D, \
|
||||||
|
VkExtent3D, \
|
||||||
|
VkViewport, \
|
||||||
|
VkRect2D, \
|
||||||
|
VkRect3D, \
|
||||||
|
VkClearRect, \
|
||||||
|
VkComponentMapping, \
|
||||||
|
VkPhysicalDeviceProperties, \
|
||||||
|
VkExtensionProperties, \
|
||||||
|
VkLayerProperties, \
|
||||||
|
VkApplicationInfo, \
|
||||||
|
VkAllocationCallbacks, \
|
||||||
|
VkDeviceQueueCreateInfo, \
|
||||||
|
VkDeviceCreateInfo, \
|
||||||
|
VkInstanceCreateInfo, \
|
||||||
|
VkQueueFamilyProperties, \
|
||||||
|
VkPhysicalDeviceMemoryProperties, \
|
||||||
|
VkMemoryAllocateInfo, \
|
||||||
|
VkMemoryRequirements, \
|
||||||
|
VkSparseImageFormatProperties, \
|
||||||
|
VkSparseImageMemoryRequirements, \
|
||||||
|
VkMemoryType, \
|
||||||
|
VkMemoryHeap, \
|
||||||
|
VkMappedMemoryRange, \
|
||||||
|
VkFormatProperties, \
|
||||||
|
VkImageFormatProperties, \
|
||||||
|
VkDescriptorBufferInfo, \
|
||||||
|
VkDescriptorImageInfo, \
|
||||||
|
VkWriteDescriptorSet, \
|
||||||
|
VkCopyDescriptorSet, \
|
||||||
|
VkBufferCreateInfo, \
|
||||||
|
VkBufferViewCreateInfo, \
|
||||||
|
VkImageSubresource, \
|
||||||
|
VkImageSubresourceLayers, \
|
||||||
|
VkImageSubresourceRange, \
|
||||||
|
VkMemoryBarrier, \
|
||||||
|
VkBufferMemoryBarrier, \
|
||||||
|
VkImageMemoryBarrier, \
|
||||||
|
VkImageCreateInfo, \
|
||||||
|
VkSubresourceLayout, \
|
||||||
|
VkImageViewCreateInfo, \
|
||||||
|
VkBufferCopy, \
|
||||||
|
VkSparseMemoryBind, \
|
||||||
|
VkSparseImageMemoryBind, \
|
||||||
|
VkSparseBufferMemoryBindInfo, \
|
||||||
|
VkSparseImageOpaqueMemoryBindInfo, \
|
||||||
|
VkSparseImageMemoryBindInfo, \
|
||||||
|
VkBindSparseInfo, \
|
||||||
|
VkImageCopy, \
|
||||||
|
VkImageBlit, \
|
||||||
|
VkBufferImageCopy, \
|
||||||
|
VkImageResolve, \
|
||||||
|
VkShaderModuleCreateInfo, \
|
||||||
|
VkDescriptorSetLayoutBinding, \
|
||||||
|
VkDescriptorSetLayoutCreateInfo, \
|
||||||
|
VkDescriptorPoolSize, \
|
||||||
|
VkDescriptorPoolCreateInfo, \
|
||||||
|
VkDescriptorSetAllocateInfo, \
|
||||||
|
VkSpecializationMapEntry, \
|
||||||
|
VkSpecializationInfo, \
|
||||||
|
VkPipelineShaderStageCreateInfo, \
|
||||||
|
VkComputePipelineCreateInfo, \
|
||||||
|
VkVertexInputBindingDescription, \
|
||||||
|
VkVertexInputAttributeDescription, \
|
||||||
|
VkPipelineVertexInputStateCreateInfo, \
|
||||||
|
VkPipelineInputAssemblyStateCreateInfo, \
|
||||||
|
VkPipelineTessellationStateCreateInfo, \
|
||||||
|
VkPipelineViewportStateCreateInfo, \
|
||||||
|
VkPipelineRasterizationStateCreateInfo, \
|
||||||
|
VkPipelineMultisampleStateCreateInfo, \
|
||||||
|
VkPipelineColorBlendAttachmentState, \
|
||||||
|
VkPipelineColorBlendStateCreateInfo, \
|
||||||
|
VkPipelineDynamicStateCreateInfo, \
|
||||||
|
VkStencilOpState, \
|
||||||
|
VkPipelineDepthStencilStateCreateInfo, \
|
||||||
|
VkGraphicsPipelineCreateInfo, \
|
||||||
|
VkPipelineCacheCreateInfo, \
|
||||||
|
VkPushConstantRange, \
|
||||||
|
VkPipelineLayoutCreateInfo, \
|
||||||
|
VkSamplerCreateInfo, \
|
||||||
|
VkCommandPoolCreateInfo, \
|
||||||
|
VkCommandBufferAllocateInfo, \
|
||||||
|
VkCommandBufferInheritanceInfo, \
|
||||||
|
VkCommandBufferBeginInfo, \
|
||||||
|
VkRenderPassBeginInfo, \
|
||||||
|
VkClearDepthStencilValue, \
|
||||||
|
VkClearAttachment, \
|
||||||
|
VkAttachmentDescription, \
|
||||||
|
VkAttachmentReference, \
|
||||||
|
VkSubpassDescription, \
|
||||||
|
VkSubpassDependency, \
|
||||||
|
VkRenderPassCreateInfo, \
|
||||||
|
VkEventCreateInfo, \
|
||||||
|
VkFenceCreateInfo, \
|
||||||
|
VkPhysicalDeviceFeatures, \
|
||||||
|
VkPhysicalDeviceSparseProperties, \
|
||||||
|
VkPhysicalDeviceLimits, \
|
||||||
|
VkSemaphoreCreateInfo, \
|
||||||
|
VkQueryPoolCreateInfo, \
|
||||||
|
VkFramebufferCreateInfo, \
|
||||||
|
VkDrawIndirectCommand, \
|
||||||
|
VkDrawIndexedIndirectCommand, \
|
||||||
|
VkDispatchIndirectCommand, \
|
||||||
|
VkSubmitInfo, \
|
||||||
|
VkDisplayPropertiesKHR, \
|
||||||
|
VkDisplayPlanePropertiesKHR, \
|
||||||
|
VkDisplayModeParametersKHR, \
|
||||||
|
VkDisplayModePropertiesKHR, \
|
||||||
|
VkDisplayModeCreateInfoKHR, \
|
||||||
|
VkDisplayPlaneCapabilitiesKHR, \
|
||||||
|
VkDisplaySurfaceCreateInfoKHR, \
|
||||||
|
VkDisplayPresentInfoKHR, \
|
||||||
|
VkSurfaceCapabilitiesKHR, \
|
||||||
|
VkAndroidSurfaceCreateInfoKHR, \
|
||||||
|
VkMirSurfaceCreateInfoKHR, \
|
||||||
|
VkViSurfaceCreateInfoNN, \
|
||||||
|
VkWaylandSurfaceCreateInfoKHR, \
|
||||||
|
VkWin32SurfaceCreateInfoKHR, \
|
||||||
|
VkXlibSurfaceCreateInfoKHR, \
|
||||||
|
VkXcbSurfaceCreateInfoKHR, \
|
||||||
|
VkSurfaceFormatKHR, \
|
||||||
|
VkSwapchainCreateInfoKHR, \
|
||||||
|
VkPresentInfoKHR, \
|
||||||
|
VkDebugReportCallbackCreateInfoEXT, \
|
||||||
|
VkValidationFlagsEXT, \
|
||||||
|
VkPipelineRasterizationStateRasterizationOrderAMD, \
|
||||||
|
VkDebugMarkerObjectNameInfoEXT, \
|
||||||
|
VkDebugMarkerObjectTagInfoEXT, \
|
||||||
|
VkDebugMarkerMarkerInfoEXT, \
|
||||||
|
VkDedicatedAllocationImageCreateInfoNV, \
|
||||||
|
VkDedicatedAllocationBufferCreateInfoNV, \
|
||||||
|
VkDedicatedAllocationMemoryAllocateInfoNV, \
|
||||||
|
VkExternalImageFormatPropertiesNV, \
|
||||||
|
VkExternalMemoryImageCreateInfoNV, \
|
||||||
|
VkExportMemoryAllocateInfoNV, \
|
||||||
|
VkImportMemoryWin32HandleInfoNV, \
|
||||||
|
VkExportMemoryWin32HandleInfoNV, \
|
||||||
|
VkWin32KeyedMutexAcquireReleaseInfoNV, \
|
||||||
|
VkDeviceGeneratedCommandsFeaturesNVX, \
|
||||||
|
VkDeviceGeneratedCommandsLimitsNVX, \
|
||||||
|
VkIndirectCommandsTokenNVX, \
|
||||||
|
VkIndirectCommandsLayoutTokenNVX, \
|
||||||
|
VkIndirectCommandsLayoutCreateInfoNVX, \
|
||||||
|
VkCmdProcessCommandsInfoNVX, \
|
||||||
|
VkCmdReserveSpaceForCommandsInfoNVX, \
|
||||||
|
VkObjectTableCreateInfoNVX, \
|
||||||
|
VkObjectTableEntryNVX, \
|
||||||
|
VkObjectTablePipelineEntryNVX, \
|
||||||
|
VkObjectTableDescriptorSetEntryNVX, \
|
||||||
|
VkObjectTableVertexBufferEntryNVX, \
|
||||||
|
VkObjectTableIndexBufferEntryNVX, \
|
||||||
|
VkObjectTablePushConstantEntryNVX, \
|
||||||
|
VkPhysicalDeviceFeatures2KHR, \
|
||||||
|
VkPhysicalDeviceProperties2KHR, \
|
||||||
|
VkFormatProperties2KHR, \
|
||||||
|
VkImageFormatProperties2KHR, \
|
||||||
|
VkPhysicalDeviceImageFormatInfo2KHR, \
|
||||||
|
VkQueueFamilyProperties2KHR, \
|
||||||
|
VkPhysicalDeviceMemoryProperties2KHR, \
|
||||||
|
VkSparseImageFormatProperties2KHR, \
|
||||||
|
VkPhysicalDeviceSparseImageFormatInfo2KHR, \
|
||||||
|
VkPhysicalDevicePushDescriptorPropertiesKHR, \
|
||||||
|
VkPresentRegionsKHR, \
|
||||||
|
VkPresentRegionKHR, \
|
||||||
|
VkRectLayerKHR, \
|
||||||
|
VkPhysicalDeviceVariablePointerFeaturesKHR, \
|
||||||
|
VkExternalMemoryPropertiesKHR, \
|
||||||
|
VkPhysicalDeviceExternalImageFormatInfoKHR, \
|
||||||
|
VkExternalImageFormatPropertiesKHR, \
|
||||||
|
VkPhysicalDeviceExternalBufferInfoKHR, \
|
||||||
|
VkExternalBufferPropertiesKHR, \
|
||||||
|
VkPhysicalDeviceIDPropertiesKHR, \
|
||||||
|
VkExternalMemoryImageCreateInfoKHR, \
|
||||||
|
VkExternalMemoryBufferCreateInfoKHR, \
|
||||||
|
VkExportMemoryAllocateInfoKHR, \
|
||||||
|
VkImportMemoryWin32HandleInfoKHR, \
|
||||||
|
VkExportMemoryWin32HandleInfoKHR, \
|
||||||
|
VkMemoryWin32HandlePropertiesKHR, \
|
||||||
|
VkMemoryGetWin32HandleInfoKHR, \
|
||||||
|
VkImportMemoryFdInfoKHR, \
|
||||||
|
VkMemoryFdPropertiesKHR, \
|
||||||
|
VkMemoryGetFdInfoKHR, \
|
||||||
|
VkWin32KeyedMutexAcquireReleaseInfoKHR, \
|
||||||
|
VkPhysicalDeviceExternalSemaphoreInfoKHR, \
|
||||||
|
VkExternalSemaphorePropertiesKHR, \
|
||||||
|
VkExportSemaphoreCreateInfoKHR, \
|
||||||
|
VkImportSemaphoreWin32HandleInfoKHR, \
|
||||||
|
VkExportSemaphoreWin32HandleInfoKHR, \
|
||||||
|
VkD3D12FenceSubmitInfoKHR, \
|
||||||
|
VkSemaphoreGetWin32HandleInfoKHR, \
|
||||||
|
VkImportSemaphoreFdInfoKHR, \
|
||||||
|
VkSemaphoreGetFdInfoKHR, \
|
||||||
|
VkPhysicalDeviceExternalFenceInfoKHR, \
|
||||||
|
VkExternalFencePropertiesKHR, \
|
||||||
|
VkExportFenceCreateInfoKHR, \
|
||||||
|
VkImportFenceWin32HandleInfoKHR, \
|
||||||
|
VkExportFenceWin32HandleInfoKHR, \
|
||||||
|
VkFenceGetWin32HandleInfoKHR, \
|
||||||
|
VkImportFenceFdInfoKHR, \
|
||||||
|
VkFenceGetFdInfoKHR, \
|
||||||
|
VkPhysicalDeviceMultiviewFeaturesKHX, \
|
||||||
|
VkPhysicalDeviceMultiviewPropertiesKHX, \
|
||||||
|
VkRenderPassMultiviewCreateInfoKHX, \
|
||||||
|
VkSurfaceCapabilities2EXT, \
|
||||||
|
VkDisplayPowerInfoEXT, \
|
||||||
|
VkDeviceEventInfoEXT, \
|
||||||
|
VkDisplayEventInfoEXT, \
|
||||||
|
VkSwapchainCounterCreateInfoEXT, \
|
||||||
|
VkPhysicalDeviceGroupPropertiesKHX, \
|
||||||
|
VkMemoryAllocateFlagsInfoKHX, \
|
||||||
|
VkBindBufferMemoryInfoKHX, \
|
||||||
|
VkBindImageMemoryInfoKHX, \
|
||||||
|
VkDeviceGroupRenderPassBeginInfoKHX, \
|
||||||
|
VkDeviceGroupCommandBufferBeginInfoKHX, \
|
||||||
|
VkDeviceGroupSubmitInfoKHX, \
|
||||||
|
VkDeviceGroupBindSparseInfoKHX, \
|
||||||
|
VkDeviceGroupPresentCapabilitiesKHX, \
|
||||||
|
VkImageSwapchainCreateInfoKHX, \
|
||||||
|
VkBindImageMemorySwapchainInfoKHX, \
|
||||||
|
VkAcquireNextImageInfoKHX, \
|
||||||
|
VkDeviceGroupPresentInfoKHX, \
|
||||||
|
VkDeviceGroupDeviceCreateInfoKHX, \
|
||||||
|
VkDeviceGroupSwapchainCreateInfoKHX, \
|
||||||
|
VkDescriptorUpdateTemplateEntryKHR, \
|
||||||
|
VkDescriptorUpdateTemplateCreateInfoKHR, \
|
||||||
|
VkXYColorEXT, \
|
||||||
|
VkHdrMetadataEXT, \
|
||||||
|
VkRefreshCycleDurationGOOGLE, \
|
||||||
|
VkPastPresentationTimingGOOGLE, \
|
||||||
|
VkPresentTimesInfoGOOGLE, \
|
||||||
|
VkPresentTimeGOOGLE, \
|
||||||
|
VkIOSSurfaceCreateInfoMVK, \
|
||||||
|
VkMacOSSurfaceCreateInfoMVK, \
|
||||||
|
VkViewportWScalingNV, \
|
||||||
|
VkPipelineViewportWScalingStateCreateInfoNV, \
|
||||||
|
VkViewportSwizzleNV, \
|
||||||
|
VkPipelineViewportSwizzleStateCreateInfoNV, \
|
||||||
|
VkPhysicalDeviceDiscardRectanglePropertiesEXT, \
|
||||||
|
VkPipelineDiscardRectangleStateCreateInfoEXT, \
|
||||||
|
VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, \
|
||||||
|
VkPhysicalDeviceSurfaceInfo2KHR, \
|
||||||
|
VkSurfaceCapabilities2KHR, \
|
||||||
|
VkSurfaceFormat2KHR, \
|
||||||
|
VkSharedPresentSurfaceCapabilitiesKHR, \
|
||||||
|
VkPhysicalDevice16BitStorageFeaturesKHR, \
|
||||||
|
VkBufferMemoryRequirementsInfo2KHR, \
|
||||||
|
VkImageMemoryRequirementsInfo2KHR, \
|
||||||
|
VkImageSparseMemoryRequirementsInfo2KHR, \
|
||||||
|
VkMemoryRequirements2KHR, \
|
||||||
|
VkSparseImageMemoryRequirements2KHR, \
|
||||||
|
VkMemoryDedicatedRequirementsKHR, \
|
||||||
|
VkMemoryDedicatedAllocateInfoKHR, \
|
||||||
|
VkTextureLODGatherFormatPropertiesAMD, \
|
||||||
|
VkPipelineCoverageToColorStateCreateInfoNV, \
|
||||||
|
VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, \
|
||||||
|
VkSampleLocationEXT, \
|
||||||
|
VkSampleLocationsInfoEXT, \
|
||||||
|
VkAttachmentSampleLocationsEXT, \
|
||||||
|
VkSubpassSampleLocationsEXT, \
|
||||||
|
VkRenderPassSampleLocationsBeginInfoEXT, \
|
||||||
|
VkPipelineSampleLocationsStateCreateInfoEXT, \
|
||||||
|
VkPhysicalDeviceSampleLocationsPropertiesEXT, \
|
||||||
|
VkMultisamplePropertiesEXT, \
|
||||||
|
VkSamplerReductionModeCreateInfoEXT, \
|
||||||
|
VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, \
|
||||||
|
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, \
|
||||||
|
VkPipelineColorBlendAdvancedStateCreateInfoEXT, \
|
||||||
|
VkPipelineCoverageModulationStateCreateInfoNV, \
|
||||||
|
VkValidationCacheCreateInfoEXT, \
|
||||||
|
VkShaderModuleValidationCacheCreateInfoEXT)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
10
traits.hpp
10
traits.hpp
@ -80,13 +80,13 @@ namespace cruft::vk {
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
#define DEFINE_IS_HANDLE(KLASS) \
|
#define DEFINE_IS_HANDLE(KLASS) \
|
||||||
template <> \
|
template <> \
|
||||||
struct is_native<native_t<KLASS>> : \
|
struct is_native<KLASS> : \
|
||||||
public std::true_type \
|
public std::true_type \
|
||||||
{ };
|
{ };
|
||||||
|
|
||||||
VK_TYPE_MAP (DEFINE_IS_HANDLE)
|
VK_NATIVE_TYPE_MAP (DEFINE_IS_HANDLE)
|
||||||
#undef DEFINE_IS_HANDLE
|
#undef DEFINE_IS_HANDLE
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user