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_DESCENDANT_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
|
||||
|
10
traits.hpp
10
traits.hpp
@ -80,13 +80,13 @@ namespace cruft::vk {
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
#define DEFINE_IS_HANDLE(KLASS) \
|
||||
template <> \
|
||||
struct is_native<native_t<KLASS>> : \
|
||||
public std::true_type \
|
||||
#define DEFINE_IS_HANDLE(KLASS) \
|
||||
template <> \
|
||||
struct is_native<KLASS> : \
|
||||
public std::true_type \
|
||||
{ };
|
||||
|
||||
VK_TYPE_MAP (DEFINE_IS_HANDLE)
|
||||
VK_NATIVE_TYPE_MAP (DEFINE_IS_HANDLE)
|
||||
#undef DEFINE_IS_HANDLE
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user