/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Copyright: * 2016-2017, Danny Robson */ #ifndef CRUFT_VK_FWD_HPP #define CRUFT_VK_FWD_HPP #include "./vk.hpp" #include namespace cruft::vk { template struct descendant; template struct enumerated; template struct owned; enum class bindpoint { GRAPHICS = VK_PIPELINE_BIND_POINT_GRAPHICS, COMPUTE = VK_PIPELINE_BIND_POINT_COMPUTE, }; struct buffer; struct buffer_view; struct command_buffer; struct command_pool; struct device; struct device_memory; struct debug_report; struct event; struct fence; struct framebuffer; struct instance; struct image; struct image_view; struct physical_device; template struct pipeline; struct pipeline_cache; struct pipeline_layout; struct queue; struct render_pass; struct semaphore; struct shader_module; struct surface; struct swapchain; class error; template class error_code; #define VK_BINDPOINT_MAP(FUNC) MAP0(FUNC, bindpoint::GRAPHICS, bindpoint::COMPUTE) #define VK_ENUMERATED_TYPE_MAP(FUNC) \ MAP0(FUNC, \ physical_device) #define VK_DESCENDANT_TYPE_MAP(FUNC) \ MAP0(FUNC, \ device) #define VK_ARRAY_TYPE_MAP(FUNC) \ MAP0(FUNC, \ pipeline<::cruft::vk::bindpoint::GRAPHICS>, \ pipeline<::cruft::vk::bindpoint::COMPUTE> \ ) #define VK_OWNED_TYPE_MAP(FUNC) \ MAP0(FUNC, \ buffer, \ command_pool, \ debug_report, \ device_memory, \ framebuffer, \ image_view, \ pipeline_layout, \ queue, \ render_pass, \ semaphore, \ shader_module, \ surface, \ swapchain) \ VK_ARRAY_TYPE_MAP(FUNC) #define VK_TYPE_MAP(FUNC) \ MAP0(FUNC,instance) \ 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