{-# language Strict #-} {-# language CPP #-} {-# language PatternSynonyms #-} {-# language DuplicateRecordFields #-} module Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory ( pattern VK_ERROR_INVALID_EXTERNAL_HANDLE , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO , pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO , pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO , pattern VK_QUEUE_FAMILY_EXTERNAL , VkExternalMemoryImageCreateInfo(..) , VkExternalMemoryBufferCreateInfo(..) , VkExportMemoryAllocateInfo(..) ) where import Data.Word ( Word32 ) import Foreign.Ptr ( Ptr , plusPtr ) import Foreign.Storable ( Storable , Storable(..) ) import Graphics.Vulkan.Core10.Core ( VkResult(..) , VkStructureType(..) ) import Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities ( VkExternalMemoryHandleTypeFlags ) -- No documentation found for Nested "VkResult" "VK_ERROR_INVALID_EXTERNAL_HANDLE" pattern VK_ERROR_INVALID_EXTERNAL_HANDLE :: VkResult pattern VK_ERROR_INVALID_EXTERNAL_HANDLE = VkResult (-1000072003) -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO" pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO :: VkStructureType pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = VkStructureType 1000072000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO" pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO :: VkStructureType pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = VkStructureType 1000072001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO" pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO :: VkStructureType pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = VkStructureType 1000072002 -- No documentation found for Nested "Word32" "VK_QUEUE_FAMILY_EXTERNAL" pattern VK_QUEUE_FAMILY_EXTERNAL :: Word32 pattern VK_QUEUE_FAMILY_EXTERNAL = 0xfffffffe -- | VkExternalMemoryImageCreateInfo - Specify that an image may be backed by -- external memory -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO@ -- -- - @handleTypes@ /must/ be a valid combination of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits' -- values -- -- - @handleTypes@ /must/ not be @0@ -- -- = See Also -- -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlags', -- 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkExternalMemoryImageCreateInfo = VkExternalMemoryImageCreateInfo { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @handleTypes@ is a bitmask of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits' -- specifying one or more external memory handle types. vkHandleTypes :: VkExternalMemoryHandleTypeFlags } deriving (Eq, Show) instance Storable VkExternalMemoryImageCreateInfo where sizeOf ~_ = 24 alignment ~_ = 8 peek ptr = VkExternalMemoryImageCreateInfo <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalMemoryImageCreateInfo)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalMemoryImageCreateInfo)) *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExternalMemoryImageCreateInfo)) -- | VkExternalMemoryBufferCreateInfo - Specify that a buffer may be backed -- by external memory -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be -- @VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO@ -- -- - @handleTypes@ /must/ be a valid combination of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits' -- values -- -- = See Also -- -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlags', -- 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkExternalMemoryBufferCreateInfo = VkExternalMemoryBufferCreateInfo { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @handleTypes@ is a bitmask of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits' -- specifying one or more external memory handle types. vkHandleTypes :: VkExternalMemoryHandleTypeFlags } deriving (Eq, Show) instance Storable VkExternalMemoryBufferCreateInfo where sizeOf ~_ = 24 alignment ~_ = 8 peek ptr = VkExternalMemoryBufferCreateInfo <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExternalMemoryBufferCreateInfo)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExternalMemoryBufferCreateInfo)) *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExternalMemoryBufferCreateInfo)) -- | VkExportMemoryAllocateInfo - Specify exportable handle types for a -- device memory object -- -- == Valid Usage -- -- - The bits in @handleTypes@ /must/ be supported and compatible, as -- reported by -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalImageFormatProperties' -- or -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalBufferProperties'. -- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be @VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO@ -- -- - @handleTypes@ /must/ be a valid combination of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits' -- values -- -- = See Also -- -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlags', -- 'Graphics.Vulkan.Core10.Core.VkStructureType' data VkExportMemoryAllocateInfo = VkExportMemoryAllocateInfo { -- | @sType@ is the type of this structure. vkSType :: VkStructureType , -- | @pNext@ is @NULL@ or a pointer to an extension-specific structure. vkPNext :: Ptr () , -- | @handleTypes@ is a bitmask of -- 'Graphics.Vulkan.Core11.Promoted_from_VK_KHR_external_memory_capabilities.VkExternalMemoryHandleTypeFlagBits' -- specifying one or more memory handle types the application /can/ export -- from the resulting allocation. The application /can/ request multiple -- handle types for the same allocation. vkHandleTypes :: VkExternalMemoryHandleTypeFlags } deriving (Eq, Show) instance Storable VkExportMemoryAllocateInfo where sizeOf ~_ = 24 alignment ~_ = 8 peek ptr = VkExportMemoryAllocateInfo <$> peek (ptr `plusPtr` 0) <*> peek (ptr `plusPtr` 8) <*> peek (ptr `plusPtr` 16) poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkExportMemoryAllocateInfo)) *> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkExportMemoryAllocateInfo)) *> poke (ptr `plusPtr` 16) (vkHandleTypes (poked :: VkExportMemoryAllocateInfo))