vulkan-0.1.0.0: src/Graphics/Vulkan.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE Strict #-}
module Graphics.Vulkan where
import Data.Bits (Bits, FiniteBits)
import Data.Int (Int32)
import Data.Vector.Fixed.Storable (Vec)
import Data.Vector.Fixed.Cont (ToPeano)
import Data.Void (Void)
import Data.Word (Word8, Word32, Word64)
import Foreign.C.Types (CChar, CFloat(..), CSize(..))
import Foreign.Ptr (Ptr, FunPtr, plusPtr, castPtr)
import Foreign.Storable (Storable(..))
-- * Constants
pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256
type VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256
pattern VK_UUID_SIZE = 16
type VK_UUID_SIZE = 16
pattern VK_MAX_EXTENSION_NAME_SIZE = 256
type VK_MAX_EXTENSION_NAME_SIZE = 256
pattern VK_MAX_DESCRIPTION_SIZE = 256
type VK_MAX_DESCRIPTION_SIZE = 256
pattern VK_MAX_MEMORY_TYPES = 32
type VK_MAX_MEMORY_TYPES = 32
pattern VK_MAX_MEMORY_HEAPS = 16
type VK_MAX_MEMORY_HEAPS = 16
pattern VK_LOD_CLAMP_NONE = 1000.0
pattern VK_REMAINING_MIP_LEVELS = 0xffffffff :: Word32
pattern VK_REMAINING_ARRAY_LAYERS = 0xffffffff :: Word32
pattern VK_WHOLE_SIZE = 0xffffffffffffffff :: Word64
pattern VK_ATTACHMENT_UNUSED = 0xffffffff :: Word32
pattern VK_TRUE = 1
type VK_TRUE = 1
pattern VK_FALSE = 0
type VK_FALSE = 0
pattern VK_QUEUE_FAMILY_IGNORED = 0xffffffff :: Word32
pattern VK_SUBPASS_EXTERNAL = 0xffffffff :: Word32
-- * Base Types
newtype VkSampleMask = VkSampleMask Word32
deriving (Eq, Storable)
newtype VkBool32 = VkBool32 Word32
deriving (Eq, Storable)
type VkFlags = Word32
newtype VkDeviceSize = VkDeviceSize Word64
deriving (Eq, Storable)
-- * Handle Types
data VkInstance_T
type VkInstance = Ptr VkInstance_T
data VkPhysicalDevice_T
type VkPhysicalDevice = Ptr VkPhysicalDevice_T
data VkDevice_T
type VkDevice = Ptr VkDevice_T
data VkQueue_T
type VkQueue = Ptr VkQueue_T
data VkCommandBuffer_T
type VkCommandBuffer = Ptr VkCommandBuffer_T
newtype VkDeviceMemory = VkDeviceMemory Word64
deriving (Eq, Storable)
newtype VkCommandPool = VkCommandPool Word64
deriving (Eq, Storable)
newtype VkBuffer = VkBuffer Word64
deriving (Eq, Storable)
newtype VkBufferView = VkBufferView Word64
deriving (Eq, Storable)
newtype VkImage = VkImage Word64
deriving (Eq, Storable)
newtype VkImageView = VkImageView Word64
deriving (Eq, Storable)
newtype VkShaderModule = VkShaderModule Word64
deriving (Eq, Storable)
newtype VkPipeline = VkPipeline Word64
deriving (Eq, Storable)
newtype VkPipelineLayout = VkPipelineLayout Word64
deriving (Eq, Storable)
newtype VkSampler = VkSampler Word64
deriving (Eq, Storable)
newtype VkDescriptorSet = VkDescriptorSet Word64
deriving (Eq, Storable)
newtype VkDescriptorSetLayout = VkDescriptorSetLayout Word64
deriving (Eq, Storable)
newtype VkDescriptorPool = VkDescriptorPool Word64
deriving (Eq, Storable)
newtype VkFence = VkFence Word64
deriving (Eq, Storable)
newtype VkSemaphore = VkSemaphore Word64
deriving (Eq, Storable)
newtype VkEvent = VkEvent Word64
deriving (Eq, Storable)
newtype VkQueryPool = VkQueryPool Word64
deriving (Eq, Storable)
newtype VkFramebuffer = VkFramebuffer Word64
deriving (Eq, Storable)
newtype VkRenderPass = VkRenderPass Word64
deriving (Eq, Storable)
newtype VkPipelineCache = VkPipelineCache Word64
deriving (Eq, Storable)
newtype VkDisplayKHR = VkDisplayKHR Word64
deriving (Eq, Storable)
newtype VkDisplayModeKHR = VkDisplayModeKHR Word64
deriving (Eq, Storable)
newtype VkSurfaceKHR = VkSurfaceKHR Word64
deriving (Eq, Storable)
newtype VkSwapchainKHR = VkSwapchainKHR Word64
deriving (Eq, Storable)
newtype VkDebugReportCallbackEXT = VkDebugReportCallbackEXT Word64
deriving (Eq, Storable)
-- * FuncPointer Types
type PFN_vkInternalAllocationNotification = FunPtr
(Ptr Void ->
CSize ->
VkInternalAllocationType -> VkSystemAllocationScope -> IO ())
type PFN_vkInternalFreeNotification = FunPtr
(Ptr Void ->
CSize ->
VkInternalAllocationType -> VkSystemAllocationScope -> IO ())
type PFN_vkReallocationFunction = FunPtr
(Ptr Void ->
Ptr Void ->
CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void))
type PFN_vkAllocationFunction = FunPtr
(Ptr Void ->
CSize -> CSize -> VkSystemAllocationScope -> IO (Ptr Void))
type PFN_vkFreeFunction = FunPtr (Ptr Void -> Ptr Void -> IO ())
type PFN_vkVoidFunction = FunPtr (IO ())
type PFN_vkDebugReportCallbackEXT = FunPtr
(VkDebugReportFlagsEXT ->
VkDebugReportObjectTypeEXT ->
Word64 ->
CSize ->
Int32 -> Ptr CChar -> Ptr CChar -> Ptr Void -> IO VkBool32)
-- * Flags
-- ** VkFramebufferCreateFlags
-- | Opaque flag
newtype VkFramebufferCreateFlags = VkFramebufferCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkQueryPoolCreateFlags
-- | Opaque flag
newtype VkQueryPoolCreateFlags = VkQueryPoolCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkRenderPassCreateFlags
-- | Opaque flag
newtype VkRenderPassCreateFlags = VkRenderPassCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkSamplerCreateFlags
-- | Opaque flag
newtype VkSamplerCreateFlags = VkSamplerCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineLayoutCreateFlags
-- | Opaque flag
newtype VkPipelineLayoutCreateFlags = VkPipelineLayoutCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineCacheCreateFlags
-- | Opaque flag
newtype VkPipelineCacheCreateFlags = VkPipelineCacheCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineDepthStencilStateCreateFlags
-- | Opaque flag
newtype VkPipelineDepthStencilStateCreateFlags = VkPipelineDepthStencilStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineDynamicStateCreateFlags
-- | Opaque flag
newtype VkPipelineDynamicStateCreateFlags = VkPipelineDynamicStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineColorBlendStateCreateFlags
-- | Opaque flag
newtype VkPipelineColorBlendStateCreateFlags = VkPipelineColorBlendStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineMultisampleStateCreateFlags
-- | Opaque flag
newtype VkPipelineMultisampleStateCreateFlags = VkPipelineMultisampleStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineRasterizationStateCreateFlags
-- | Opaque flag
newtype VkPipelineRasterizationStateCreateFlags = VkPipelineRasterizationStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineViewportStateCreateFlags
-- | Opaque flag
newtype VkPipelineViewportStateCreateFlags = VkPipelineViewportStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineTessellationStateCreateFlags
-- | Opaque flag
newtype VkPipelineTessellationStateCreateFlags = VkPipelineTessellationStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineInputAssemblyStateCreateFlags
-- | Opaque flag
newtype VkPipelineInputAssemblyStateCreateFlags = VkPipelineInputAssemblyStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineVertexInputStateCreateFlags
-- | Opaque flag
newtype VkPipelineVertexInputStateCreateFlags = VkPipelineVertexInputStateCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineShaderStageCreateFlags
-- | Opaque flag
newtype VkPipelineShaderStageCreateFlags = VkPipelineShaderStageCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkDescriptorSetLayoutCreateFlags
-- | Opaque flag
newtype VkDescriptorSetLayoutCreateFlags = VkDescriptorSetLayoutCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkBufferViewCreateFlags
-- | Opaque flag
newtype VkBufferViewCreateFlags = VkBufferViewCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkInstanceCreateFlags
-- | Opaque flag
newtype VkInstanceCreateFlags = VkInstanceCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkDeviceCreateFlags
-- | Opaque flag
newtype VkDeviceCreateFlags = VkDeviceCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkDeviceQueueCreateFlags
-- | Opaque flag
newtype VkDeviceQueueCreateFlags = VkDeviceQueueCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkQueueFlags
newtype VkQueueFlagBits = VkQueueFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkQueueFlagBits
type VkQueueFlags = VkQueueFlagBits
-- | Queue supports graphics operations
pattern VK_QUEUE_GRAPHICS_BIT = VkQueueFlagBits 0x1
-- | Queue supports compute operations
pattern VK_QUEUE_COMPUTE_BIT = VkQueueFlagBits 0x2
-- | Queue supports transfer operations
pattern VK_QUEUE_TRANSFER_BIT = VkQueueFlagBits 0x4
-- | Queue supports sparse resource memory management operations
pattern VK_QUEUE_SPARSE_BINDING_BIT = VkQueueFlagBits 0x8
-- ** VkMemoryPropertyFlags
newtype VkMemoryPropertyFlagBits = VkMemoryPropertyFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkMemoryPropertyFlagBits
type VkMemoryPropertyFlags = VkMemoryPropertyFlagBits
-- | If otherwise stated, then allocate memory on device
pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = VkMemoryPropertyFlagBits 0x1
-- | Memory is mappable by host
pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = VkMemoryPropertyFlagBits 0x2
-- | Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache
pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = VkMemoryPropertyFlagBits 0x4
-- | Memory will be cached by the host
pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT = VkMemoryPropertyFlagBits 0x8
-- | Memory may be allocated by the driver when it is required
pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = VkMemoryPropertyFlagBits 0x10
-- ** VkMemoryHeapFlags
newtype VkMemoryHeapFlagBits = VkMemoryHeapFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkMemoryHeapFlagBits
type VkMemoryHeapFlags = VkMemoryHeapFlagBits
-- | If set, heap represents device memory
pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = VkMemoryHeapFlagBits 0x1
-- ** VkAccessFlags
newtype VkAccessFlagBits = VkAccessFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkAccessFlagBits
type VkAccessFlags = VkAccessFlagBits
-- | Controls coherency of indirect command reads
pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT = VkAccessFlagBits 0x1
-- | Controls coherency of index reads
pattern VK_ACCESS_INDEX_READ_BIT = VkAccessFlagBits 0x2
-- | Controls coherency of vertex attribute reads
pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = VkAccessFlagBits 0x4
-- | Controls coherency of uniform buffer reads
pattern VK_ACCESS_UNIFORM_READ_BIT = VkAccessFlagBits 0x8
-- | Controls coherency of input attachment reads
pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x10
-- | Controls coherency of shader reads
pattern VK_ACCESS_SHADER_READ_BIT = VkAccessFlagBits 0x20
-- | Controls coherency of shader writes
pattern VK_ACCESS_SHADER_WRITE_BIT = VkAccessFlagBits 0x40
-- | Controls coherency of color attachment reads
pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x80
-- | Controls coherency of color attachment writes
pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = VkAccessFlagBits 0x100
-- | Controls coherency of depth/stencil attachment reads
pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = VkAccessFlagBits 0x200
-- | Controls coherency of depth/stencil attachment writes
pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = VkAccessFlagBits 0x400
-- | Controls coherency of transfer reads
pattern VK_ACCESS_TRANSFER_READ_BIT = VkAccessFlagBits 0x800
-- | Controls coherency of transfer writes
pattern VK_ACCESS_TRANSFER_WRITE_BIT = VkAccessFlagBits 0x1000
-- | Controls coherency of host reads
pattern VK_ACCESS_HOST_READ_BIT = VkAccessFlagBits 0x2000
-- | Controls coherency of host writes
pattern VK_ACCESS_HOST_WRITE_BIT = VkAccessFlagBits 0x4000
-- | Controls coherency of memory reads
pattern VK_ACCESS_MEMORY_READ_BIT = VkAccessFlagBits 0x8000
-- | Controls coherency of memory writes
pattern VK_ACCESS_MEMORY_WRITE_BIT = VkAccessFlagBits 0x10000
-- ** VkBufferUsageFlags
newtype VkBufferUsageFlagBits = VkBufferUsageFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkBufferUsageFlagBits
type VkBufferUsageFlags = VkBufferUsageFlagBits
-- | Can be used as a source of transfer operations
pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT = VkBufferUsageFlagBits 0x1
-- | Can be used as a destination of transfer operations
pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT = VkBufferUsageFlagBits 0x2
-- | Can be used as TBO
pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits 0x4
-- | Can be used as IBO
pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits 0x8
-- | Can be used as UBO
pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = VkBufferUsageFlagBits 0x10
-- | Can be used as SSBO
pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = VkBufferUsageFlagBits 0x20
-- | Can be used as source of fixed-function index fetch (index buffer)
pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT = VkBufferUsageFlagBits 0x40
-- | Can be used as source of fixed-function vertex fetch (VBO)
pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = VkBufferUsageFlagBits 0x80
-- | Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = VkBufferUsageFlagBits 0x100
-- ** VkBufferCreateFlags
newtype VkBufferCreateFlagBits = VkBufferCreateFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkBufferCreateFlagBits
type VkBufferCreateFlags = VkBufferCreateFlagBits
-- | Buffer should support sparse backing
pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT = VkBufferCreateFlagBits 0x1
-- | Buffer should support sparse backing with partial residency
pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = VkBufferCreateFlagBits 0x2
-- | Buffer should support constent data access to physical memory blocks mapped into multiple locations of sparse buffers
pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = VkBufferCreateFlagBits 0x4
-- ** VkShaderStageFlags
newtype VkShaderStageFlagBits = VkShaderStageFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkShaderStageFlagBits
type VkShaderStageFlags = VkShaderStageFlagBits
pattern VK_SHADER_STAGE_VERTEX_BIT = VkShaderStageFlagBits 0x1
pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = VkShaderStageFlagBits 0x2
pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = VkShaderStageFlagBits 0x4
pattern VK_SHADER_STAGE_GEOMETRY_BIT = VkShaderStageFlagBits 0x8
pattern VK_SHADER_STAGE_FRAGMENT_BIT = VkShaderStageFlagBits 0x10
pattern VK_SHADER_STAGE_COMPUTE_BIT = VkShaderStageFlagBits 0x20
pattern VK_SHADER_STAGE_ALL_GRAPHICS = VkShaderStageFlagBits 0x1f
pattern VK_SHADER_STAGE_ALL = VkShaderStageFlagBits 0x7fffffff
-- ** VkImageUsageFlags
newtype VkImageUsageFlagBits = VkImageUsageFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkImageUsageFlagBits
type VkImageUsageFlags = VkImageUsageFlagBits
-- | Can be used as a source of transfer operations
pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT = VkImageUsageFlagBits 0x1
-- | Can be used as a destination of transfer operations
pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT = VkImageUsageFlagBits 0x2
-- | Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
pattern VK_IMAGE_USAGE_SAMPLED_BIT = VkImageUsageFlagBits 0x4
-- | Can be used as storage image (STORAGE_IMAGE descriptor type)
pattern VK_IMAGE_USAGE_STORAGE_BIT = VkImageUsageFlagBits 0x8
-- | Can be used as framebuffer color attachment
pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = VkImageUsageFlagBits 0x10
-- | Can be used as framebuffer depth/stencil attachment
pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = VkImageUsageFlagBits 0x20
-- | Image data not needed outside of rendering
pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = VkImageUsageFlagBits 0x40
-- | Can be used as framebuffer input attachment
pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = VkImageUsageFlagBits 0x80
-- ** VkImageCreateFlags
newtype VkImageCreateFlagBits = VkImageCreateFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkImageCreateFlagBits
type VkImageCreateFlags = VkImageCreateFlagBits
-- | Image should support sparse backing
pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT = VkImageCreateFlagBits 0x1
-- | Image should support sparse backing with partial residency
pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = VkImageCreateFlagBits 0x2
-- | Image should support constent data access to physical memory blocks mapped into multiple locations of sparse images
pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = VkImageCreateFlagBits 0x4
-- | Allows image views to have different format than the base image
pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = VkImageCreateFlagBits 0x8
-- | Allows creating image views with cube type from the created image
pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = VkImageCreateFlagBits 0x10
-- ** VkImageViewCreateFlags
-- | Opaque flag
newtype VkImageViewCreateFlags = VkImageViewCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineCreateFlags
newtype VkPipelineCreateFlagBits = VkPipelineCreateFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkPipelineCreateFlagBits
type VkPipelineCreateFlags = VkPipelineCreateFlagBits
pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = VkPipelineCreateFlagBits 0x1
pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = VkPipelineCreateFlagBits 0x2
pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT = VkPipelineCreateFlagBits 0x4
-- ** VkColorComponentFlags
newtype VkColorComponentFlagBits = VkColorComponentFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkColorComponentFlagBits
type VkColorComponentFlags = VkColorComponentFlagBits
pattern VK_COLOR_COMPONENT_R_BIT = VkColorComponentFlagBits 0x1
pattern VK_COLOR_COMPONENT_G_BIT = VkColorComponentFlagBits 0x2
pattern VK_COLOR_COMPONENT_B_BIT = VkColorComponentFlagBits 0x4
pattern VK_COLOR_COMPONENT_A_BIT = VkColorComponentFlagBits 0x8
-- ** VkFenceCreateFlags
newtype VkFenceCreateFlagBits = VkFenceCreateFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkFenceCreateFlagBits
type VkFenceCreateFlags = VkFenceCreateFlagBits
pattern VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateFlagBits 0x1
-- ** VkSemaphoreCreateFlags
-- | Opaque flag
newtype VkSemaphoreCreateFlags = VkSemaphoreCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkFormatFeatureFlags
newtype VkFormatFeatureFlagBits = VkFormatFeatureFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkFormatFeatureFlagBits
type VkFormatFeatureFlags = VkFormatFeatureFlagBits
-- | Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = VkFormatFeatureFlagBits 0x1
-- | Format can be used for storage images (STORAGE_IMAGE descriptor type)
pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = VkFormatFeatureFlagBits 0x2
-- | Format supports atomic operations in case it's used for storage images
pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = VkFormatFeatureFlagBits 0x4
-- | Format can be used for uniform texel buffers (TBOs)
pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = VkFormatFeatureFlagBits 0x8
-- | Format can be used for storage texel buffers (IBOs)
pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = VkFormatFeatureFlagBits 0x10
-- | Format supports atomic operations in case it's used for storage texel buffers
pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = VkFormatFeatureFlagBits 0x20
-- | Format can be used for vertex buffers (VBOs)
pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = VkFormatFeatureFlagBits 0x40
-- | Format can be used for color attachment images
pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = VkFormatFeatureFlagBits 0x80
-- | Format supports blending in case it's used for color attachment images
pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = VkFormatFeatureFlagBits 0x100
-- | Format can be used for depth/stencil attachment images
pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = VkFormatFeatureFlagBits 0x200
-- | Format can be used as the source image of blits with vkCmdBlitImage
pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT = VkFormatFeatureFlagBits 0x400
-- | Format can be used as the destination image of blits with vkCmdBlitImage
pattern VK_FORMAT_FEATURE_BLIT_DST_BIT = VkFormatFeatureFlagBits 0x800
-- | Format can be filtered with VK_FILTER_LINEAR when being sampled
pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = VkFormatFeatureFlagBits 0x1000
-- ** VkQueryControlFlags
newtype VkQueryControlFlagBits = VkQueryControlFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkQueryControlFlagBits
type VkQueryControlFlags = VkQueryControlFlagBits
-- | Require precise results to be collected by the query
pattern VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlFlagBits 0x1
-- ** VkQueryResultFlags
newtype VkQueryResultFlagBits = VkQueryResultFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkQueryResultFlagBits
type VkQueryResultFlags = VkQueryResultFlagBits
-- | Results of the queries are written to the destination buffer as 64-bit values
pattern VK_QUERY_RESULT_64_BIT = VkQueryResultFlagBits 0x1
-- | Results of the queries are waited on before proceeding with the result copy
pattern VK_QUERY_RESULT_WAIT_BIT = VkQueryResultFlagBits 0x2
-- | Besides the results of the query, the availability of the results is also written
pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = VkQueryResultFlagBits 0x4
-- | Copy the partial results of the query even if the final results aren't available
pattern VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultFlagBits 0x8
-- ** VkShaderModuleCreateFlags
-- | Opaque flag
newtype VkShaderModuleCreateFlags = VkShaderModuleCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkEventCreateFlags
-- | Opaque flag
newtype VkEventCreateFlags = VkEventCreateFlags VkFlags
deriving (Eq, Storable)
-- ** VkCommandPoolCreateFlags
newtype VkCommandPoolCreateFlagBits = VkCommandPoolCreateFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkCommandPoolCreateFlagBits
type VkCommandPoolCreateFlags = VkCommandPoolCreateFlagBits
-- | Command buffers have a short lifetime
pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = VkCommandPoolCreateFlagBits 0x1
-- | Command buffers may release their memory individually
pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = VkCommandPoolCreateFlagBits 0x2
-- ** VkCommandPoolResetFlags
newtype VkCommandPoolResetFlagBits = VkCommandPoolResetFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkCommandPoolResetFlagBits
type VkCommandPoolResetFlags = VkCommandPoolResetFlagBits
-- | Release resources owned by the pool
pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = VkCommandPoolResetFlagBits 0x1
-- ** VkCommandBufferResetFlags
newtype VkCommandBufferResetFlagBits = VkCommandBufferResetFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkCommandBufferResetFlagBits
type VkCommandBufferResetFlags = VkCommandBufferResetFlagBits
-- | Release resources owned by the buffer
pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = VkCommandBufferResetFlagBits 0x1
-- ** VkCommandBufferUsageFlags
newtype VkCommandBufferUsageFlagBits = VkCommandBufferUsageFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkCommandBufferUsageFlagBits
type VkCommandBufferUsageFlags = VkCommandBufferUsageFlagBits
pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = VkCommandBufferUsageFlagBits 0x1
pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = VkCommandBufferUsageFlagBits 0x2
-- | Command buffer may be submitted/executed more than once simultaneously
pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = VkCommandBufferUsageFlagBits 0x4
-- ** VkQueryPipelineStatisticFlags
newtype VkQueryPipelineStatisticFlagBits = VkQueryPipelineStatisticFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkQueryPipelineStatisticFlagBits
type VkQueryPipelineStatisticFlags = VkQueryPipelineStatisticFlagBits
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = VkQueryPipelineStatisticFlagBits 0x1
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x2
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x4
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x8
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x10
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x20
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = VkQueryPipelineStatisticFlagBits 0x40
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x80
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = VkQueryPipelineStatisticFlagBits 0x100
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x200
-- | Optional
pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits 0x400
-- ** VkMemoryMapFlags
-- | Opaque flag
newtype VkMemoryMapFlags = VkMemoryMapFlags VkFlags
deriving (Eq, Storable)
-- ** VkImageAspectFlags
newtype VkImageAspectFlagBits = VkImageAspectFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkImageAspectFlagBits
type VkImageAspectFlags = VkImageAspectFlagBits
pattern VK_IMAGE_ASPECT_COLOR_BIT = VkImageAspectFlagBits 0x1
pattern VK_IMAGE_ASPECT_DEPTH_BIT = VkImageAspectFlagBits 0x2
pattern VK_IMAGE_ASPECT_STENCIL_BIT = VkImageAspectFlagBits 0x4
pattern VK_IMAGE_ASPECT_METADATA_BIT = VkImageAspectFlagBits 0x8
-- ** VkSparseMemoryBindFlags
newtype VkSparseMemoryBindFlagBits = VkSparseMemoryBindFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkSparseMemoryBindFlagBits
type VkSparseMemoryBindFlags = VkSparseMemoryBindFlagBits
-- | Operation binds resource metadata to memory
pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT = VkSparseMemoryBindFlagBits 0x1
-- ** VkSparseImageFormatFlags
newtype VkSparseImageFormatFlagBits = VkSparseImageFormatFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkSparseImageFormatFlagBits
type VkSparseImageFormatFlags = VkSparseImageFormatFlagBits
-- | Image uses a single miptail region for all array layers
pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = VkSparseImageFormatFlagBits 0x1
-- | Image requires mip levels to be an exact multiple of the sparse image block size for non-miptail levels.
pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = VkSparseImageFormatFlagBits 0x2
-- | Image uses a non-standard sparse block size
pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = VkSparseImageFormatFlagBits 0x4
-- ** VkSubpassDescriptionFlags
-- | Opaque flag
newtype VkSubpassDescriptionFlags = VkSubpassDescriptionFlags VkFlags
deriving (Eq, Storable)
-- ** VkPipelineStageFlags
newtype VkPipelineStageFlagBits = VkPipelineStageFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkPipelineStageFlagBits
type VkPipelineStageFlags = VkPipelineStageFlagBits
-- | Before subsequent commands are processed
pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = VkPipelineStageFlagBits 0x1
-- | Draw/DispatchIndirect command fetch
pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = VkPipelineStageFlagBits 0x2
-- | Vertex/index fetch
pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = VkPipelineStageFlagBits 0x4
-- | Vertex shading
pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = VkPipelineStageFlagBits 0x8
-- | Tessellation control shading
pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = VkPipelineStageFlagBits 0x10
-- | Tessellation evaluation shading
pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = VkPipelineStageFlagBits 0x20
-- | Geometry shading
pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = VkPipelineStageFlagBits 0x40
-- | Fragment shading
pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = VkPipelineStageFlagBits 0x80
-- | Early fragment (depth and stencil) tests
pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = VkPipelineStageFlagBits 0x100
-- | Late fragment (depth and stencil) tests
pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = VkPipelineStageFlagBits 0x200
-- | Color attachment writes
pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = VkPipelineStageFlagBits 0x400
-- | Compute shading
pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = VkPipelineStageFlagBits 0x800
-- | Transfer/copy operations
pattern VK_PIPELINE_STAGE_TRANSFER_BIT = VkPipelineStageFlagBits 0x1000
-- | After previous commands have completed
pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = VkPipelineStageFlagBits 0x2000
-- | Indicates host (CPU) is a source/sink of the dependency
pattern VK_PIPELINE_STAGE_HOST_BIT = VkPipelineStageFlagBits 0x4000
-- | All stages of the graphics pipeline
pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = VkPipelineStageFlagBits 0x8000
-- | All stages supported on the queue
pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = VkPipelineStageFlagBits 0x10000
-- ** VkSampleCountFlags
newtype VkSampleCountFlagBits = VkSampleCountFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkSampleCountFlagBits
type VkSampleCountFlags = VkSampleCountFlagBits
-- | Sample count 1 supported
pattern VK_SAMPLE_COUNT_1_BIT = VkSampleCountFlagBits 0x1
-- | Sample count 2 supported
pattern VK_SAMPLE_COUNT_2_BIT = VkSampleCountFlagBits 0x2
-- | Sample count 4 supported
pattern VK_SAMPLE_COUNT_4_BIT = VkSampleCountFlagBits 0x4
-- | Sample count 8 supported
pattern VK_SAMPLE_COUNT_8_BIT = VkSampleCountFlagBits 0x8
-- | Sample count 16 supported
pattern VK_SAMPLE_COUNT_16_BIT = VkSampleCountFlagBits 0x10
-- | Sample count 32 supported
pattern VK_SAMPLE_COUNT_32_BIT = VkSampleCountFlagBits 0x20
-- | Sample count 64 supported
pattern VK_SAMPLE_COUNT_64_BIT = VkSampleCountFlagBits 0x40
-- ** VkAttachmentDescriptionFlags
newtype VkAttachmentDescriptionFlagBits = VkAttachmentDescriptionFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkAttachmentDescriptionFlagBits
type VkAttachmentDescriptionFlags = VkAttachmentDescriptionFlagBits
-- | The attachment may alias physical memory of another attachment in the same render pass
pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = VkAttachmentDescriptionFlagBits 0x1
-- ** VkStencilFaceFlags
newtype VkStencilFaceFlagBits = VkStencilFaceFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkStencilFaceFlagBits
type VkStencilFaceFlags = VkStencilFaceFlagBits
-- | Front face
pattern VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceFlagBits 0x1
-- | Back face
pattern VK_STENCIL_FACE_BACK_BIT = VkStencilFaceFlagBits 0x2
-- | Front and back faces
pattern VK_STENCIL_FRONT_AND_BACK = VkStencilFaceFlagBits 0x3
-- ** VkCullModeFlags
newtype VkCullModeFlagBits = VkCullModeFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkCullModeFlagBits
type VkCullModeFlags = VkCullModeFlagBits
pattern VK_CULL_MODE_FRONT_BIT = VkCullModeFlagBits 0x1
pattern VK_CULL_MODE_BACK_BIT = VkCullModeFlagBits 0x2
pattern VK_CULL_MODE_NONE = VkCullModeFlagBits 0x0
pattern VK_CULL_MODE_FRONT_AND_BACK = VkCullModeFlagBits 0x3
-- ** VkDescriptorPoolCreateFlags
newtype VkDescriptorPoolCreateFlagBits = VkDescriptorPoolCreateFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkDescriptorPoolCreateFlagBits
type VkDescriptorPoolCreateFlags = VkDescriptorPoolCreateFlagBits
-- | Descriptor sets may be freed individually
pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = VkDescriptorPoolCreateFlagBits 0x1
-- ** VkDescriptorPoolResetFlags
-- | Opaque flag
newtype VkDescriptorPoolResetFlags = VkDescriptorPoolResetFlags VkFlags
deriving (Eq, Storable)
-- ** VkDependencyFlags
newtype VkDependencyFlagBits = VkDependencyFlagBits VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkDependencyFlagBits
type VkDependencyFlags = VkDependencyFlagBits
-- | Dependency is per pixel region
pattern VK_DEPENDENCY_BY_REGION_BIT = VkDependencyFlagBits 0x1
-- ** VkCompositeAlphaFlagsKHR
newtype VkCompositeAlphaFlagBitsKHR = VkCompositeAlphaFlagBitsKHR VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkCompositeAlphaFlagBitsKHR
type VkCompositeAlphaFlagsKHR = VkCompositeAlphaFlagBitsKHR
pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x1
pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x2
pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x4
pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = VkCompositeAlphaFlagBitsKHR 0x8
-- ** VkDisplayPlaneAlphaFlagsKHR
newtype VkDisplayPlaneAlphaFlagBitsKHR = VkDisplayPlaneAlphaFlagBitsKHR VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkDisplayPlaneAlphaFlagBitsKHR
type VkDisplayPlaneAlphaFlagsKHR = VkDisplayPlaneAlphaFlagBitsKHR
pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x1
pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x2
pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x4
pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR 0x8
-- ** VkSurfaceTransformFlagsKHR
newtype VkSurfaceTransformFlagBitsKHR = VkSurfaceTransformFlagBitsKHR VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkSurfaceTransformFlagBitsKHR
type VkSurfaceTransformFlagsKHR = VkSurfaceTransformFlagBitsKHR
pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x1
pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x2
pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x4
pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x8
pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x10
pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x20
pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x40
pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x80
pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = VkSurfaceTransformFlagBitsKHR 0x100
-- ** VkSwapchainCreateFlagsKHR
-- | Opaque flag
newtype VkSwapchainCreateFlagsKHR = VkSwapchainCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkDisplayModeCreateFlagsKHR
-- | Opaque flag
newtype VkDisplayModeCreateFlagsKHR = VkDisplayModeCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkDisplaySurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkDisplaySurfaceCreateFlagsKHR = VkDisplaySurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkAndroidSurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkAndroidSurfaceCreateFlagsKHR = VkAndroidSurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkMirSurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkMirSurfaceCreateFlagsKHR = VkMirSurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkWaylandSurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkWaylandSurfaceCreateFlagsKHR = VkWaylandSurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkWin32SurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkWin32SurfaceCreateFlagsKHR = VkWin32SurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkXlibSurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkXlibSurfaceCreateFlagsKHR = VkXlibSurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkXcbSurfaceCreateFlagsKHR
-- | Opaque flag
newtype VkXcbSurfaceCreateFlagsKHR = VkXcbSurfaceCreateFlagsKHR VkFlags
deriving (Eq, Storable)
-- ** VkDebugReportFlagsEXT
newtype VkDebugReportFlagBitsEXT = VkDebugReportFlagBitsEXT VkFlags
deriving (Eq, Storable, Bits, FiniteBits)
-- | Alias for VkDebugReportFlagBitsEXT
type VkDebugReportFlagsEXT = VkDebugReportFlagBitsEXT
pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT = VkDebugReportFlagBitsEXT 0x1
pattern VK_DEBUG_REPORT_WARNING_BIT_EXT = VkDebugReportFlagBitsEXT 0x2
pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = VkDebugReportFlagBitsEXT 0x4
pattern VK_DEBUG_REPORT_ERROR_BIT_EXT = VkDebugReportFlagBitsEXT 0x8
pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT = VkDebugReportFlagBitsEXT 0x10
-- * Enumerations
-- ** VkImageLayout
newtype VkImageLayout = VkImageLayout Int32
deriving (Eq, Storable)
-- | Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
pattern VK_IMAGE_LAYOUT_UNDEFINED = VkImageLayout 0
-- | General layout when image can be used for any kind of access
pattern VK_IMAGE_LAYOUT_GENERAL = VkImageLayout 1
-- | Optimal layout when image is only used for color attachment read/write
pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = VkImageLayout 2
-- | Optimal layout when image is only used for depth/stencil attachment read/write
pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = VkImageLayout 3
-- | Optimal layout when image is used for read only depth/stencil attachment and shader access
pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = VkImageLayout 4
-- | Optimal layout when image is used for read only shader access
pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = VkImageLayout 5
-- | Optimal layout when image is used only as source of transfer operations
pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = VkImageLayout 6
-- | Optimal layout when image is used only as destination of transfer operations
pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = VkImageLayout 7
-- | Initial layout used when the data is populated by the CPU
pattern VK_IMAGE_LAYOUT_PREINITIALIZED = VkImageLayout 8
-- ** VkAttachmentLoadOp
newtype VkAttachmentLoadOp = VkAttachmentLoadOp Int32
deriving (Eq, Storable)
pattern VK_ATTACHMENT_LOAD_OP_LOAD = VkAttachmentLoadOp 0
pattern VK_ATTACHMENT_LOAD_OP_CLEAR = VkAttachmentLoadOp 1
pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp 2
-- ** VkAttachmentStoreOp
newtype VkAttachmentStoreOp = VkAttachmentStoreOp Int32
deriving (Eq, Storable)
pattern VK_ATTACHMENT_STORE_OP_STORE = VkAttachmentStoreOp 0
pattern VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp 1
-- ** VkImageType
newtype VkImageType = VkImageType Int32
deriving (Eq, Storable)
pattern VK_IMAGE_TYPE_1D = VkImageType 0
pattern VK_IMAGE_TYPE_2D = VkImageType 1
pattern VK_IMAGE_TYPE_3D = VkImageType 2
-- ** VkImageTiling
newtype VkImageTiling = VkImageTiling Int32
deriving (Eq, Storable)
pattern VK_IMAGE_TILING_OPTIMAL = VkImageTiling 0
pattern VK_IMAGE_TILING_LINEAR = VkImageTiling 1
-- ** VkImageViewType
newtype VkImageViewType = VkImageViewType Int32
deriving (Eq, Storable)
pattern VK_IMAGE_VIEW_TYPE_1D = VkImageViewType 0
pattern VK_IMAGE_VIEW_TYPE_2D = VkImageViewType 1
pattern VK_IMAGE_VIEW_TYPE_3D = VkImageViewType 2
pattern VK_IMAGE_VIEW_TYPE_CUBE = VkImageViewType 3
pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY = VkImageViewType 4
pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY = VkImageViewType 5
pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType 6
-- ** VkCommandBufferLevel
newtype VkCommandBufferLevel = VkCommandBufferLevel Int32
deriving (Eq, Storable)
pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY = VkCommandBufferLevel 0
pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel 1
-- ** VkComponentSwizzle
newtype VkComponentSwizzle = VkComponentSwizzle Int32
deriving (Eq, Storable)
pattern VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle 0
pattern VK_COMPONENT_SWIZZLE_ZERO = VkComponentSwizzle 1
pattern VK_COMPONENT_SWIZZLE_ONE = VkComponentSwizzle 2
pattern VK_COMPONENT_SWIZZLE_R = VkComponentSwizzle 3
pattern VK_COMPONENT_SWIZZLE_G = VkComponentSwizzle 4
pattern VK_COMPONENT_SWIZZLE_B = VkComponentSwizzle 5
pattern VK_COMPONENT_SWIZZLE_A = VkComponentSwizzle 6
-- ** VkDescriptorType
newtype VkDescriptorType = VkDescriptorType Int32
deriving (Eq, Storable)
pattern VK_DESCRIPTOR_TYPE_SAMPLER = VkDescriptorType 0
pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = VkDescriptorType 1
pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = VkDescriptorType 2
pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = VkDescriptorType 3
pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = VkDescriptorType 4
pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = VkDescriptorType 5
pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = VkDescriptorType 6
pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = VkDescriptorType 7
pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = VkDescriptorType 8
pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = VkDescriptorType 9
pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = VkDescriptorType 10
-- ** VkQueryType
newtype VkQueryType = VkQueryType Int32
deriving (Eq, Storable)
pattern VK_QUERY_TYPE_OCCLUSION = VkQueryType 0
-- | Optional
pattern VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1
pattern VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2
-- ** VkBorderColor
newtype VkBorderColor = VkBorderColor Int32
deriving (Eq, Storable)
pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor 0
pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = VkBorderColor 1
pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = VkBorderColor 2
pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK = VkBorderColor 3
pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = VkBorderColor 4
pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE = VkBorderColor 5
-- ** VkPipelineBindPoint
newtype VkPipelineBindPoint = VkPipelineBindPoint Int32
deriving (Eq, Storable)
pattern VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint 0
pattern VK_PIPELINE_BIND_POINT_COMPUTE = VkPipelineBindPoint 1
-- ** VkPipelineCacheHeaderVersion
newtype VkPipelineCacheHeaderVersion = VkPipelineCacheHeaderVersion Int32
deriving (Eq, Storable)
pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE = VkPipelineCacheHeaderVersion 1
-- ** VkPrimitiveTopology
newtype VkPrimitiveTopology = VkPrimitiveTopology Int32
deriving (Eq, Storable)
pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0
pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1
pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2
pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3
pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = VkPrimitiveTopology 4
pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5
pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = VkPrimitiveTopology 6
pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology 7
pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = VkPrimitiveTopology 8
pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology 9
pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10
-- ** VkSharingMode
newtype VkSharingMode = VkSharingMode Int32
deriving (Eq, Storable)
pattern VK_SHARING_MODE_EXCLUSIVE = VkSharingMode 0
pattern VK_SHARING_MODE_CONCURRENT = VkSharingMode 1
-- ** VkIndexType
newtype VkIndexType = VkIndexType Int32
deriving (Eq, Storable)
pattern VK_INDEX_TYPE_UINT16 = VkIndexType 0
pattern VK_INDEX_TYPE_UINT32 = VkIndexType 1
-- ** VkFilter
newtype VkFilter = VkFilter Int32
deriving (Eq, Storable)
pattern VK_FILTER_NEAREST = VkFilter 0
pattern VK_FILTER_LINEAR = VkFilter 1
-- ** VkSamplerMipmapMode
newtype VkSamplerMipmapMode = VkSamplerMipmapMode Int32
deriving (Eq, Storable)
-- | Choose nearest mip level
pattern VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode 0
-- | Linear filter between mip levels
pattern VK_SAMPLER_MIPMAP_MODE_LINEAR = VkSamplerMipmapMode 1
-- ** VkSamplerAddressMode
newtype VkSamplerAddressMode = VkSamplerAddressMode Int32
deriving (Eq, Storable)
pattern VK_SAMPLER_ADDRESS_MODE_REPEAT = VkSamplerAddressMode 0
pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = VkSamplerAddressMode 1
pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = VkSamplerAddressMode 2
pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = VkSamplerAddressMode 3
pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = VkSamplerAddressMode 4
-- ** VkCompareOp
newtype VkCompareOp = VkCompareOp Int32
deriving (Eq, Storable)
pattern VK_COMPARE_OP_NEVER = VkCompareOp 0
pattern VK_COMPARE_OP_LESS = VkCompareOp 1
pattern VK_COMPARE_OP_EQUAL = VkCompareOp 2
pattern VK_COMPARE_OP_LESS_OR_EQUAL = VkCompareOp 3
pattern VK_COMPARE_OP_GREATER = VkCompareOp 4
pattern VK_COMPARE_OP_NOT_EQUAL = VkCompareOp 5
pattern VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp 6
pattern VK_COMPARE_OP_ALWAYS = VkCompareOp 7
-- ** VkPolygonMode
newtype VkPolygonMode = VkPolygonMode Int32
deriving (Eq, Storable)
pattern VK_POLYGON_MODE_FILL = VkPolygonMode 0
pattern VK_POLYGON_MODE_LINE = VkPolygonMode 1
pattern VK_POLYGON_MODE_POINT = VkPolygonMode 2
-- ** VkFrontFace
newtype VkFrontFace = VkFrontFace Int32
deriving (Eq, Storable)
pattern VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace 0
pattern VK_FRONT_FACE_CLOCKWISE = VkFrontFace 1
-- ** VkBlendFactor
newtype VkBlendFactor = VkBlendFactor Int32
deriving (Eq, Storable)
pattern VK_BLEND_FACTOR_ZERO = VkBlendFactor 0
pattern VK_BLEND_FACTOR_ONE = VkBlendFactor 1
pattern VK_BLEND_FACTOR_SRC_COLOR = VkBlendFactor 2
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = VkBlendFactor 3
pattern VK_BLEND_FACTOR_DST_COLOR = VkBlendFactor 4
pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = VkBlendFactor 5
pattern VK_BLEND_FACTOR_SRC_ALPHA = VkBlendFactor 6
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = VkBlendFactor 7
pattern VK_BLEND_FACTOR_DST_ALPHA = VkBlendFactor 8
pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = VkBlendFactor 9
pattern VK_BLEND_FACTOR_CONSTANT_COLOR = VkBlendFactor 10
pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor 11
pattern VK_BLEND_FACTOR_CONSTANT_ALPHA = VkBlendFactor 12
pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor 13
pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = VkBlendFactor 14
pattern VK_BLEND_FACTOR_SRC1_COLOR = VkBlendFactor 15
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = VkBlendFactor 16
pattern VK_BLEND_FACTOR_SRC1_ALPHA = VkBlendFactor 17
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = VkBlendFactor 18
-- ** VkBlendOp
newtype VkBlendOp = VkBlendOp Int32
deriving (Eq, Storable)
pattern VK_BLEND_OP_ADD = VkBlendOp 0
pattern VK_BLEND_OP_SUBTRACT = VkBlendOp 1
pattern VK_BLEND_OP_REVERSE_SUBTRACT = VkBlendOp 2
pattern VK_BLEND_OP_MIN = VkBlendOp 3
pattern VK_BLEND_OP_MAX = VkBlendOp 4
-- ** VkStencilOp
newtype VkStencilOp = VkStencilOp Int32
deriving (Eq, Storable)
pattern VK_STENCIL_OP_KEEP = VkStencilOp 0
pattern VK_STENCIL_OP_ZERO = VkStencilOp 1
pattern VK_STENCIL_OP_REPLACE = VkStencilOp 2
pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp 3
pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp 4
pattern VK_STENCIL_OP_INVERT = VkStencilOp 5
pattern VK_STENCIL_OP_INCREMENT_AND_WRAP = VkStencilOp 6
pattern VK_STENCIL_OP_DECREMENT_AND_WRAP = VkStencilOp 7
-- ** VkLogicOp
newtype VkLogicOp = VkLogicOp Int32
deriving (Eq, Storable)
pattern VK_LOGIC_OP_CLEAR = VkLogicOp 0
pattern VK_LOGIC_OP_AND = VkLogicOp 1
pattern VK_LOGIC_OP_AND_REVERSE = VkLogicOp 2
pattern VK_LOGIC_OP_COPY = VkLogicOp 3
pattern VK_LOGIC_OP_AND_INVERTED = VkLogicOp 4
pattern VK_LOGIC_OP_NO_OP = VkLogicOp 5
pattern VK_LOGIC_OP_XOR = VkLogicOp 6
pattern VK_LOGIC_OP_OR = VkLogicOp 7
pattern VK_LOGIC_OP_NOR = VkLogicOp 8
pattern VK_LOGIC_OP_EQUIVALENT = VkLogicOp 9
pattern VK_LOGIC_OP_INVERT = VkLogicOp 10
pattern VK_LOGIC_OP_OR_REVERSE = VkLogicOp 11
pattern VK_LOGIC_OP_COPY_INVERTED = VkLogicOp 12
pattern VK_LOGIC_OP_OR_INVERTED = VkLogicOp 13
pattern VK_LOGIC_OP_NAND = VkLogicOp 14
pattern VK_LOGIC_OP_SET = VkLogicOp 15
-- ** VkInternalAllocationType
newtype VkInternalAllocationType = VkInternalAllocationType Int32
deriving (Eq, Storable)
pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = VkInternalAllocationType 0
-- ** VkSystemAllocationScope
newtype VkSystemAllocationScope = VkSystemAllocationScope Int32
deriving (Eq, Storable)
pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = VkSystemAllocationScope 0
pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = VkSystemAllocationScope 1
pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE = VkSystemAllocationScope 2
pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = VkSystemAllocationScope 3
pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = VkSystemAllocationScope 4
-- ** VkPhysicalDeviceType
newtype VkPhysicalDeviceType = VkPhysicalDeviceType Int32
deriving (Eq, Storable)
pattern VK_PHYSICAL_DEVICE_TYPE_OTHER = VkPhysicalDeviceType 0
pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = VkPhysicalDeviceType 1
pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = VkPhysicalDeviceType 2
pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = VkPhysicalDeviceType 3
pattern VK_PHYSICAL_DEVICE_TYPE_CPU = VkPhysicalDeviceType 4
-- ** VkVertexInputRate
newtype VkVertexInputRate = VkVertexInputRate Int32
deriving (Eq, Storable)
pattern VK_VERTEX_INPUT_RATE_VERTEX = VkVertexInputRate 0
pattern VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate 1
-- ** VkFormat
-- | Vulkan format definitions
newtype VkFormat = VkFormat Int32
deriving (Eq, Storable)
pattern VK_FORMAT_UNDEFINED = VkFormat 0
pattern VK_FORMAT_R4G4_UNORM_PACK8 = VkFormat 1
pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 = VkFormat 2
pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 = VkFormat 3
pattern VK_FORMAT_R5G6B5_UNORM_PACK16 = VkFormat 4
pattern VK_FORMAT_B5G6R5_UNORM_PACK16 = VkFormat 5
pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 = VkFormat 6
pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 = VkFormat 7
pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 = VkFormat 8
pattern VK_FORMAT_R8_UNORM = VkFormat 9
pattern VK_FORMAT_R8_SNORM = VkFormat 10
pattern VK_FORMAT_R8_USCALED = VkFormat 11
pattern VK_FORMAT_R8_SSCALED = VkFormat 12
pattern VK_FORMAT_R8_UINT = VkFormat 13
pattern VK_FORMAT_R8_SINT = VkFormat 14
pattern VK_FORMAT_R8_SRGB = VkFormat 15
pattern VK_FORMAT_R8G8_UNORM = VkFormat 16
pattern VK_FORMAT_R8G8_SNORM = VkFormat 17
pattern VK_FORMAT_R8G8_USCALED = VkFormat 18
pattern VK_FORMAT_R8G8_SSCALED = VkFormat 19
pattern VK_FORMAT_R8G8_UINT = VkFormat 20
pattern VK_FORMAT_R8G8_SINT = VkFormat 21
pattern VK_FORMAT_R8G8_SRGB = VkFormat 22
pattern VK_FORMAT_R8G8B8_UNORM = VkFormat 23
pattern VK_FORMAT_R8G8B8_SNORM = VkFormat 24
pattern VK_FORMAT_R8G8B8_USCALED = VkFormat 25
pattern VK_FORMAT_R8G8B8_SSCALED = VkFormat 26
pattern VK_FORMAT_R8G8B8_UINT = VkFormat 27
pattern VK_FORMAT_R8G8B8_SINT = VkFormat 28
pattern VK_FORMAT_R8G8B8_SRGB = VkFormat 29
pattern VK_FORMAT_B8G8R8_UNORM = VkFormat 30
pattern VK_FORMAT_B8G8R8_SNORM = VkFormat 31
pattern VK_FORMAT_B8G8R8_USCALED = VkFormat 32
pattern VK_FORMAT_B8G8R8_SSCALED = VkFormat 33
pattern VK_FORMAT_B8G8R8_UINT = VkFormat 34
pattern VK_FORMAT_B8G8R8_SINT = VkFormat 35
pattern VK_FORMAT_B8G8R8_SRGB = VkFormat 36
pattern VK_FORMAT_R8G8B8A8_UNORM = VkFormat 37
pattern VK_FORMAT_R8G8B8A8_SNORM = VkFormat 38
pattern VK_FORMAT_R8G8B8A8_USCALED = VkFormat 39
pattern VK_FORMAT_R8G8B8A8_SSCALED = VkFormat 40
pattern VK_FORMAT_R8G8B8A8_UINT = VkFormat 41
pattern VK_FORMAT_R8G8B8A8_SINT = VkFormat 42
pattern VK_FORMAT_R8G8B8A8_SRGB = VkFormat 43
pattern VK_FORMAT_B8G8R8A8_UNORM = VkFormat 44
pattern VK_FORMAT_B8G8R8A8_SNORM = VkFormat 45
pattern VK_FORMAT_B8G8R8A8_USCALED = VkFormat 46
pattern VK_FORMAT_B8G8R8A8_SSCALED = VkFormat 47
pattern VK_FORMAT_B8G8R8A8_UINT = VkFormat 48
pattern VK_FORMAT_B8G8R8A8_SINT = VkFormat 49
pattern VK_FORMAT_B8G8R8A8_SRGB = VkFormat 50
pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 = VkFormat 51
pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 = VkFormat 52
pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 = VkFormat 53
pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = VkFormat 54
pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 = VkFormat 55
pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 = VkFormat 56
pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 = VkFormat 57
pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 = VkFormat 58
pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 = VkFormat 59
pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 = VkFormat 60
pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = VkFormat 61
pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 = VkFormat 62
pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 = VkFormat 63
pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 = VkFormat 64
pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 = VkFormat 65
pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 = VkFormat 66
pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = VkFormat 67
pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 = VkFormat 68
pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 = VkFormat 69
pattern VK_FORMAT_R16_UNORM = VkFormat 70
pattern VK_FORMAT_R16_SNORM = VkFormat 71
pattern VK_FORMAT_R16_USCALED = VkFormat 72
pattern VK_FORMAT_R16_SSCALED = VkFormat 73
pattern VK_FORMAT_R16_UINT = VkFormat 74
pattern VK_FORMAT_R16_SINT = VkFormat 75
pattern VK_FORMAT_R16_SFLOAT = VkFormat 76
pattern VK_FORMAT_R16G16_UNORM = VkFormat 77
pattern VK_FORMAT_R16G16_SNORM = VkFormat 78
pattern VK_FORMAT_R16G16_USCALED = VkFormat 79
pattern VK_FORMAT_R16G16_SSCALED = VkFormat 80
pattern VK_FORMAT_R16G16_UINT = VkFormat 81
pattern VK_FORMAT_R16G16_SINT = VkFormat 82
pattern VK_FORMAT_R16G16_SFLOAT = VkFormat 83
pattern VK_FORMAT_R16G16B16_UNORM = VkFormat 84
pattern VK_FORMAT_R16G16B16_SNORM = VkFormat 85
pattern VK_FORMAT_R16G16B16_USCALED = VkFormat 86
pattern VK_FORMAT_R16G16B16_SSCALED = VkFormat 87
pattern VK_FORMAT_R16G16B16_UINT = VkFormat 88
pattern VK_FORMAT_R16G16B16_SINT = VkFormat 89
pattern VK_FORMAT_R16G16B16_SFLOAT = VkFormat 90
pattern VK_FORMAT_R16G16B16A16_UNORM = VkFormat 91
pattern VK_FORMAT_R16G16B16A16_SNORM = VkFormat 92
pattern VK_FORMAT_R16G16B16A16_USCALED = VkFormat 93
pattern VK_FORMAT_R16G16B16A16_SSCALED = VkFormat 94
pattern VK_FORMAT_R16G16B16A16_UINT = VkFormat 95
pattern VK_FORMAT_R16G16B16A16_SINT = VkFormat 96
pattern VK_FORMAT_R16G16B16A16_SFLOAT = VkFormat 97
pattern VK_FORMAT_R32_UINT = VkFormat 98
pattern VK_FORMAT_R32_SINT = VkFormat 99
pattern VK_FORMAT_R32_SFLOAT = VkFormat 100
pattern VK_FORMAT_R32G32_UINT = VkFormat 101
pattern VK_FORMAT_R32G32_SINT = VkFormat 102
pattern VK_FORMAT_R32G32_SFLOAT = VkFormat 103
pattern VK_FORMAT_R32G32B32_UINT = VkFormat 104
pattern VK_FORMAT_R32G32B32_SINT = VkFormat 105
pattern VK_FORMAT_R32G32B32_SFLOAT = VkFormat 106
pattern VK_FORMAT_R32G32B32A32_UINT = VkFormat 107
pattern VK_FORMAT_R32G32B32A32_SINT = VkFormat 108
pattern VK_FORMAT_R32G32B32A32_SFLOAT = VkFormat 109
pattern VK_FORMAT_R64_UINT = VkFormat 110
pattern VK_FORMAT_R64_SINT = VkFormat 111
pattern VK_FORMAT_R64_SFLOAT = VkFormat 112
pattern VK_FORMAT_R64G64_UINT = VkFormat 113
pattern VK_FORMAT_R64G64_SINT = VkFormat 114
pattern VK_FORMAT_R64G64_SFLOAT = VkFormat 115
pattern VK_FORMAT_R64G64B64_UINT = VkFormat 116
pattern VK_FORMAT_R64G64B64_SINT = VkFormat 117
pattern VK_FORMAT_R64G64B64_SFLOAT = VkFormat 118
pattern VK_FORMAT_R64G64B64A64_UINT = VkFormat 119
pattern VK_FORMAT_R64G64B64A64_SINT = VkFormat 120
pattern VK_FORMAT_R64G64B64A64_SFLOAT = VkFormat 121
pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 = VkFormat 122
pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VkFormat 123
pattern VK_FORMAT_D16_UNORM = VkFormat 124
pattern VK_FORMAT_X8_D24_UNORM_PACK32 = VkFormat 125
pattern VK_FORMAT_D32_SFLOAT = VkFormat 126
pattern VK_FORMAT_S8_UINT = VkFormat 127
pattern VK_FORMAT_D16_UNORM_S8_UINT = VkFormat 128
pattern VK_FORMAT_D24_UNORM_S8_UINT = VkFormat 129
pattern VK_FORMAT_D32_SFLOAT_S8_UINT = VkFormat 130
pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK = VkFormat 131
pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK = VkFormat 132
pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK = VkFormat 133
pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK = VkFormat 134
pattern VK_FORMAT_BC2_UNORM_BLOCK = VkFormat 135
pattern VK_FORMAT_BC2_SRGB_BLOCK = VkFormat 136
pattern VK_FORMAT_BC3_UNORM_BLOCK = VkFormat 137
pattern VK_FORMAT_BC3_SRGB_BLOCK = VkFormat 138
pattern VK_FORMAT_BC4_UNORM_BLOCK = VkFormat 139
pattern VK_FORMAT_BC4_SNORM_BLOCK = VkFormat 140
pattern VK_FORMAT_BC5_UNORM_BLOCK = VkFormat 141
pattern VK_FORMAT_BC5_SNORM_BLOCK = VkFormat 142
pattern VK_FORMAT_BC6H_UFLOAT_BLOCK = VkFormat 143
pattern VK_FORMAT_BC6H_SFLOAT_BLOCK = VkFormat 144
pattern VK_FORMAT_BC7_UNORM_BLOCK = VkFormat 145
pattern VK_FORMAT_BC7_SRGB_BLOCK = VkFormat 146
pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VkFormat 147
pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VkFormat 148
pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = VkFormat 149
pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VkFormat 150
pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = VkFormat 151
pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VkFormat 152
pattern VK_FORMAT_EAC_R11_UNORM_BLOCK = VkFormat 153
pattern VK_FORMAT_EAC_R11_SNORM_BLOCK = VkFormat 154
pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK = VkFormat 155
pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK = VkFormat 156
pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK = VkFormat 157
pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK = VkFormat 158
pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK = VkFormat 159
pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK = VkFormat 160
pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK = VkFormat 161
pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK = VkFormat 162
pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK = VkFormat 163
pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK = VkFormat 164
pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK = VkFormat 165
pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK = VkFormat 166
pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK = VkFormat 167
pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK = VkFormat 168
pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK = VkFormat 169
pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK = VkFormat 170
pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK = VkFormat 171
pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK = VkFormat 172
pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK = VkFormat 173
pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK = VkFormat 174
pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK = VkFormat 175
pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK = VkFormat 176
pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK = VkFormat 177
pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK = VkFormat 178
pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK = VkFormat 179
pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK = VkFormat 180
pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK = VkFormat 181
pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK = VkFormat 182
pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK = VkFormat 183
pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK = VkFormat 184
-- ** VkStructureType
-- | Structure type enumerant
newtype VkStructureType = VkStructureType Int32
deriving (Eq, Storable)
pattern VK_STRUCTURE_TYPE_APPLICATION_INFO = VkStructureType 0
pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = VkStructureType 1
pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = VkStructureType 2
pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = VkStructureType 3
pattern VK_STRUCTURE_TYPE_SUBMIT_INFO = VkStructureType 4
pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = VkStructureType 5
pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = VkStructureType 6
pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = VkStructureType 7
pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = VkStructureType 8
pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = VkStructureType 9
pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = VkStructureType 10
pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = VkStructureType 11
pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = VkStructureType 12
pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = VkStructureType 13
pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = VkStructureType 14
pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = VkStructureType 15
pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = VkStructureType 16
pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = VkStructureType 17
pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = VkStructureType 18
pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = VkStructureType 19
pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = VkStructureType 20
pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = VkStructureType 21
pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = VkStructureType 22
pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = VkStructureType 23
pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = VkStructureType 24
pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = VkStructureType 25
pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = VkStructureType 26
pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = VkStructureType 27
pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = VkStructureType 28
pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = VkStructureType 29
pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = VkStructureType 30
pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = VkStructureType 31
pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = VkStructureType 32
pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = VkStructureType 33
pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = VkStructureType 34
pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = VkStructureType 35
pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = VkStructureType 36
pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = VkStructureType 37
pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = VkStructureType 38
pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = VkStructureType 39
pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = VkStructureType 40
pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = VkStructureType 41
pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = VkStructureType 42
pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = VkStructureType 43
pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = VkStructureType 44
pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = VkStructureType 45
pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER = VkStructureType 46
pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = VkStructureType 47
pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = VkStructureType 48
-- ** VkSubpassContents
newtype VkSubpassContents = VkSubpassContents Int32
deriving (Eq, Storable)
pattern VK_SUBPASS_CONTENTS_INLINE = VkSubpassContents 0
pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = VkSubpassContents 1
-- ** VkResult
-- | Error and return codes
newtype VkResult = VkResult Int32
deriving (Eq, Storable)
-- | Command completed successfully
pattern VK_SUCCESS = VkResult 0
-- | A fence or query has not yet completed
pattern VK_NOT_READY = VkResult 1
-- | A wait operation has not completed in the specified time
pattern VK_TIMEOUT = VkResult 2
-- | An event is signaled
pattern VK_EVENT_SET = VkResult 3
-- | An event is unsignalled
pattern VK_EVENT_RESET = VkResult 4
-- | A return array was too small for the resul
pattern VK_INCOMPLETE = VkResult 5
-- | A host memory allocation has failed
pattern VK_ERROR_OUT_OF_HOST_MEMORY = VkResult (-1)
-- | A device memory allocation has failed
pattern VK_ERROR_OUT_OF_DEVICE_MEMORY = VkResult (-2)
-- | The logical device has been lost. See <<devsandqueues-lost-device>>
pattern VK_ERROR_INITIALIZATION_FAILED = VkResult (-3)
-- | Initialization of a object has failed
pattern VK_ERROR_DEVICE_LOST = VkResult (-4)
-- | Mapping of a memory object has failed
pattern VK_ERROR_MEMORY_MAP_FAILED = VkResult (-5)
-- | Layer specified does not exist
pattern VK_ERROR_LAYER_NOT_PRESENT = VkResult (-6)
-- | Extension specified does not exist
pattern VK_ERROR_EXTENSION_NOT_PRESENT = VkResult (-7)
-- | Requested feature is not available on this device
pattern VK_ERROR_FEATURE_NOT_PRESENT = VkResult (-8)
-- | Unable to find a Vulkan driver
pattern VK_ERROR_INCOMPATIBLE_DRIVER = VkResult (-9)
-- | Too many objects of the type have already been created
pattern VK_ERROR_TOO_MANY_OBJECTS = VkResult (-10)
-- | Requested format is not supported on this device
pattern VK_ERROR_FORMAT_NOT_SUPPORTED = VkResult (-11)
-- ** VkDynamicState
newtype VkDynamicState = VkDynamicState Int32
deriving (Eq, Storable)
pattern VK_DYNAMIC_STATE_VIEWPORT = VkDynamicState 0
pattern VK_DYNAMIC_STATE_SCISSOR = VkDynamicState 1
pattern VK_DYNAMIC_STATE_LINE_WIDTH = VkDynamicState 2
pattern VK_DYNAMIC_STATE_DEPTH_BIAS = VkDynamicState 3
pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS = VkDynamicState 4
pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS = VkDynamicState 5
pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = VkDynamicState 6
pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = VkDynamicState 7
pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE = VkDynamicState 8
-- ** VkPresentModeKHR
newtype VkPresentModeKHR = VkPresentModeKHR Int32
deriving (Eq, Storable)
pattern VK_PRESENT_MODE_IMMEDIATE_KHR = VkPresentModeKHR 0
pattern VK_PRESENT_MODE_MAILBOX_KHR = VkPresentModeKHR 1
pattern VK_PRESENT_MODE_FIFO_KHR = VkPresentModeKHR 2
pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR = VkPresentModeKHR 3
-- ** VkColorSpaceKHR
newtype VkColorSpaceKHR = VkColorSpaceKHR Int32
deriving (Eq, Storable)
pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR = VkColorSpaceKHR 0
-- ** VkDebugReportObjectTypeEXT
newtype VkDebugReportObjectTypeEXT = VkDebugReportObjectTypeEXT Int32
deriving (Eq, Storable)
pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = VkDebugReportObjectTypeEXT 0
pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = VkDebugReportObjectTypeEXT 1
pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = VkDebugReportObjectTypeEXT 2
pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = VkDebugReportObjectTypeEXT 3
pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = VkDebugReportObjectTypeEXT 4
pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = VkDebugReportObjectTypeEXT 5
pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = VkDebugReportObjectTypeEXT 6
pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = VkDebugReportObjectTypeEXT 7
pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = VkDebugReportObjectTypeEXT 8
pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = VkDebugReportObjectTypeEXT 9
pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = VkDebugReportObjectTypeEXT 10
pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = VkDebugReportObjectTypeEXT 11
pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = VkDebugReportObjectTypeEXT 12
pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = VkDebugReportObjectTypeEXT 13
pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = VkDebugReportObjectTypeEXT 14
pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = VkDebugReportObjectTypeEXT 15
pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = VkDebugReportObjectTypeEXT 16
pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = VkDebugReportObjectTypeEXT 17
pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = VkDebugReportObjectTypeEXT 18
pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = VkDebugReportObjectTypeEXT 19
pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = VkDebugReportObjectTypeEXT 20
pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = VkDebugReportObjectTypeEXT 21
pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = VkDebugReportObjectTypeEXT 22
pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = VkDebugReportObjectTypeEXT 23
pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = VkDebugReportObjectTypeEXT 24
pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = VkDebugReportObjectTypeEXT 25
pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = VkDebugReportObjectTypeEXT 26
pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = VkDebugReportObjectTypeEXT 27
pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VkDebugReportObjectTypeEXT 28
-- ** VkDebugReportErrorEXT
newtype VkDebugReportErrorEXT = VkDebugReportErrorEXT Int32
deriving (Eq, Storable)
pattern VK_DEBUG_REPORT_ERROR_NONE_EXT = VkDebugReportErrorEXT 0
pattern VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = VkDebugReportErrorEXT 1
-- * Struct Types
data VkOffset2D =
VkOffset2D{ vkX :: Int32
, vkY :: Int32
}
deriving (Eq)
instance Storable VkOffset2D where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkOffset2D <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkOffset2D))
*> poke (ptr `plusPtr` 4) (vkY (poked :: VkOffset2D))
data VkOffset3D =
VkOffset3D{ vkX :: Int32
, vkY :: Int32
, vkZ :: Int32
}
deriving (Eq)
instance Storable VkOffset3D where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkOffset3D <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkOffset3D))
*> poke (ptr `plusPtr` 4) (vkY (poked :: VkOffset3D))
*> poke (ptr `plusPtr` 8) (vkZ (poked :: VkOffset3D))
data VkExtent2D =
VkExtent2D{ vkWidth :: Word32
, vkHeight :: Word32
}
deriving (Eq)
instance Storable VkExtent2D where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkExtent2D <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkWidth (poked :: VkExtent2D))
*> poke (ptr `plusPtr` 4) (vkHeight (poked :: VkExtent2D))
data VkExtent3D =
VkExtent3D{ vkWidth :: Word32
, vkHeight :: Word32
, vkDepth :: Word32
}
deriving (Eq)
instance Storable VkExtent3D where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkExtent3D <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkWidth (poked :: VkExtent3D))
*> poke (ptr `plusPtr` 4) (vkHeight (poked :: VkExtent3D))
*> poke (ptr `plusPtr` 8) (vkDepth (poked :: VkExtent3D))
data VkViewport =
VkViewport{ vkX :: CFloat
, vkY :: CFloat
, vkWidth :: CFloat
, vkHeight :: CFloat
, vkMinDepth :: CFloat
, vkMaxDepth :: CFloat
}
deriving (Eq)
instance Storable VkViewport where
sizeOf _ = 24
alignment _ = 4
peek ptr = VkViewport <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkViewport))
*> poke (ptr `plusPtr` 4) (vkY (poked :: VkViewport))
*> poke (ptr `plusPtr` 8) (vkWidth (poked :: VkViewport))
*> poke (ptr `plusPtr` 12) (vkHeight (poked :: VkViewport))
*> poke (ptr `plusPtr` 16) (vkMinDepth (poked :: VkViewport))
*> poke (ptr `plusPtr` 20) (vkMaxDepth (poked :: VkViewport))
data VkRect2D =
VkRect2D{ vkOffset :: VkOffset2D
, vkExtent :: VkExtent2D
}
deriving (Eq)
instance Storable VkRect2D where
sizeOf _ = 16
alignment _ = 4
peek ptr = VkRect2D <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkRect2D))
*> poke (ptr `plusPtr` 8) (vkExtent (poked :: VkRect2D))
data VkRect3D =
VkRect3D{ vkOffset :: VkOffset3D
, vkExtent :: VkExtent3D
}
deriving (Eq)
instance Storable VkRect3D where
sizeOf _ = 24
alignment _ = 4
peek ptr = VkRect3D <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 12)
poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkRect3D))
*> poke (ptr `plusPtr` 12) (vkExtent (poked :: VkRect3D))
data VkClearRect =
VkClearRect{ vkRect :: VkRect2D
, vkBaseArrayLayer :: Word32
, vkLayerCount :: Word32
}
deriving (Eq)
instance Storable VkClearRect where
sizeOf _ = 24
alignment _ = 4
peek ptr = VkClearRect <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
poke ptr poked = poke (ptr `plusPtr` 0) (vkRect (poked :: VkClearRect))
*> poke (ptr `plusPtr` 16) (vkBaseArrayLayer (poked :: VkClearRect))
*> poke (ptr `plusPtr` 20) (vkLayerCount (poked :: VkClearRect))
data VkComponentMapping =
VkComponentMapping{ vkR :: VkComponentSwizzle
, vkG :: VkComponentSwizzle
, vkB :: VkComponentSwizzle
, vkA :: VkComponentSwizzle
}
deriving (Eq)
instance Storable VkComponentMapping where
sizeOf _ = 16
alignment _ = 4
peek ptr = VkComponentMapping <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
poke ptr poked = poke (ptr `plusPtr` 0) (vkR (poked :: VkComponentMapping))
*> poke (ptr `plusPtr` 4) (vkG (poked :: VkComponentMapping))
*> poke (ptr `plusPtr` 8) (vkB (poked :: VkComponentMapping))
*> poke (ptr `plusPtr` 12) (vkA (poked :: VkComponentMapping))
data VkPhysicalDeviceProperties =
VkPhysicalDeviceProperties{ vkApiVersion :: Word32
, vkDriverVersion :: Word32
, vkVendorID :: Word32
, vkDeviceID :: Word32
, vkDeviceType :: VkPhysicalDeviceType
, vkDeviceName :: Vec (ToPeano VK_MAX_PHYSICAL_DEVICE_NAME_SIZE) CChar
, vkPipelineCacheUUID :: Vec (ToPeano VK_UUID_SIZE) Word8
, vkLimits :: VkPhysicalDeviceLimits
, vkSparseProperties :: VkPhysicalDeviceSparseProperties
}
deriving (Eq)
instance Storable VkPhysicalDeviceProperties where
sizeOf _ = 824
alignment _ = 8
peek ptr = VkPhysicalDeviceProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 276)
<*> peek (ptr `plusPtr` 296)
<*> peek (ptr `plusPtr` 800)
poke ptr poked = poke (ptr `plusPtr` 0) (vkApiVersion (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 4) (vkDriverVersion (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 8) (vkVendorID (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 12) (vkDeviceID (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 16) (vkDeviceType (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 20) (vkDeviceName (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 276) (vkPipelineCacheUUID (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 296) (vkLimits (poked :: VkPhysicalDeviceProperties))
*> poke (ptr `plusPtr` 800) (vkSparseProperties (poked :: VkPhysicalDeviceProperties))
data VkExtensionProperties =
VkExtensionProperties{ vkExtensionName :: Vec (ToPeano VK_MAX_EXTENSION_NAME_SIZE) CChar
, vkSpecVersion :: Word32
}
deriving (Eq)
instance Storable VkExtensionProperties where
sizeOf _ = 260
alignment _ = 4
peek ptr = VkExtensionProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 256)
poke ptr poked = poke (ptr `plusPtr` 0) (vkExtensionName (poked :: VkExtensionProperties))
*> poke (ptr `plusPtr` 256) (vkSpecVersion (poked :: VkExtensionProperties))
data VkLayerProperties =
VkLayerProperties{ vkLayerName :: Vec (ToPeano VK_MAX_EXTENSION_NAME_SIZE) CChar
, vkSpecVersion :: Word32
, vkImplementationVersion :: Word32
, vkDescription :: Vec (ToPeano VK_MAX_DESCRIPTION_SIZE) CChar
}
deriving (Eq)
instance Storable VkLayerProperties where
sizeOf _ = 520
alignment _ = 4
peek ptr = VkLayerProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 256)
<*> peek (ptr `plusPtr` 260)
<*> peek (ptr `plusPtr` 264)
poke ptr poked = poke (ptr `plusPtr` 0) (vkLayerName (poked :: VkLayerProperties))
*> poke (ptr `plusPtr` 256) (vkSpecVersion (poked :: VkLayerProperties))
*> poke (ptr `plusPtr` 260) (vkImplementationVersion (poked :: VkLayerProperties))
*> poke (ptr `plusPtr` 264) (vkDescription (poked :: VkLayerProperties))
data VkApplicationInfo =
VkApplicationInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkPApplicationName :: Ptr CChar
, vkApplicationVersion :: Word32
, vkPEngineName :: Ptr CChar
, vkEngineVersion :: Word32
, vkApiVersion :: Word32
}
deriving (Eq)
instance Storable VkApplicationInfo where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkApplicationInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkApplicationInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkApplicationInfo))
*> poke (ptr `plusPtr` 16) (vkPApplicationName (poked :: VkApplicationInfo))
*> poke (ptr `plusPtr` 24) (vkApplicationVersion (poked :: VkApplicationInfo))
*> poke (ptr `plusPtr` 32) (vkPEngineName (poked :: VkApplicationInfo))
*> poke (ptr `plusPtr` 40) (vkEngineVersion (poked :: VkApplicationInfo))
*> poke (ptr `plusPtr` 44) (vkApiVersion (poked :: VkApplicationInfo))
data VkAllocationCallbacks =
VkAllocationCallbacks{ vkPUserData :: Ptr Void
, vkPfnAllocation :: PFN_vkAllocationFunction
, vkPfnReallocation :: PFN_vkReallocationFunction
, vkPfnFree :: PFN_vkFreeFunction
, vkPfnInternalAllocation :: PFN_vkInternalAllocationNotification
, vkPfnInternalFree :: PFN_vkInternalFreeNotification
}
deriving (Eq)
instance Storable VkAllocationCallbacks where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkAllocationCallbacks <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkPUserData (poked :: VkAllocationCallbacks))
*> poke (ptr `plusPtr` 8) (vkPfnAllocation (poked :: VkAllocationCallbacks))
*> poke (ptr `plusPtr` 16) (vkPfnReallocation (poked :: VkAllocationCallbacks))
*> poke (ptr `plusPtr` 24) (vkPfnFree (poked :: VkAllocationCallbacks))
*> poke (ptr `plusPtr` 32) (vkPfnInternalAllocation (poked :: VkAllocationCallbacks))
*> poke (ptr `plusPtr` 40) (vkPfnInternalFree (poked :: VkAllocationCallbacks))
data VkDeviceQueueCreateInfo =
VkDeviceQueueCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDeviceQueueCreateFlags
, vkQueueFamilyIndex :: Word32
, vkQueueCount :: Word32
, vkPQueuePriorities :: Ptr CFloat
}
deriving (Eq)
instance Storable VkDeviceQueueCreateInfo where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkDeviceQueueCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceQueueCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceQueueCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceQueueCreateInfo))
*> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkDeviceQueueCreateInfo))
*> poke (ptr `plusPtr` 24) (vkQueueCount (poked :: VkDeviceQueueCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPQueuePriorities (poked :: VkDeviceQueueCreateInfo))
data VkDeviceCreateInfo =
VkDeviceCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDeviceCreateFlags
, vkQueueCreateInfoCount :: Word32
, vkPQueueCreateInfos :: Ptr VkDeviceQueueCreateInfo
, vkEnabledLayerCount :: Word32
, vkPpEnabledLayerNames :: Ptr (Ptr CChar)
, vkEnabledExtensionCount :: Word32
, vkPpEnabledExtensionNames :: Ptr (Ptr CChar)
, vkPEnabledFeatures :: Ptr VkPhysicalDeviceFeatures
}
deriving (Eq)
instance Storable VkDeviceCreateInfo where
sizeOf _ = 72
alignment _ = 8
peek ptr = VkDeviceCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 64)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 20) (vkQueueCreateInfoCount (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPQueueCreateInfos (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 32) (vkEnabledLayerCount (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPpEnabledLayerNames (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 48) (vkEnabledExtensionCount (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 56) (vkPpEnabledExtensionNames (poked :: VkDeviceCreateInfo))
*> poke (ptr `plusPtr` 64) (vkPEnabledFeatures (poked :: VkDeviceCreateInfo))
data VkInstanceCreateInfo =
VkInstanceCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkInstanceCreateFlags
, vkPApplicationInfo :: Ptr VkApplicationInfo
, vkEnabledLayerCount :: Word32
, vkPpEnabledLayerNames :: Ptr (Ptr CChar)
, vkEnabledExtensionCount :: Word32
, vkPpEnabledExtensionNames :: Ptr (Ptr CChar)
}
deriving (Eq)
instance Storable VkInstanceCreateInfo where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkInstanceCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPApplicationInfo (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 32) (vkEnabledLayerCount (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPpEnabledLayerNames (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 48) (vkEnabledExtensionCount (poked :: VkInstanceCreateInfo))
*> poke (ptr `plusPtr` 56) (vkPpEnabledExtensionNames (poked :: VkInstanceCreateInfo))
data VkQueueFamilyProperties =
VkQueueFamilyProperties{ vkQueueFlags :: VkQueueFlags
, vkQueueCount :: Word32
, vkTimestampValidBits :: Word32
, vkMinImageTransferGranularity :: VkExtent3D
}
deriving (Eq)
instance Storable VkQueueFamilyProperties where
sizeOf _ = 24
alignment _ = 4
peek ptr = VkQueueFamilyProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
poke ptr poked = poke (ptr `plusPtr` 0) (vkQueueFlags (poked :: VkQueueFamilyProperties))
*> poke (ptr `plusPtr` 4) (vkQueueCount (poked :: VkQueueFamilyProperties))
*> poke (ptr `plusPtr` 8) (vkTimestampValidBits (poked :: VkQueueFamilyProperties))
*> poke (ptr `plusPtr` 12) (vkMinImageTransferGranularity (poked :: VkQueueFamilyProperties))
data VkPhysicalDeviceMemoryProperties =
VkPhysicalDeviceMemoryProperties{ vkMemoryTypeCount :: Word32
, vkMemoryTypes :: Vec (ToPeano VK_MAX_MEMORY_TYPES) VkMemoryType
, vkMemoryHeapCount :: Word32
, vkMemoryHeaps :: Vec (ToPeano VK_MAX_MEMORY_HEAPS) VkMemoryHeap
}
deriving (Eq)
instance Storable VkPhysicalDeviceMemoryProperties where
sizeOf _ = 520
alignment _ = 8
peek ptr = VkPhysicalDeviceMemoryProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 260)
<*> peek (ptr `plusPtr` 264)
poke ptr poked = poke (ptr `plusPtr` 0) (vkMemoryTypeCount (poked :: VkPhysicalDeviceMemoryProperties))
*> poke (ptr `plusPtr` 4) (vkMemoryTypes (poked :: VkPhysicalDeviceMemoryProperties))
*> poke (ptr `plusPtr` 260) (vkMemoryHeapCount (poked :: VkPhysicalDeviceMemoryProperties))
*> poke (ptr `plusPtr` 264) (vkMemoryHeaps (poked :: VkPhysicalDeviceMemoryProperties))
data VkMemoryAllocateInfo =
VkMemoryAllocateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkAllocationSize :: VkDeviceSize
, vkMemoryTypeIndex :: Word32
}
deriving (Eq)
instance Storable VkMemoryAllocateInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkMemoryAllocateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryAllocateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryAllocateInfo))
*> poke (ptr `plusPtr` 16) (vkAllocationSize (poked :: VkMemoryAllocateInfo))
*> poke (ptr `plusPtr` 24) (vkMemoryTypeIndex (poked :: VkMemoryAllocateInfo))
data VkMemoryRequirements =
VkMemoryRequirements{ vkSize :: VkDeviceSize
, vkAlignment :: VkDeviceSize
, vkMemoryTypeBits :: Word32
}
deriving (Eq)
instance Storable VkMemoryRequirements where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkMemoryRequirements <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSize (poked :: VkMemoryRequirements))
*> poke (ptr `plusPtr` 8) (vkAlignment (poked :: VkMemoryRequirements))
*> poke (ptr `plusPtr` 16) (vkMemoryTypeBits (poked :: VkMemoryRequirements))
data VkSparseImageFormatProperties =
VkSparseImageFormatProperties{ vkAspectMask :: VkImageAspectFlags
, vkImageGranularity :: VkExtent3D
, vkFlags :: VkSparseImageFormatFlags
}
deriving (Eq)
instance Storable VkSparseImageFormatProperties where
sizeOf _ = 20
alignment _ = 4
peek ptr = VkSparseImageFormatProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkSparseImageFormatProperties))
*> poke (ptr `plusPtr` 4) (vkImageGranularity (poked :: VkSparseImageFormatProperties))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSparseImageFormatProperties))
data VkSparseImageMemoryRequirements =
VkSparseImageMemoryRequirements{ vkFormatProperties :: VkSparseImageFormatProperties
, vkImageMipTailFirstLod :: Word32
, vkImageMipTailSize :: VkDeviceSize
, vkImageMipTailOffset :: VkDeviceSize
, vkImageMipTailStride :: VkDeviceSize
}
deriving (Eq)
instance Storable VkSparseImageMemoryRequirements where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkSparseImageMemoryRequirements <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkFormatProperties (poked :: VkSparseImageMemoryRequirements))
*> poke (ptr `plusPtr` 20) (vkImageMipTailFirstLod (poked :: VkSparseImageMemoryRequirements))
*> poke (ptr `plusPtr` 24) (vkImageMipTailSize (poked :: VkSparseImageMemoryRequirements))
*> poke (ptr `plusPtr` 32) (vkImageMipTailOffset (poked :: VkSparseImageMemoryRequirements))
*> poke (ptr `plusPtr` 40) (vkImageMipTailStride (poked :: VkSparseImageMemoryRequirements))
data VkMemoryType =
VkMemoryType{ vkPropertyFlags :: VkMemoryPropertyFlags
, vkHeapIndex :: Word32
}
deriving (Eq)
instance Storable VkMemoryType where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkMemoryType <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkPropertyFlags (poked :: VkMemoryType))
*> poke (ptr `plusPtr` 4) (vkHeapIndex (poked :: VkMemoryType))
data VkMemoryHeap =
VkMemoryHeap{ vkSize :: VkDeviceSize
, vkFlags :: VkMemoryHeapFlags
}
deriving (Eq)
instance Storable VkMemoryHeap where
sizeOf _ = 16
alignment _ = 8
peek ptr = VkMemoryHeap <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSize (poked :: VkMemoryHeap))
*> poke (ptr `plusPtr` 8) (vkFlags (poked :: VkMemoryHeap))
data VkMappedMemoryRange =
VkMappedMemoryRange{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkMemory :: VkDeviceMemory
, vkOffset :: VkDeviceSize
, vkSize :: VkDeviceSize
}
deriving (Eq)
instance Storable VkMappedMemoryRange where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkMappedMemoryRange <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMappedMemoryRange))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMappedMemoryRange))
*> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkMappedMemoryRange))
*> poke (ptr `plusPtr` 24) (vkOffset (poked :: VkMappedMemoryRange))
*> poke (ptr `plusPtr` 32) (vkSize (poked :: VkMappedMemoryRange))
data VkFormatProperties =
VkFormatProperties{ vkLinearTilingFeatures :: VkFormatFeatureFlags
, vkOptimalTilingFeatures :: VkFormatFeatureFlags
, vkBufferFeatures :: VkFormatFeatureFlags
}
deriving (Eq)
instance Storable VkFormatProperties where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkFormatProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkLinearTilingFeatures (poked :: VkFormatProperties))
*> poke (ptr `plusPtr` 4) (vkOptimalTilingFeatures (poked :: VkFormatProperties))
*> poke (ptr `plusPtr` 8) (vkBufferFeatures (poked :: VkFormatProperties))
data VkImageFormatProperties =
VkImageFormatProperties{ vkMaxExtent :: VkExtent3D
, vkMaxMipLevels :: Word32
, vkMaxArrayLayers :: Word32
, vkSampleCounts :: VkSampleCountFlags
, vkMaxResourceSize :: VkDeviceSize
}
deriving (Eq)
instance Storable VkImageFormatProperties where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkImageFormatProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkMaxExtent (poked :: VkImageFormatProperties))
*> poke (ptr `plusPtr` 12) (vkMaxMipLevels (poked :: VkImageFormatProperties))
*> poke (ptr `plusPtr` 16) (vkMaxArrayLayers (poked :: VkImageFormatProperties))
*> poke (ptr `plusPtr` 20) (vkSampleCounts (poked :: VkImageFormatProperties))
*> poke (ptr `plusPtr` 24) (vkMaxResourceSize (poked :: VkImageFormatProperties))
data VkDescriptorBufferInfo =
VkDescriptorBufferInfo{ vkBuffer :: VkBuffer
, vkOffset :: VkDeviceSize
, vkRange :: VkDeviceSize
}
deriving (Eq)
instance Storable VkDescriptorBufferInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkDescriptorBufferInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkBuffer (poked :: VkDescriptorBufferInfo))
*> poke (ptr `plusPtr` 8) (vkOffset (poked :: VkDescriptorBufferInfo))
*> poke (ptr `plusPtr` 16) (vkRange (poked :: VkDescriptorBufferInfo))
data VkDescriptorImageInfo =
VkDescriptorImageInfo{ vkSampler :: VkSampler
, vkImageView :: VkImageView
, vkImageLayout :: VkImageLayout
}
deriving (Eq)
instance Storable VkDescriptorImageInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkDescriptorImageInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSampler (poked :: VkDescriptorImageInfo))
*> poke (ptr `plusPtr` 8) (vkImageView (poked :: VkDescriptorImageInfo))
*> poke (ptr `plusPtr` 16) (vkImageLayout (poked :: VkDescriptorImageInfo))
data VkWriteDescriptorSet =
VkWriteDescriptorSet{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkDstSet :: VkDescriptorSet
, vkDstBinding :: Word32
, vkDstArrayElement :: Word32
, vkDescriptorCount :: Word32
, vkDescriptorType :: VkDescriptorType
, vkPImageInfo :: Ptr VkDescriptorImageInfo
, vkPBufferInfo :: Ptr VkDescriptorBufferInfo
, vkPTexelBufferView :: Ptr VkBufferView
}
deriving (Eq)
instance Storable VkWriteDescriptorSet where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkWriteDescriptorSet <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 16) (vkDstSet (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 24) (vkDstBinding (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 28) (vkDstArrayElement (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 32) (vkDescriptorCount (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 36) (vkDescriptorType (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 40) (vkPImageInfo (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 48) (vkPBufferInfo (poked :: VkWriteDescriptorSet))
*> poke (ptr `plusPtr` 56) (vkPTexelBufferView (poked :: VkWriteDescriptorSet))
data VkCopyDescriptorSet =
VkCopyDescriptorSet{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkSrcSet :: VkDescriptorSet
, vkSrcBinding :: Word32
, vkSrcArrayElement :: Word32
, vkDstSet :: VkDescriptorSet
, vkDstBinding :: Word32
, vkDstArrayElement :: Word32
, vkDescriptorCount :: Word32
}
deriving (Eq)
instance Storable VkCopyDescriptorSet where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkCopyDescriptorSet <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 16) (vkSrcSet (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 24) (vkSrcBinding (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 28) (vkSrcArrayElement (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 32) (vkDstSet (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 40) (vkDstBinding (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 44) (vkDstArrayElement (poked :: VkCopyDescriptorSet))
*> poke (ptr `plusPtr` 48) (vkDescriptorCount (poked :: VkCopyDescriptorSet))
data VkBufferCreateInfo =
VkBufferCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkBufferCreateFlags
, vkSize :: VkDeviceSize
, vkUsage :: VkBufferUsageFlags
, vkSharingMode :: VkSharingMode
, vkQueueFamilyIndexCount :: Word32
, vkPQueueFamilyIndices :: Ptr Word32
}
deriving (Eq)
instance Storable VkBufferCreateInfo where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkBufferCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 24) (vkSize (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 32) (vkUsage (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 36) (vkSharingMode (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 40) (vkQueueFamilyIndexCount (poked :: VkBufferCreateInfo))
*> poke (ptr `plusPtr` 48) (vkPQueueFamilyIndices (poked :: VkBufferCreateInfo))
data VkBufferViewCreateInfo =
VkBufferViewCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkBufferViewCreateFlags
, vkBuffer :: VkBuffer
, vkFormat :: VkFormat
, vkOffset :: VkDeviceSize
, vkRange :: VkDeviceSize
}
deriving (Eq)
instance Storable VkBufferViewCreateInfo where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkBufferViewCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferViewCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferViewCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkBufferViewCreateInfo))
*> poke (ptr `plusPtr` 24) (vkBuffer (poked :: VkBufferViewCreateInfo))
*> poke (ptr `plusPtr` 32) (vkFormat (poked :: VkBufferViewCreateInfo))
*> poke (ptr `plusPtr` 40) (vkOffset (poked :: VkBufferViewCreateInfo))
*> poke (ptr `plusPtr` 48) (vkRange (poked :: VkBufferViewCreateInfo))
data VkImageSubresource =
VkImageSubresource{ vkAspectMask :: VkImageAspectFlags
, vkMipLevel :: Word32
, vkArrayLayer :: Word32
}
deriving (Eq)
instance Storable VkImageSubresource where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkImageSubresource <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresource))
*> poke (ptr `plusPtr` 4) (vkMipLevel (poked :: VkImageSubresource))
*> poke (ptr `plusPtr` 8) (vkArrayLayer (poked :: VkImageSubresource))
data VkImageSubresourceLayers =
VkImageSubresourceLayers{ vkAspectMask :: VkImageAspectFlags
, vkMipLevel :: Word32
, vkBaseArrayLayer :: Word32
, vkLayerCount :: Word32
}
deriving (Eq)
instance Storable VkImageSubresourceLayers where
sizeOf _ = 16
alignment _ = 4
peek ptr = VkImageSubresourceLayers <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresourceLayers))
*> poke (ptr `plusPtr` 4) (vkMipLevel (poked :: VkImageSubresourceLayers))
*> poke (ptr `plusPtr` 8) (vkBaseArrayLayer (poked :: VkImageSubresourceLayers))
*> poke (ptr `plusPtr` 12) (vkLayerCount (poked :: VkImageSubresourceLayers))
data VkImageSubresourceRange =
VkImageSubresourceRange{ vkAspectMask :: VkImageAspectFlags
, vkBaseMipLevel :: Word32
, vkLevelCount :: Word32
, vkBaseArrayLayer :: Word32
, vkLayerCount :: Word32
}
deriving (Eq)
instance Storable VkImageSubresourceRange where
sizeOf _ = 20
alignment _ = 4
peek ptr = VkImageSubresourceRange <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkImageSubresourceRange))
*> poke (ptr `plusPtr` 4) (vkBaseMipLevel (poked :: VkImageSubresourceRange))
*> poke (ptr `plusPtr` 8) (vkLevelCount (poked :: VkImageSubresourceRange))
*> poke (ptr `plusPtr` 12) (vkBaseArrayLayer (poked :: VkImageSubresourceRange))
*> poke (ptr `plusPtr` 16) (vkLayerCount (poked :: VkImageSubresourceRange))
data VkMemoryBarrier =
VkMemoryBarrier{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkSrcAccessMask :: VkAccessFlags
, vkDstAccessMask :: VkAccessFlags
}
deriving (Eq)
instance Storable VkMemoryBarrier where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkMemoryBarrier <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkMemoryBarrier))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkMemoryBarrier))
*> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkMemoryBarrier))
*> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkMemoryBarrier))
data VkBufferMemoryBarrier =
VkBufferMemoryBarrier{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkSrcAccessMask :: VkAccessFlags
, vkDstAccessMask :: VkAccessFlags
, vkSrcQueueFamilyIndex :: Word32
, vkDstQueueFamilyIndex :: Word32
, vkBuffer :: VkBuffer
, vkOffset :: VkDeviceSize
, vkSize :: VkDeviceSize
}
deriving (Eq)
instance Storable VkBufferMemoryBarrier where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkBufferMemoryBarrier <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 24) (vkSrcQueueFamilyIndex (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 28) (vkDstQueueFamilyIndex (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 32) (vkBuffer (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 40) (vkOffset (poked :: VkBufferMemoryBarrier))
*> poke (ptr `plusPtr` 48) (vkSize (poked :: VkBufferMemoryBarrier))
data VkImageMemoryBarrier =
VkImageMemoryBarrier{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkSrcAccessMask :: VkAccessFlags
, vkDstAccessMask :: VkAccessFlags
, vkOldLayout :: VkImageLayout
, vkNewLayout :: VkImageLayout
, vkSrcQueueFamilyIndex :: Word32
, vkDstQueueFamilyIndex :: Word32
, vkImage :: VkImage
, vkSubresourceRange :: VkImageSubresourceRange
}
deriving (Eq)
instance Storable VkImageMemoryBarrier where
sizeOf _ = 72
alignment _ = 8
peek ptr = VkImageMemoryBarrier <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 24) (vkOldLayout (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 28) (vkNewLayout (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 32) (vkSrcQueueFamilyIndex (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 36) (vkDstQueueFamilyIndex (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 40) (vkImage (poked :: VkImageMemoryBarrier))
*> poke (ptr `plusPtr` 48) (vkSubresourceRange (poked :: VkImageMemoryBarrier))
data VkImageCreateInfo =
VkImageCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkImageCreateFlags
, vkImageType :: VkImageType
, vkFormat :: VkFormat
, vkExtent :: VkExtent3D
, vkMipLevels :: Word32
, vkArrayLayers :: Word32
, vkSamples :: VkSampleCountFlagBits
, vkTiling :: VkImageTiling
, vkUsage :: VkImageUsageFlags
, vkSharingMode :: VkSharingMode
, vkQueueFamilyIndexCount :: Word32
, vkPQueueFamilyIndices :: Ptr Word32
, vkInitialLayout :: VkImageLayout
}
deriving (Eq)
instance Storable VkImageCreateInfo where
sizeOf _ = 88
alignment _ = 8
peek ptr = VkImageCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 60)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 80)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 20) (vkImageType (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 24) (vkFormat (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 28) (vkExtent (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 40) (vkMipLevels (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 44) (vkArrayLayers (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 48) (vkSamples (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 52) (vkTiling (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 56) (vkUsage (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 60) (vkSharingMode (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 64) (vkQueueFamilyIndexCount (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 72) (vkPQueueFamilyIndices (poked :: VkImageCreateInfo))
*> poke (ptr `plusPtr` 80) (vkInitialLayout (poked :: VkImageCreateInfo))
data VkSubresourceLayout =
VkSubresourceLayout{ vkOffset :: VkDeviceSize
, vkSize :: VkDeviceSize
, vkRowPitch :: VkDeviceSize
, vkArrayPitch :: VkDeviceSize
, vkDepthPitch :: VkDeviceSize
}
deriving (Eq)
instance Storable VkSubresourceLayout where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkSubresourceLayout <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkOffset (poked :: VkSubresourceLayout))
*> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSubresourceLayout))
*> poke (ptr `plusPtr` 16) (vkRowPitch (poked :: VkSubresourceLayout))
*> poke (ptr `plusPtr` 24) (vkArrayPitch (poked :: VkSubresourceLayout))
*> poke (ptr `plusPtr` 32) (vkDepthPitch (poked :: VkSubresourceLayout))
data VkImageViewCreateInfo =
VkImageViewCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkImageViewCreateFlags
, vkImage :: VkImage
, vkViewType :: VkImageViewType
, vkFormat :: VkFormat
, vkComponents :: VkComponentMapping
, vkSubresourceRange :: VkImageSubresourceRange
}
deriving (Eq)
instance Storable VkImageViewCreateInfo where
sizeOf _ = 80
alignment _ = 8
peek ptr = VkImageViewCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 24) (vkImage (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 32) (vkViewType (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 36) (vkFormat (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 40) (vkComponents (poked :: VkImageViewCreateInfo))
*> poke (ptr `plusPtr` 56) (vkSubresourceRange (poked :: VkImageViewCreateInfo))
data VkBufferCopy =
VkBufferCopy{ vkSrcOffset :: VkDeviceSize
, vkDstOffset :: VkDeviceSize
, vkSize :: VkDeviceSize
}
deriving (Eq)
instance Storable VkBufferCopy where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkBufferCopy <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcOffset (poked :: VkBufferCopy))
*> poke (ptr `plusPtr` 8) (vkDstOffset (poked :: VkBufferCopy))
*> poke (ptr `plusPtr` 16) (vkSize (poked :: VkBufferCopy))
data VkSparseMemoryBind =
VkSparseMemoryBind{ vkResourceOffset :: VkDeviceSize
, vkSize :: VkDeviceSize
, vkMemory :: VkDeviceMemory
, vkMemoryOffset :: VkDeviceSize
, vkFlags :: VkSparseMemoryBindFlags
}
deriving (Eq)
instance Storable VkSparseMemoryBind where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkSparseMemoryBind <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkResourceOffset (poked :: VkSparseMemoryBind))
*> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSparseMemoryBind))
*> poke (ptr `plusPtr` 16) (vkMemory (poked :: VkSparseMemoryBind))
*> poke (ptr `plusPtr` 24) (vkMemoryOffset (poked :: VkSparseMemoryBind))
*> poke (ptr `plusPtr` 32) (vkFlags (poked :: VkSparseMemoryBind))
data VkSparseImageMemoryBind =
VkSparseImageMemoryBind{ vkSubresource :: VkImageSubresource
, vkOffset :: VkOffset3D
, vkExtent :: VkExtent3D
, vkMemory :: VkDeviceMemory
, vkMemoryOffset :: VkDeviceSize
, vkFlags :: VkSparseMemoryBindFlags
}
deriving (Eq)
instance Storable VkSparseImageMemoryBind where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkSparseImageMemoryBind <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSubresource (poked :: VkSparseImageMemoryBind))
*> poke (ptr `plusPtr` 12) (vkOffset (poked :: VkSparseImageMemoryBind))
*> poke (ptr `plusPtr` 24) (vkExtent (poked :: VkSparseImageMemoryBind))
*> poke (ptr `plusPtr` 40) (vkMemory (poked :: VkSparseImageMemoryBind))
*> poke (ptr `plusPtr` 48) (vkMemoryOffset (poked :: VkSparseImageMemoryBind))
*> poke (ptr `plusPtr` 56) (vkFlags (poked :: VkSparseImageMemoryBind))
data VkSparseBufferMemoryBindInfo =
VkSparseBufferMemoryBindInfo{ vkBuffer :: VkBuffer
, vkBindCount :: Word32
, vkPBinds :: Ptr VkSparseMemoryBind
}
deriving (Eq)
instance Storable VkSparseBufferMemoryBindInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkSparseBufferMemoryBindInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkBuffer (poked :: VkSparseBufferMemoryBindInfo))
*> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseBufferMemoryBindInfo))
*> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseBufferMemoryBindInfo))
data VkSparseImageOpaqueMemoryBindInfo =
VkSparseImageOpaqueMemoryBindInfo{ vkImage :: VkImage
, vkBindCount :: Word32
, vkPBinds :: Ptr VkSparseMemoryBind
}
deriving (Eq)
instance Storable VkSparseImageOpaqueMemoryBindInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkSparseImageOpaqueMemoryBindInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkImage (poked :: VkSparseImageOpaqueMemoryBindInfo))
*> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseImageOpaqueMemoryBindInfo))
*> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseImageOpaqueMemoryBindInfo))
data VkSparseImageMemoryBindInfo =
VkSparseImageMemoryBindInfo{ vkImage :: VkImage
, vkBindCount :: Word32
, vkPBinds :: Ptr VkSparseImageMemoryBind
}
deriving (Eq)
instance Storable VkSparseImageMemoryBindInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkSparseImageMemoryBindInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkImage (poked :: VkSparseImageMemoryBindInfo))
*> poke (ptr `plusPtr` 8) (vkBindCount (poked :: VkSparseImageMemoryBindInfo))
*> poke (ptr `plusPtr` 16) (vkPBinds (poked :: VkSparseImageMemoryBindInfo))
data VkBindSparseInfo =
VkBindSparseInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkWaitSemaphoreCount :: Word32
, vkPWaitSemaphores :: Ptr VkSemaphore
, vkBufferBindCount :: Word32
, vkPBufferBinds :: Ptr VkSparseBufferMemoryBindInfo
, vkImageOpaqueBindCount :: Word32
, vkPImageOpaqueBinds :: Ptr VkSparseImageOpaqueMemoryBindInfo
, vkImageBindCount :: Word32
, vkPImageBinds :: Ptr VkSparseImageMemoryBindInfo
, vkSignalSemaphoreCount :: Word32
, vkPSignalSemaphores :: Ptr VkSemaphore
}
deriving (Eq)
instance Storable VkBindSparseInfo where
sizeOf _ = 96
alignment _ = 8
peek ptr = VkBindSparseInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 80)
<*> peek (ptr `plusPtr` 88)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 32) (vkBufferBindCount (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 40) (vkPBufferBinds (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 48) (vkImageOpaqueBindCount (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 56) (vkPImageOpaqueBinds (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 64) (vkImageBindCount (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 72) (vkPImageBinds (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 80) (vkSignalSemaphoreCount (poked :: VkBindSparseInfo))
*> poke (ptr `plusPtr` 88) (vkPSignalSemaphores (poked :: VkBindSparseInfo))
data VkImageCopy =
VkImageCopy{ vkSrcSubresource :: VkImageSubresourceLayers
, vkSrcOffset :: VkOffset3D
, vkDstSubresource :: VkImageSubresourceLayers
, vkDstOffset :: VkOffset3D
, vkExtent :: VkExtent3D
}
deriving (Eq)
instance Storable VkImageCopy where
sizeOf _ = 68
alignment _ = 4
peek ptr = VkImageCopy <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageCopy))
*> poke (ptr `plusPtr` 16) (vkSrcOffset (poked :: VkImageCopy))
*> poke (ptr `plusPtr` 28) (vkDstSubresource (poked :: VkImageCopy))
*> poke (ptr `plusPtr` 44) (vkDstOffset (poked :: VkImageCopy))
*> poke (ptr `plusPtr` 56) (vkExtent (poked :: VkImageCopy))
data VkImageBlit =
VkImageBlit{ vkSrcSubresource :: VkImageSubresourceLayers
, vkSrcOffsets :: Vec (ToPeano 2) VkOffset3D
, vkDstSubresource :: VkImageSubresourceLayers
, vkDstOffsets :: Vec (ToPeano 2) VkOffset3D
}
deriving (Eq)
instance Storable VkImageBlit where
sizeOf _ = 80
alignment _ = 4
peek ptr = VkImageBlit <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageBlit))
*> poke (ptr `plusPtr` 16) (vkSrcOffsets (poked :: VkImageBlit))
*> poke (ptr `plusPtr` 40) (vkDstSubresource (poked :: VkImageBlit))
*> poke (ptr `plusPtr` 56) (vkDstOffsets (poked :: VkImageBlit))
data VkBufferImageCopy =
VkBufferImageCopy{ vkBufferOffset :: VkDeviceSize
, vkBufferRowLength :: Word32
, vkBufferImageHeight :: Word32
, vkImageSubresource :: VkImageSubresourceLayers
, vkImageOffset :: VkOffset3D
, vkImageExtent :: VkExtent3D
}
deriving (Eq)
instance Storable VkBufferImageCopy where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkBufferImageCopy <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 44)
poke ptr poked = poke (ptr `plusPtr` 0) (vkBufferOffset (poked :: VkBufferImageCopy))
*> poke (ptr `plusPtr` 8) (vkBufferRowLength (poked :: VkBufferImageCopy))
*> poke (ptr `plusPtr` 12) (vkBufferImageHeight (poked :: VkBufferImageCopy))
*> poke (ptr `plusPtr` 16) (vkImageSubresource (poked :: VkBufferImageCopy))
*> poke (ptr `plusPtr` 32) (vkImageOffset (poked :: VkBufferImageCopy))
*> poke (ptr `plusPtr` 44) (vkImageExtent (poked :: VkBufferImageCopy))
data VkImageResolve =
VkImageResolve{ vkSrcSubresource :: VkImageSubresourceLayers
, vkSrcOffset :: VkOffset3D
, vkDstSubresource :: VkImageSubresourceLayers
, vkDstOffset :: VkOffset3D
, vkExtent :: VkExtent3D
}
deriving (Eq)
instance Storable VkImageResolve where
sizeOf _ = 68
alignment _ = 4
peek ptr = VkImageResolve <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubresource (poked :: VkImageResolve))
*> poke (ptr `plusPtr` 16) (vkSrcOffset (poked :: VkImageResolve))
*> poke (ptr `plusPtr` 28) (vkDstSubresource (poked :: VkImageResolve))
*> poke (ptr `plusPtr` 44) (vkDstOffset (poked :: VkImageResolve))
*> poke (ptr `plusPtr` 56) (vkExtent (poked :: VkImageResolve))
data VkShaderModuleCreateInfo =
VkShaderModuleCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkShaderModuleCreateFlags
, vkCodeSize :: CSize
, vkPCode :: Ptr Word32
}
deriving (Eq)
instance Storable VkShaderModuleCreateInfo where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkShaderModuleCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkShaderModuleCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkShaderModuleCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkShaderModuleCreateInfo))
*> poke (ptr `plusPtr` 24) (vkCodeSize (poked :: VkShaderModuleCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPCode (poked :: VkShaderModuleCreateInfo))
data VkDescriptorSetLayoutBinding =
VkDescriptorSetLayoutBinding{ vkBinding :: Word32
, vkDescriptorType :: VkDescriptorType
, vkDescriptorCount :: Word32
, vkStageFlags :: VkShaderStageFlags
, vkPImmutableSamplers :: Ptr VkSampler
}
deriving (Eq)
instance Storable VkDescriptorSetLayoutBinding where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkDescriptorSetLayoutBinding <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkDescriptorSetLayoutBinding))
*> poke (ptr `plusPtr` 4) (vkDescriptorType (poked :: VkDescriptorSetLayoutBinding))
*> poke (ptr `plusPtr` 8) (vkDescriptorCount (poked :: VkDescriptorSetLayoutBinding))
*> poke (ptr `plusPtr` 12) (vkStageFlags (poked :: VkDescriptorSetLayoutBinding))
*> poke (ptr `plusPtr` 16) (vkPImmutableSamplers (poked :: VkDescriptorSetLayoutBinding))
data VkDescriptorSetLayoutCreateInfo =
VkDescriptorSetLayoutCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDescriptorSetLayoutCreateFlags
, vkBindingCount :: Word32
, vkPBindings :: Ptr VkDescriptorSetLayoutBinding
}
deriving (Eq)
instance Storable VkDescriptorSetLayoutCreateInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkDescriptorSetLayoutCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetLayoutCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetLayoutCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorSetLayoutCreateInfo))
*> poke (ptr `plusPtr` 20) (vkBindingCount (poked :: VkDescriptorSetLayoutCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPBindings (poked :: VkDescriptorSetLayoutCreateInfo))
data VkDescriptorPoolSize =
VkDescriptorPoolSize{ vkType :: VkDescriptorType
, vkDescriptorCount :: Word32
}
deriving (Eq)
instance Storable VkDescriptorPoolSize where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkDescriptorPoolSize <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkType (poked :: VkDescriptorPoolSize))
*> poke (ptr `plusPtr` 4) (vkDescriptorCount (poked :: VkDescriptorPoolSize))
data VkDescriptorPoolCreateInfo =
VkDescriptorPoolCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDescriptorPoolCreateFlags
, vkMaxSets :: Word32
, vkPoolSizeCount :: Word32
, vkPPoolSizes :: Ptr VkDescriptorPoolSize
}
deriving (Eq)
instance Storable VkDescriptorPoolCreateInfo where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkDescriptorPoolCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorPoolCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorPoolCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDescriptorPoolCreateInfo))
*> poke (ptr `plusPtr` 20) (vkMaxSets (poked :: VkDescriptorPoolCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPoolSizeCount (poked :: VkDescriptorPoolCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPPoolSizes (poked :: VkDescriptorPoolCreateInfo))
data VkDescriptorSetAllocateInfo =
VkDescriptorSetAllocateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkDescriptorPool :: VkDescriptorPool
, vkDescriptorSetCount :: Word32
, vkPSetLayouts :: Ptr VkDescriptorSetLayout
}
deriving (Eq)
instance Storable VkDescriptorSetAllocateInfo where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkDescriptorSetAllocateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDescriptorSetAllocateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDescriptorSetAllocateInfo))
*> poke (ptr `plusPtr` 16) (vkDescriptorPool (poked :: VkDescriptorSetAllocateInfo))
*> poke (ptr `plusPtr` 24) (vkDescriptorSetCount (poked :: VkDescriptorSetAllocateInfo))
*> poke (ptr `plusPtr` 32) (vkPSetLayouts (poked :: VkDescriptorSetAllocateInfo))
data VkSpecializationMapEntry =
VkSpecializationMapEntry{ vkConstantID :: Word32
, vkOffset :: Word32
, vkSize :: CSize
}
deriving (Eq)
instance Storable VkSpecializationMapEntry where
sizeOf _ = 16
alignment _ = 8
peek ptr = VkSpecializationMapEntry <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkConstantID (poked :: VkSpecializationMapEntry))
*> poke (ptr `plusPtr` 4) (vkOffset (poked :: VkSpecializationMapEntry))
*> poke (ptr `plusPtr` 8) (vkSize (poked :: VkSpecializationMapEntry))
data VkSpecializationInfo =
VkSpecializationInfo{ vkMapEntryCount :: Word32
, vkPMapEntries :: Ptr VkSpecializationMapEntry
, vkDataSize :: CSize
, vkPData :: Ptr Void
}
deriving (Eq)
instance Storable VkSpecializationInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkSpecializationInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkMapEntryCount (poked :: VkSpecializationInfo))
*> poke (ptr `plusPtr` 8) (vkPMapEntries (poked :: VkSpecializationInfo))
*> poke (ptr `plusPtr` 16) (vkDataSize (poked :: VkSpecializationInfo))
*> poke (ptr `plusPtr` 24) (vkPData (poked :: VkSpecializationInfo))
data VkPipelineShaderStageCreateInfo =
VkPipelineShaderStageCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineShaderStageCreateFlags
, vkStage :: VkShaderStageFlagBits
, vkModule :: VkShaderModule
, vkPName :: Ptr CChar
, vkPSpecializationInfo :: Ptr VkSpecializationInfo
}
deriving (Eq)
instance Storable VkPipelineShaderStageCreateInfo where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkPipelineShaderStageCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineShaderStageCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineShaderStageCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineShaderStageCreateInfo))
*> poke (ptr `plusPtr` 20) (vkStage (poked :: VkPipelineShaderStageCreateInfo))
*> poke (ptr `plusPtr` 24) (vkModule (poked :: VkPipelineShaderStageCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPName (poked :: VkPipelineShaderStageCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPSpecializationInfo (poked :: VkPipelineShaderStageCreateInfo))
data VkComputePipelineCreateInfo =
VkComputePipelineCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineCreateFlags
, vkStage :: VkPipelineShaderStageCreateInfo
, vkLayout :: VkPipelineLayout
, vkBasePipelineHandle :: VkPipeline
, vkBasePipelineIndex :: Int32
}
deriving (Eq)
instance Storable VkComputePipelineCreateInfo where
sizeOf _ = 96
alignment _ = 8
peek ptr = VkComputePipelineCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 80)
<*> peek (ptr `plusPtr` 88)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkComputePipelineCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkComputePipelineCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkComputePipelineCreateInfo))
*> poke (ptr `plusPtr` 24) (vkStage (poked :: VkComputePipelineCreateInfo))
*> poke (ptr `plusPtr` 72) (vkLayout (poked :: VkComputePipelineCreateInfo))
*> poke (ptr `plusPtr` 80) (vkBasePipelineHandle (poked :: VkComputePipelineCreateInfo))
*> poke (ptr `plusPtr` 88) (vkBasePipelineIndex (poked :: VkComputePipelineCreateInfo))
data VkVertexInputBindingDescription =
VkVertexInputBindingDescription{ vkBinding :: Word32
, vkStride :: Word32
, vkInputRate :: VkVertexInputRate
}
deriving (Eq)
instance Storable VkVertexInputBindingDescription where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkVertexInputBindingDescription <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkBinding (poked :: VkVertexInputBindingDescription))
*> poke (ptr `plusPtr` 4) (vkStride (poked :: VkVertexInputBindingDescription))
*> poke (ptr `plusPtr` 8) (vkInputRate (poked :: VkVertexInputBindingDescription))
data VkVertexInputAttributeDescription =
VkVertexInputAttributeDescription{ vkLocation :: Word32
, vkBinding :: Word32
, vkFormat :: VkFormat
, vkOffset :: Word32
}
deriving (Eq)
instance Storable VkVertexInputAttributeDescription where
sizeOf _ = 16
alignment _ = 4
peek ptr = VkVertexInputAttributeDescription <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
poke ptr poked = poke (ptr `plusPtr` 0) (vkLocation (poked :: VkVertexInputAttributeDescription))
*> poke (ptr `plusPtr` 4) (vkBinding (poked :: VkVertexInputAttributeDescription))
*> poke (ptr `plusPtr` 8) (vkFormat (poked :: VkVertexInputAttributeDescription))
*> poke (ptr `plusPtr` 12) (vkOffset (poked :: VkVertexInputAttributeDescription))
data VkPipelineVertexInputStateCreateInfo =
VkPipelineVertexInputStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineVertexInputStateCreateFlags
, vkVertexBindingDescriptionCount :: Word32
, vkPVertexBindingDescriptions :: Ptr VkVertexInputBindingDescription
, vkVertexAttributeDescriptionCount :: Word32
, vkPVertexAttributeDescriptions :: Ptr VkVertexInputAttributeDescription
}
deriving (Eq)
instance Storable VkPipelineVertexInputStateCreateInfo where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkPipelineVertexInputStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineVertexInputStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineVertexInputStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineVertexInputStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkVertexBindingDescriptionCount (poked :: VkPipelineVertexInputStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPVertexBindingDescriptions (poked :: VkPipelineVertexInputStateCreateInfo))
*> poke (ptr `plusPtr` 32) (vkVertexAttributeDescriptionCount (poked :: VkPipelineVertexInputStateCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPVertexAttributeDescriptions (poked :: VkPipelineVertexInputStateCreateInfo))
data VkPipelineInputAssemblyStateCreateInfo =
VkPipelineInputAssemblyStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineInputAssemblyStateCreateFlags
, vkTopology :: VkPrimitiveTopology
, vkPrimitiveRestartEnable :: VkBool32
}
deriving (Eq)
instance Storable VkPipelineInputAssemblyStateCreateInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkPipelineInputAssemblyStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineInputAssemblyStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineInputAssemblyStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineInputAssemblyStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkTopology (poked :: VkPipelineInputAssemblyStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPrimitiveRestartEnable (poked :: VkPipelineInputAssemblyStateCreateInfo))
data VkPipelineTessellationStateCreateInfo =
VkPipelineTessellationStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineTessellationStateCreateFlags
, vkPatchControlPoints :: Word32
}
deriving (Eq)
instance Storable VkPipelineTessellationStateCreateInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkPipelineTessellationStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineTessellationStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineTessellationStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineTessellationStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkPatchControlPoints (poked :: VkPipelineTessellationStateCreateInfo))
data VkPipelineViewportStateCreateInfo =
VkPipelineViewportStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineViewportStateCreateFlags
, vkViewportCount :: Word32
, vkPViewports :: Ptr VkViewport
, vkScissorCount :: Word32
, vkPScissors :: Ptr VkRect2D
}
deriving (Eq)
instance Storable VkPipelineViewportStateCreateInfo where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkPipelineViewportStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineViewportStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineViewportStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineViewportStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkViewportCount (poked :: VkPipelineViewportStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPViewports (poked :: VkPipelineViewportStateCreateInfo))
*> poke (ptr `plusPtr` 32) (vkScissorCount (poked :: VkPipelineViewportStateCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPScissors (poked :: VkPipelineViewportStateCreateInfo))
data VkPipelineRasterizationStateCreateInfo =
VkPipelineRasterizationStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineRasterizationStateCreateFlags
, vkDepthClampEnable :: VkBool32
, vkRasterizerDiscardEnable :: VkBool32
, vkPolygonMode :: VkPolygonMode
, vkCullMode :: VkCullModeFlags
, vkFrontFace :: VkFrontFace
, vkDepthBiasEnable :: VkBool32
, vkDepthBiasConstantFactor :: CFloat
, vkDepthBiasClamp :: CFloat
, vkDepthBiasSlopeFactor :: CFloat
, vkLineWidth :: CFloat
}
deriving (Eq)
instance Storable VkPipelineRasterizationStateCreateInfo where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkPipelineRasterizationStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkDepthClampEnable (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkRasterizerDiscardEnable (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 28) (vkPolygonMode (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 32) (vkCullMode (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 36) (vkFrontFace (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 40) (vkDepthBiasEnable (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 44) (vkDepthBiasConstantFactor (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 48) (vkDepthBiasClamp (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 52) (vkDepthBiasSlopeFactor (poked :: VkPipelineRasterizationStateCreateInfo))
*> poke (ptr `plusPtr` 56) (vkLineWidth (poked :: VkPipelineRasterizationStateCreateInfo))
data VkPipelineMultisampleStateCreateInfo =
VkPipelineMultisampleStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineMultisampleStateCreateFlags
, vkRasterizationSamples :: VkSampleCountFlagBits
, vkSampleShadingEnable :: VkBool32
, vkMinSampleShading :: CFloat
, vkPSampleMask :: Ptr VkSampleMask
, vkAlphaToCoverageEnable :: VkBool32
, vkAlphaToOneEnable :: VkBool32
}
deriving (Eq)
instance Storable VkPipelineMultisampleStateCreateInfo where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkPipelineMultisampleStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkRasterizationSamples (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkSampleShadingEnable (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 28) (vkMinSampleShading (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPSampleMask (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 40) (vkAlphaToCoverageEnable (poked :: VkPipelineMultisampleStateCreateInfo))
*> poke (ptr `plusPtr` 44) (vkAlphaToOneEnable (poked :: VkPipelineMultisampleStateCreateInfo))
data VkPipelineColorBlendAttachmentState =
VkPipelineColorBlendAttachmentState{ vkBlendEnable :: VkBool32
, vkSrcColorBlendFactor :: VkBlendFactor
, vkDstColorBlendFactor :: VkBlendFactor
, vkColorBlendOp :: VkBlendOp
, vkSrcAlphaBlendFactor :: VkBlendFactor
, vkDstAlphaBlendFactor :: VkBlendFactor
, vkAlphaBlendOp :: VkBlendOp
, vkColorWriteMask :: VkColorComponentFlags
}
deriving (Eq)
instance Storable VkPipelineColorBlendAttachmentState where
sizeOf _ = 32
alignment _ = 4
peek ptr = VkPipelineColorBlendAttachmentState <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
poke ptr poked = poke (ptr `plusPtr` 0) (vkBlendEnable (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 4) (vkSrcColorBlendFactor (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 8) (vkDstColorBlendFactor (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 12) (vkColorBlendOp (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 16) (vkSrcAlphaBlendFactor (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 20) (vkDstAlphaBlendFactor (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 24) (vkAlphaBlendOp (poked :: VkPipelineColorBlendAttachmentState))
*> poke (ptr `plusPtr` 28) (vkColorWriteMask (poked :: VkPipelineColorBlendAttachmentState))
data VkPipelineColorBlendStateCreateInfo =
VkPipelineColorBlendStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineColorBlendStateCreateFlags
, vkLogicOpEnable :: VkBool32
, vkLogicOp :: VkLogicOp
, vkAttachmentCount :: Word32
, vkPAttachments :: Ptr VkPipelineColorBlendAttachmentState
, vkBlendConstants :: Vec (ToPeano 4) CFloat
}
deriving (Eq)
instance Storable VkPipelineColorBlendStateCreateInfo where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkPipelineColorBlendStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkLogicOpEnable (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkLogicOp (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 28) (vkAttachmentCount (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPAttachments (poked :: VkPipelineColorBlendStateCreateInfo))
*> poke (ptr `plusPtr` 40) (vkBlendConstants (poked :: VkPipelineColorBlendStateCreateInfo))
data VkPipelineDynamicStateCreateInfo =
VkPipelineDynamicStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineDynamicStateCreateFlags
, vkDynamicStateCount :: Word32
, vkPDynamicStates :: Ptr VkDynamicState
}
deriving (Eq)
instance Storable VkPipelineDynamicStateCreateInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkPipelineDynamicStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDynamicStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDynamicStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDynamicStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkDynamicStateCount (poked :: VkPipelineDynamicStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPDynamicStates (poked :: VkPipelineDynamicStateCreateInfo))
data VkStencilOpState =
VkStencilOpState{ vkFailOp :: VkStencilOp
, vkPassOp :: VkStencilOp
, vkDepthFailOp :: VkStencilOp
, vkCompareOp :: VkCompareOp
, vkCompareMask :: Word32
, vkWriteMask :: Word32
, vkReference :: Word32
}
deriving (Eq)
instance Storable VkStencilOpState where
sizeOf _ = 28
alignment _ = 4
peek ptr = VkStencilOpState <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkFailOp (poked :: VkStencilOpState))
*> poke (ptr `plusPtr` 4) (vkPassOp (poked :: VkStencilOpState))
*> poke (ptr `plusPtr` 8) (vkDepthFailOp (poked :: VkStencilOpState))
*> poke (ptr `plusPtr` 12) (vkCompareOp (poked :: VkStencilOpState))
*> poke (ptr `plusPtr` 16) (vkCompareMask (poked :: VkStencilOpState))
*> poke (ptr `plusPtr` 20) (vkWriteMask (poked :: VkStencilOpState))
*> poke (ptr `plusPtr` 24) (vkReference (poked :: VkStencilOpState))
data VkPipelineDepthStencilStateCreateInfo =
VkPipelineDepthStencilStateCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineDepthStencilStateCreateFlags
, vkDepthTestEnable :: VkBool32
, vkDepthWriteEnable :: VkBool32
, vkDepthCompareOp :: VkCompareOp
, vkDepthBoundsTestEnable :: VkBool32
, vkStencilTestEnable :: VkBool32
, vkFront :: VkStencilOpState
, vkBack :: VkStencilOpState
, vkMinDepthBounds :: CFloat
, vkMaxDepthBounds :: CFloat
}
deriving (Eq)
instance Storable VkPipelineDepthStencilStateCreateInfo where
sizeOf _ = 104
alignment _ = 8
peek ptr = VkPipelineDepthStencilStateCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 68)
<*> peek (ptr `plusPtr` 96)
<*> peek (ptr `plusPtr` 100)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 20) (vkDepthTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 24) (vkDepthWriteEnable (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 28) (vkDepthCompareOp (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 32) (vkDepthBoundsTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 36) (vkStencilTestEnable (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 40) (vkFront (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 68) (vkBack (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 96) (vkMinDepthBounds (poked :: VkPipelineDepthStencilStateCreateInfo))
*> poke (ptr `plusPtr` 100) (vkMaxDepthBounds (poked :: VkPipelineDepthStencilStateCreateInfo))
data VkGraphicsPipelineCreateInfo =
VkGraphicsPipelineCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineCreateFlags
, vkStageCount :: Word32
, vkPStages :: Ptr VkPipelineShaderStageCreateInfo
, vkPVertexInputState :: Ptr VkPipelineVertexInputStateCreateInfo
, vkPInputAssemblyState :: Ptr VkPipelineInputAssemblyStateCreateInfo
, vkPTessellationState :: Ptr VkPipelineTessellationStateCreateInfo
, vkPViewportState :: Ptr VkPipelineViewportStateCreateInfo
, vkPRasterizationState :: Ptr VkPipelineRasterizationStateCreateInfo
, vkPMultisampleState :: Ptr VkPipelineMultisampleStateCreateInfo
, vkPDepthStencilState :: Ptr VkPipelineDepthStencilStateCreateInfo
, vkPColorBlendState :: Ptr VkPipelineColorBlendStateCreateInfo
, vkPDynamicState :: Ptr VkPipelineDynamicStateCreateInfo
, vkLayout :: VkPipelineLayout
, vkRenderPass :: VkRenderPass
, vkSubpass :: Word32
, vkBasePipelineHandle :: VkPipeline
, vkBasePipelineIndex :: Int32
}
deriving (Eq)
instance Storable VkGraphicsPipelineCreateInfo where
sizeOf _ = 144
alignment _ = 8
peek ptr = VkGraphicsPipelineCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 80)
<*> peek (ptr `plusPtr` 88)
<*> peek (ptr `plusPtr` 96)
<*> peek (ptr `plusPtr` 104)
<*> peek (ptr `plusPtr` 112)
<*> peek (ptr `plusPtr` 120)
<*> peek (ptr `plusPtr` 128)
<*> peek (ptr `plusPtr` 136)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 20) (vkStageCount (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPStages (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPVertexInputState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPInputAssemblyState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 48) (vkPTessellationState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 56) (vkPViewportState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 64) (vkPRasterizationState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 72) (vkPMultisampleState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 80) (vkPDepthStencilState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 88) (vkPColorBlendState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 96) (vkPDynamicState (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 104) (vkLayout (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 112) (vkRenderPass (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 120) (vkSubpass (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 128) (vkBasePipelineHandle (poked :: VkGraphicsPipelineCreateInfo))
*> poke (ptr `plusPtr` 136) (vkBasePipelineIndex (poked :: VkGraphicsPipelineCreateInfo))
data VkPipelineCacheCreateInfo =
VkPipelineCacheCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineCacheCreateFlags
, vkInitialDataSize :: CSize
, vkPInitialData :: Ptr Void
}
deriving (Eq)
instance Storable VkPipelineCacheCreateInfo where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkPipelineCacheCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineCacheCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineCacheCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineCacheCreateInfo))
*> poke (ptr `plusPtr` 24) (vkInitialDataSize (poked :: VkPipelineCacheCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPInitialData (poked :: VkPipelineCacheCreateInfo))
data VkPushConstantRange =
VkPushConstantRange{ vkStageFlags :: VkShaderStageFlags
, vkOffset :: Word32
, vkSize :: Word32
}
deriving (Eq)
instance Storable VkPushConstantRange where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkPushConstantRange <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkStageFlags (poked :: VkPushConstantRange))
*> poke (ptr `plusPtr` 4) (vkOffset (poked :: VkPushConstantRange))
*> poke (ptr `plusPtr` 8) (vkSize (poked :: VkPushConstantRange))
data VkPipelineLayoutCreateInfo =
VkPipelineLayoutCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkPipelineLayoutCreateFlags
, vkSetLayoutCount :: Word32
, vkPSetLayouts :: Ptr VkDescriptorSetLayout
, vkPushConstantRangeCount :: Word32
, vkPPushConstantRanges :: Ptr VkPushConstantRange
}
deriving (Eq)
instance Storable VkPipelineLayoutCreateInfo where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkPipelineLayoutCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPipelineLayoutCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPipelineLayoutCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkPipelineLayoutCreateInfo))
*> poke (ptr `plusPtr` 20) (vkSetLayoutCount (poked :: VkPipelineLayoutCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPSetLayouts (poked :: VkPipelineLayoutCreateInfo))
*> poke (ptr `plusPtr` 32) (vkPushConstantRangeCount (poked :: VkPipelineLayoutCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPPushConstantRanges (poked :: VkPipelineLayoutCreateInfo))
data VkSamplerCreateInfo =
VkSamplerCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkSamplerCreateFlags
, vkMagFilter :: VkFilter
, vkMinFilter :: VkFilter
, vkMipmapMode :: VkSamplerMipmapMode
, vkAddressModeU :: VkSamplerAddressMode
, vkAddressModeV :: VkSamplerAddressMode
, vkAddressModeW :: VkSamplerAddressMode
, vkMipLodBias :: CFloat
, vkAnisotropyEnable :: VkBool32
, vkMaxAnisotropy :: CFloat
, vkCompareEnable :: VkBool32
, vkCompareOp :: VkCompareOp
, vkMinLod :: CFloat
, vkMaxLod :: CFloat
, vkBorderColor :: VkBorderColor
, vkUnnormalizedCoordinates :: VkBool32
}
deriving (Eq)
instance Storable VkSamplerCreateInfo where
sizeOf _ = 80
alignment _ = 8
peek ptr = VkSamplerCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 60)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 68)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 76)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 20) (vkMagFilter (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 24) (vkMinFilter (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 28) (vkMipmapMode (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 32) (vkAddressModeU (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 36) (vkAddressModeV (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 40) (vkAddressModeW (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 44) (vkMipLodBias (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 48) (vkAnisotropyEnable (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 52) (vkMaxAnisotropy (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 56) (vkCompareEnable (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 60) (vkCompareOp (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 64) (vkMinLod (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 68) (vkMaxLod (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 72) (vkBorderColor (poked :: VkSamplerCreateInfo))
*> poke (ptr `plusPtr` 76) (vkUnnormalizedCoordinates (poked :: VkSamplerCreateInfo))
data VkCommandPoolCreateInfo =
VkCommandPoolCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkCommandPoolCreateFlags
, vkQueueFamilyIndex :: Word32
}
deriving (Eq)
instance Storable VkCommandPoolCreateInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkCommandPoolCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandPoolCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandPoolCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkCommandPoolCreateInfo))
*> poke (ptr `plusPtr` 20) (vkQueueFamilyIndex (poked :: VkCommandPoolCreateInfo))
data VkCommandBufferAllocateInfo =
VkCommandBufferAllocateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkCommandPool :: VkCommandPool
, vkLevel :: VkCommandBufferLevel
, vkCommandBufferCount :: Word32
}
deriving (Eq)
instance Storable VkCommandBufferAllocateInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkCommandBufferAllocateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferAllocateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferAllocateInfo))
*> poke (ptr `plusPtr` 16) (vkCommandPool (poked :: VkCommandBufferAllocateInfo))
*> poke (ptr `plusPtr` 24) (vkLevel (poked :: VkCommandBufferAllocateInfo))
*> poke (ptr `plusPtr` 28) (vkCommandBufferCount (poked :: VkCommandBufferAllocateInfo))
data VkCommandBufferInheritanceInfo =
VkCommandBufferInheritanceInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkRenderPass :: VkRenderPass
, vkSubpass :: Word32
, vkFramebuffer :: VkFramebuffer
, vkOcclusionQueryEnable :: VkBool32
, vkQueryFlags :: VkQueryControlFlags
, vkPipelineStatistics :: VkQueryPipelineStatisticFlags
}
deriving (Eq)
instance Storable VkCommandBufferInheritanceInfo where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkCommandBufferInheritanceInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 16) (vkRenderPass (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 24) (vkSubpass (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 32) (vkFramebuffer (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 40) (vkOcclusionQueryEnable (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 44) (vkQueryFlags (poked :: VkCommandBufferInheritanceInfo))
*> poke (ptr `plusPtr` 48) (vkPipelineStatistics (poked :: VkCommandBufferInheritanceInfo))
data VkCommandBufferBeginInfo =
VkCommandBufferBeginInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkCommandBufferUsageFlags
, vkPInheritanceInfo :: Ptr VkCommandBufferInheritanceInfo
}
deriving (Eq)
instance Storable VkCommandBufferBeginInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkCommandBufferBeginInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkCommandBufferBeginInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkCommandBufferBeginInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkCommandBufferBeginInfo))
*> poke (ptr `plusPtr` 24) (vkPInheritanceInfo (poked :: VkCommandBufferBeginInfo))
data VkRenderPassBeginInfo =
VkRenderPassBeginInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkRenderPass :: VkRenderPass
, vkFramebuffer :: VkFramebuffer
, vkRenderArea :: VkRect2D
, vkClearValueCount :: Word32
, vkPClearValues :: Ptr VkClearValue
}
deriving (Eq)
instance Storable VkRenderPassBeginInfo where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkRenderPassBeginInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassBeginInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassBeginInfo))
*> poke (ptr `plusPtr` 16) (vkRenderPass (poked :: VkRenderPassBeginInfo))
*> poke (ptr `plusPtr` 24) (vkFramebuffer (poked :: VkRenderPassBeginInfo))
*> poke (ptr `plusPtr` 32) (vkRenderArea (poked :: VkRenderPassBeginInfo))
*> poke (ptr `plusPtr` 48) (vkClearValueCount (poked :: VkRenderPassBeginInfo))
*> poke (ptr `plusPtr` 56) (vkPClearValues (poked :: VkRenderPassBeginInfo))
data VkClearDepthStencilValue =
VkClearDepthStencilValue{ vkDepth :: CFloat
, vkStencil :: Word32
}
deriving (Eq)
instance Storable VkClearDepthStencilValue where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkClearDepthStencilValue <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkDepth (poked :: VkClearDepthStencilValue))
*> poke (ptr `plusPtr` 4) (vkStencil (poked :: VkClearDepthStencilValue))
data VkClearAttachment =
VkClearAttachment{ vkAspectMask :: VkImageAspectFlags
, vkColorAttachment :: Word32
, vkClearValue :: VkClearValue
}
deriving (Eq)
instance Storable VkClearAttachment where
sizeOf _ = 24
alignment _ = 4
peek ptr = VkClearAttachment <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkAspectMask (poked :: VkClearAttachment))
*> poke (ptr `plusPtr` 4) (vkColorAttachment (poked :: VkClearAttachment))
*> poke (ptr `plusPtr` 8) (vkClearValue (poked :: VkClearAttachment))
data VkAttachmentDescription =
VkAttachmentDescription{ vkFlags :: VkAttachmentDescriptionFlags
, vkFormat :: VkFormat
, vkSamples :: VkSampleCountFlagBits
, vkLoadOp :: VkAttachmentLoadOp
, vkStoreOp :: VkAttachmentStoreOp
, vkStencilLoadOp :: VkAttachmentLoadOp
, vkStencilStoreOp :: VkAttachmentStoreOp
, vkInitialLayout :: VkImageLayout
, vkFinalLayout :: VkImageLayout
}
deriving (Eq)
instance Storable VkAttachmentDescription where
sizeOf _ = 36
alignment _ = 4
peek ptr = VkAttachmentDescription <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkFlags (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 4) (vkFormat (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 8) (vkSamples (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 12) (vkLoadOp (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 16) (vkStoreOp (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 20) (vkStencilLoadOp (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 24) (vkStencilStoreOp (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 28) (vkInitialLayout (poked :: VkAttachmentDescription))
*> poke (ptr `plusPtr` 32) (vkFinalLayout (poked :: VkAttachmentDescription))
data VkAttachmentReference =
VkAttachmentReference{ vkAttachment :: Word32
, vkLayout :: VkImageLayout
}
deriving (Eq)
instance Storable VkAttachmentReference where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkAttachmentReference <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkAttachment (poked :: VkAttachmentReference))
*> poke (ptr `plusPtr` 4) (vkLayout (poked :: VkAttachmentReference))
data VkSubpassDescription =
VkSubpassDescription{ vkFlags :: VkSubpassDescriptionFlags
, vkPipelineBindPoint :: VkPipelineBindPoint
, vkInputAttachmentCount :: Word32
, vkPInputAttachments :: Ptr VkAttachmentReference
, vkColorAttachmentCount :: Word32
, vkPColorAttachments :: Ptr VkAttachmentReference
, vkPResolveAttachments :: Ptr VkAttachmentReference
, vkPDepthStencilAttachment :: Ptr VkAttachmentReference
, vkPreserveAttachmentCount :: Word32
, vkPPreserveAttachments :: Ptr Word32
}
deriving (Eq)
instance Storable VkSubpassDescription where
sizeOf _ = 72
alignment _ = 8
peek ptr = VkSubpassDescription <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 64)
poke ptr poked = poke (ptr `plusPtr` 0) (vkFlags (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 4) (vkPipelineBindPoint (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 8) (vkInputAttachmentCount (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 16) (vkPInputAttachments (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 24) (vkColorAttachmentCount (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 32) (vkPColorAttachments (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 40) (vkPResolveAttachments (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 48) (vkPDepthStencilAttachment (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 56) (vkPreserveAttachmentCount (poked :: VkSubpassDescription))
*> poke (ptr `plusPtr` 64) (vkPPreserveAttachments (poked :: VkSubpassDescription))
data VkSubpassDependency =
VkSubpassDependency{ vkSrcSubpass :: Word32
, vkDstSubpass :: Word32
, vkSrcStageMask :: VkPipelineStageFlags
, vkDstStageMask :: VkPipelineStageFlags
, vkSrcAccessMask :: VkAccessFlags
, vkDstAccessMask :: VkAccessFlags
, vkDependencyFlags :: VkDependencyFlags
}
deriving (Eq)
instance Storable VkSubpassDependency where
sizeOf _ = 28
alignment _ = 4
peek ptr = VkSubpassDependency <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSrcSubpass (poked :: VkSubpassDependency))
*> poke (ptr `plusPtr` 4) (vkDstSubpass (poked :: VkSubpassDependency))
*> poke (ptr `plusPtr` 8) (vkSrcStageMask (poked :: VkSubpassDependency))
*> poke (ptr `plusPtr` 12) (vkDstStageMask (poked :: VkSubpassDependency))
*> poke (ptr `plusPtr` 16) (vkSrcAccessMask (poked :: VkSubpassDependency))
*> poke (ptr `plusPtr` 20) (vkDstAccessMask (poked :: VkSubpassDependency))
*> poke (ptr `plusPtr` 24) (vkDependencyFlags (poked :: VkSubpassDependency))
data VkRenderPassCreateInfo =
VkRenderPassCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkRenderPassCreateFlags
, vkAttachmentCount :: Word32
, vkPAttachments :: Ptr VkAttachmentDescription
, vkSubpassCount :: Word32
, vkPSubpasses :: Ptr VkSubpassDescription
, vkDependencyCount :: Word32
, vkPDependencies :: Ptr VkSubpassDependency
}
deriving (Eq)
instance Storable VkRenderPassCreateInfo where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkRenderPassCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 20) (vkAttachmentCount (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 24) (vkPAttachments (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 32) (vkSubpassCount (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPSubpasses (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 48) (vkDependencyCount (poked :: VkRenderPassCreateInfo))
*> poke (ptr `plusPtr` 56) (vkPDependencies (poked :: VkRenderPassCreateInfo))
data VkEventCreateInfo =
VkEventCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkEventCreateFlags
}
deriving (Eq)
instance Storable VkEventCreateInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkEventCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkEventCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkEventCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkEventCreateInfo))
data VkFenceCreateInfo =
VkFenceCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkFenceCreateFlags
}
deriving (Eq)
instance Storable VkFenceCreateInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkFenceCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFenceCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFenceCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkFenceCreateInfo))
data VkPhysicalDeviceFeatures =
VkPhysicalDeviceFeatures{ vkRobustBufferAccess :: VkBool32
, vkFullDrawIndexUint :: VkBool32
, vkImageCubeArray :: VkBool32
, vkIndependentBlend :: VkBool32
, vkGeometryShader :: VkBool32
, vkTessellationShader :: VkBool32
, vkSampleRateShading :: VkBool32
, vkDualSrcBlend :: VkBool32
, vkLogicOp :: VkBool32
, vkMultiDrawIndirect :: VkBool32
, vkDrawIndirectFirstInstance :: VkBool32
, vkDepthClamp :: VkBool32
, vkDepthBiasClamp :: VkBool32
, vkFillModeNonSolid :: VkBool32
, vkDepthBounds :: VkBool32
, vkWideLines :: VkBool32
, vkLargePoints :: VkBool32
, vkAlphaToOne :: VkBool32
, vkMultiViewport :: VkBool32
, vkSamplerAnisotropy :: VkBool32
, vkTextureCompressionETC :: VkBool32
, vkTextureCompressionASTC_LDR :: VkBool32
, vkTextureCompressionBC :: VkBool32
, vkOcclusionQueryPrecise :: VkBool32
, vkPipelineStatisticsQuery :: VkBool32
, vkVertexPipelineStoresAndAtomics :: VkBool32
, vkFragmentStoresAndAtomics :: VkBool32
, vkShaderTessellationAndGeometryPointSize :: VkBool32
, vkShaderImageGatherExtended :: VkBool32
, vkShaderStorageImageExtendedFormats :: VkBool32
, vkShaderStorageImageMultisample :: VkBool32
, vkShaderStorageImageReadWithoutFormat :: VkBool32
, vkShaderStorageImageWriteWithoutFormat :: VkBool32
, vkShaderUniformBufferArrayDynamicIndexing :: VkBool32
, vkShaderSampledImageArrayDynamicIndexing :: VkBool32
, vkShaderStorageBufferArrayDynamicIndexing :: VkBool32
, vkShaderStorageImageArrayDynamicIndexing :: VkBool32
, vkShaderClipDistance :: VkBool32
, vkShaderCullDistance :: VkBool32
, vkShaderFloat :: VkBool32
, vkShaderInt :: VkBool32
, vkShaderInt :: VkBool32
, vkShaderResourceResidency :: VkBool32
, vkShaderResourceMinLod :: VkBool32
, vkSparseBinding :: VkBool32
, vkSparseResidencyBuffer :: VkBool32
, vkSparseResidencyImage :: VkBool32
, vkSparseResidencyImage :: VkBool32
, vkSparseResidency :: VkBool32
, vkSparseResidency :: VkBool32
, vkSparseResidency :: VkBool32
, vkSparseResidency :: VkBool32
, vkSparseResidencyAliased :: VkBool32
, vkVariableMultisampleRate :: VkBool32
, vkInheritedQueries :: VkBool32
}
deriving (Eq)
instance Storable VkPhysicalDeviceFeatures where
sizeOf _ = 220
alignment _ = 4
peek ptr = VkPhysicalDeviceFeatures <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 60)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 68)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 76)
<*> peek (ptr `plusPtr` 80)
<*> peek (ptr `plusPtr` 84)
<*> peek (ptr `plusPtr` 88)
<*> peek (ptr `plusPtr` 92)
<*> peek (ptr `plusPtr` 96)
<*> peek (ptr `plusPtr` 100)
<*> peek (ptr `plusPtr` 104)
<*> peek (ptr `plusPtr` 108)
<*> peek (ptr `plusPtr` 112)
<*> peek (ptr `plusPtr` 116)
<*> peek (ptr `plusPtr` 120)
<*> peek (ptr `plusPtr` 124)
<*> peek (ptr `plusPtr` 128)
<*> peek (ptr `plusPtr` 132)
<*> peek (ptr `plusPtr` 136)
<*> peek (ptr `plusPtr` 140)
<*> peek (ptr `plusPtr` 144)
<*> peek (ptr `plusPtr` 148)
<*> peek (ptr `plusPtr` 152)
<*> peek (ptr `plusPtr` 156)
<*> peek (ptr `plusPtr` 160)
<*> peek (ptr `plusPtr` 164)
<*> peek (ptr `plusPtr` 168)
<*> peek (ptr `plusPtr` 172)
<*> peek (ptr `plusPtr` 176)
<*> peek (ptr `plusPtr` 180)
<*> peek (ptr `plusPtr` 184)
<*> peek (ptr `plusPtr` 188)
<*> peek (ptr `plusPtr` 192)
<*> peek (ptr `plusPtr` 196)
<*> peek (ptr `plusPtr` 200)
<*> peek (ptr `plusPtr` 204)
<*> peek (ptr `plusPtr` 208)
<*> peek (ptr `plusPtr` 212)
<*> peek (ptr `plusPtr` 216)
poke ptr poked = poke (ptr `plusPtr` 0) (vkRobustBufferAccess (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 4) (vkFullDrawIndexUint (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 8) (vkImageCubeArray (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 12) (vkIndependentBlend (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 16) (vkGeometryShader (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 20) (vkTessellationShader (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 24) (vkSampleRateShading (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 28) (vkDualSrcBlend (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 32) (vkLogicOp (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 36) (vkMultiDrawIndirect (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 40) (vkDrawIndirectFirstInstance (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 44) (vkDepthClamp (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 48) (vkDepthBiasClamp (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 52) (vkFillModeNonSolid (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 56) (vkDepthBounds (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 60) (vkWideLines (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 64) (vkLargePoints (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 68) (vkAlphaToOne (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 72) (vkMultiViewport (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 76) (vkSamplerAnisotropy (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 80) (vkTextureCompressionETC (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 84) (vkTextureCompressionASTC_LDR (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 88) (vkTextureCompressionBC (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 92) (vkOcclusionQueryPrecise (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 96) (vkPipelineStatisticsQuery (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 100) (vkVertexPipelineStoresAndAtomics (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 104) (vkFragmentStoresAndAtomics (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 108) (vkShaderTessellationAndGeometryPointSize (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 112) (vkShaderImageGatherExtended (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 116) (vkShaderStorageImageExtendedFormats (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 120) (vkShaderStorageImageMultisample (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 124) (vkShaderStorageImageReadWithoutFormat (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 128) (vkShaderStorageImageWriteWithoutFormat (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 132) (vkShaderUniformBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 136) (vkShaderSampledImageArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 140) (vkShaderStorageBufferArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 144) (vkShaderStorageImageArrayDynamicIndexing (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 148) (vkShaderClipDistance (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 152) (vkShaderCullDistance (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 156) (vkShaderFloat (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 160) (vkShaderInt (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 164) (vkShaderInt (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 168) (vkShaderResourceResidency (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 172) (vkShaderResourceMinLod (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 176) (vkSparseBinding (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 180) (vkSparseResidencyBuffer (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 184) (vkSparseResidencyImage (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 188) (vkSparseResidencyImage (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 192) (vkSparseResidency (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 196) (vkSparseResidency (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 200) (vkSparseResidency (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 204) (vkSparseResidency (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 208) (vkSparseResidencyAliased (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 212) (vkVariableMultisampleRate (poked :: VkPhysicalDeviceFeatures))
*> poke (ptr `plusPtr` 216) (vkInheritedQueries (poked :: VkPhysicalDeviceFeatures))
data VkPhysicalDeviceSparseProperties =
VkPhysicalDeviceSparseProperties{ vkResidencyStandard :: VkBool32
, vkResidencyStandard :: VkBool32
, vkResidencyStandard :: VkBool32
, vkResidencyAlignedMipSize :: VkBool32
, vkResidencyNonResidentStrict :: VkBool32
}
deriving (Eq)
instance Storable VkPhysicalDeviceSparseProperties where
sizeOf _ = 20
alignment _ = 4
peek ptr = VkPhysicalDeviceSparseProperties <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkResidencyStandard (poked :: VkPhysicalDeviceSparseProperties))
*> poke (ptr `plusPtr` 4) (vkResidencyStandard (poked :: VkPhysicalDeviceSparseProperties))
*> poke (ptr `plusPtr` 8) (vkResidencyStandard (poked :: VkPhysicalDeviceSparseProperties))
*> poke (ptr `plusPtr` 12) (vkResidencyAlignedMipSize (poked :: VkPhysicalDeviceSparseProperties))
*> poke (ptr `plusPtr` 16) (vkResidencyNonResidentStrict (poked :: VkPhysicalDeviceSparseProperties))
data VkPhysicalDeviceLimits =
VkPhysicalDeviceLimits{ vkMaxImageDimension :: Word32
, vkMaxImageDimension :: Word32
, vkMaxImageDimension :: Word32
, vkMaxImageDimensionCube :: Word32
, vkMaxImageArrayLayers :: Word32
, vkMaxTexelBufferElements :: Word32
, vkMaxUniformBufferRange :: Word32
, vkMaxStorageBufferRange :: Word32
, vkMaxPushConstantsSize :: Word32
, vkMaxMemoryAllocationCount :: Word32
, vkMaxSamplerAllocationCount :: Word32
, vkBufferImageGranularity :: VkDeviceSize
, vkSparseAddressSpaceSize :: VkDeviceSize
, vkMaxBoundDescriptorSets :: Word32
, vkMaxPerStageDescriptorSamplers :: Word32
, vkMaxPerStageDescriptorUniformBuffers :: Word32
, vkMaxPerStageDescriptorStorageBuffers :: Word32
, vkMaxPerStageDescriptorSampledImages :: Word32
, vkMaxPerStageDescriptorStorageImages :: Word32
, vkMaxPerStageDescriptorInputAttachments :: Word32
, vkMaxPerStageResources :: Word32
, vkMaxDescriptorSetSamplers :: Word32
, vkMaxDescriptorSetUniformBuffers :: Word32
, vkMaxDescriptorSetUniformBuffersDynamic :: Word32
, vkMaxDescriptorSetStorageBuffers :: Word32
, vkMaxDescriptorSetStorageBuffersDynamic :: Word32
, vkMaxDescriptorSetSampledImages :: Word32
, vkMaxDescriptorSetStorageImages :: Word32
, vkMaxDescriptorSetInputAttachments :: Word32
, vkMaxVertexInputAttributes :: Word32
, vkMaxVertexInputBindings :: Word32
, vkMaxVertexInputAttributeOffset :: Word32
, vkMaxVertexInputBindingStride :: Word32
, vkMaxVertexOutputComponents :: Word32
, vkMaxTessellationGenerationLevel :: Word32
, vkMaxTessellationPatchSize :: Word32
, vkMaxTessellationControlPerVertexInputComponents :: Word32
, vkMaxTessellationControlPerVertexOutputComponents :: Word32
, vkMaxTessellationControlPerPatchOutputComponents :: Word32
, vkMaxTessellationControlTotalOutputComponents :: Word32
, vkMaxTessellationEvaluationInputComponents :: Word32
, vkMaxTessellationEvaluationOutputComponents :: Word32
, vkMaxGeometryShaderInvocations :: Word32
, vkMaxGeometryInputComponents :: Word32
, vkMaxGeometryOutputComponents :: Word32
, vkMaxGeometryOutputVertices :: Word32
, vkMaxGeometryTotalOutputComponents :: Word32
, vkMaxFragmentInputComponents :: Word32
, vkMaxFragmentOutputAttachments :: Word32
, vkMaxFragmentDualSrcAttachments :: Word32
, vkMaxFragmentCombinedOutputResources :: Word32
, vkMaxComputeSharedMemorySize :: Word32
, vkMaxComputeWorkGroupCount :: Vec (ToPeano 3) Word32
, vkMaxComputeWorkGroupInvocations :: Word32
, vkMaxComputeWorkGroupSize :: Vec (ToPeano 3) Word32
, vkSubPixelPrecisionBits :: Word32
, vkSubTexelPrecisionBits :: Word32
, vkMipmapPrecisionBits :: Word32
, vkMaxDrawIndexedIndexValue :: Word32
, vkMaxDrawIndirectCount :: Word32
, vkMaxSamplerLodBias :: CFloat
, vkMaxSamplerAnisotropy :: CFloat
, vkMaxViewports :: Word32
, vkMaxViewportDimensions :: Vec (ToPeano 2) Word32
, vkViewportBoundsRange :: Vec (ToPeano 2) CFloat
, vkViewportSubPixelBits :: Word32
, vkMinMemoryMapAlignment :: CSize
, vkMinTexelBufferOffsetAlignment :: VkDeviceSize
, vkMinUniformBufferOffsetAlignment :: VkDeviceSize
, vkMinStorageBufferOffsetAlignment :: VkDeviceSize
, vkMinTexelOffset :: Int32
, vkMaxTexelOffset :: Word32
, vkMinTexelGatherOffset :: Int32
, vkMaxTexelGatherOffset :: Word32
, vkMinInterpolationOffset :: CFloat
, vkMaxInterpolationOffset :: CFloat
, vkSubPixelInterpolationOffsetBits :: Word32
, vkMaxFramebufferWidth :: Word32
, vkMaxFramebufferHeight :: Word32
, vkMaxFramebufferLayers :: Word32
, vkFramebufferColorSampleCounts :: VkSampleCountFlags
, vkFramebufferDepthSampleCounts :: VkSampleCountFlags
, vkFramebufferStencilSampleCounts :: VkSampleCountFlags
, vkFramebufferNoAttachmentsSampleCounts :: VkSampleCountFlags
, vkMaxColorAttachments :: Word32
, vkSampledImageColorSampleCounts :: VkSampleCountFlags
, vkSampledImageIntegerSampleCounts :: VkSampleCountFlags
, vkSampledImageDepthSampleCounts :: VkSampleCountFlags
, vkSampledImageStencilSampleCounts :: VkSampleCountFlags
, vkStorageImageSampleCounts :: VkSampleCountFlags
, vkMaxSampleMaskWords :: Word32
, vkTimestampComputeAndGraphics :: VkBool32
, vkTimestampPeriod :: CFloat
, vkMaxClipDistances :: Word32
, vkMaxCullDistances :: Word32
, vkMaxCombinedClipAndCullDistances :: Word32
, vkDiscreteQueuePriorities :: Word32
, vkPointSizeRange :: Vec (ToPeano 2) CFloat
, vkLineWidthRange :: Vec (ToPeano 2) CFloat
, vkPointSizeGranularity :: CFloat
, vkLineWidthGranularity :: CFloat
, vkStrictLines :: VkBool32
, vkStandardSampleLocations :: VkBool32
, vkOptimalBufferCopyOffsetAlignment :: VkDeviceSize
, vkOptimalBufferCopyRowPitchAlignment :: VkDeviceSize
, vkNonCoherentAtomSize :: VkDeviceSize
}
deriving (Eq)
instance Storable VkPhysicalDeviceLimits where
sizeOf _ = 504
alignment _ = 8
peek ptr = VkPhysicalDeviceLimits <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 68)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 76)
<*> peek (ptr `plusPtr` 80)
<*> peek (ptr `plusPtr` 84)
<*> peek (ptr `plusPtr` 88)
<*> peek (ptr `plusPtr` 92)
<*> peek (ptr `plusPtr` 96)
<*> peek (ptr `plusPtr` 100)
<*> peek (ptr `plusPtr` 104)
<*> peek (ptr `plusPtr` 108)
<*> peek (ptr `plusPtr` 112)
<*> peek (ptr `plusPtr` 116)
<*> peek (ptr `plusPtr` 120)
<*> peek (ptr `plusPtr` 124)
<*> peek (ptr `plusPtr` 128)
<*> peek (ptr `plusPtr` 132)
<*> peek (ptr `plusPtr` 136)
<*> peek (ptr `plusPtr` 140)
<*> peek (ptr `plusPtr` 144)
<*> peek (ptr `plusPtr` 148)
<*> peek (ptr `plusPtr` 152)
<*> peek (ptr `plusPtr` 156)
<*> peek (ptr `plusPtr` 160)
<*> peek (ptr `plusPtr` 164)
<*> peek (ptr `plusPtr` 168)
<*> peek (ptr `plusPtr` 172)
<*> peek (ptr `plusPtr` 176)
<*> peek (ptr `plusPtr` 180)
<*> peek (ptr `plusPtr` 184)
<*> peek (ptr `plusPtr` 188)
<*> peek (ptr `plusPtr` 192)
<*> peek (ptr `plusPtr` 196)
<*> peek (ptr `plusPtr` 200)
<*> peek (ptr `plusPtr` 204)
<*> peek (ptr `plusPtr` 208)
<*> peek (ptr `plusPtr` 212)
<*> peek (ptr `plusPtr` 216)
<*> peek (ptr `plusPtr` 220)
<*> peek (ptr `plusPtr` 232)
<*> peek (ptr `plusPtr` 236)
<*> peek (ptr `plusPtr` 248)
<*> peek (ptr `plusPtr` 252)
<*> peek (ptr `plusPtr` 256)
<*> peek (ptr `plusPtr` 260)
<*> peek (ptr `plusPtr` 264)
<*> peek (ptr `plusPtr` 268)
<*> peek (ptr `plusPtr` 272)
<*> peek (ptr `plusPtr` 276)
<*> peek (ptr `plusPtr` 280)
<*> peek (ptr `plusPtr` 288)
<*> peek (ptr `plusPtr` 296)
<*> peek (ptr `plusPtr` 304)
<*> peek (ptr `plusPtr` 312)
<*> peek (ptr `plusPtr` 320)
<*> peek (ptr `plusPtr` 328)
<*> peek (ptr `plusPtr` 336)
<*> peek (ptr `plusPtr` 340)
<*> peek (ptr `plusPtr` 344)
<*> peek (ptr `plusPtr` 348)
<*> peek (ptr `plusPtr` 352)
<*> peek (ptr `plusPtr` 356)
<*> peek (ptr `plusPtr` 360)
<*> peek (ptr `plusPtr` 364)
<*> peek (ptr `plusPtr` 368)
<*> peek (ptr `plusPtr` 372)
<*> peek (ptr `plusPtr` 376)
<*> peek (ptr `plusPtr` 380)
<*> peek (ptr `plusPtr` 384)
<*> peek (ptr `plusPtr` 388)
<*> peek (ptr `plusPtr` 392)
<*> peek (ptr `plusPtr` 396)
<*> peek (ptr `plusPtr` 400)
<*> peek (ptr `plusPtr` 404)
<*> peek (ptr `plusPtr` 408)
<*> peek (ptr `plusPtr` 412)
<*> peek (ptr `plusPtr` 416)
<*> peek (ptr `plusPtr` 420)
<*> peek (ptr `plusPtr` 424)
<*> peek (ptr `plusPtr` 428)
<*> peek (ptr `plusPtr` 432)
<*> peek (ptr `plusPtr` 436)
<*> peek (ptr `plusPtr` 440)
<*> peek (ptr `plusPtr` 444)
<*> peek (ptr `plusPtr` 452)
<*> peek (ptr `plusPtr` 460)
<*> peek (ptr `plusPtr` 464)
<*> peek (ptr `plusPtr` 468)
<*> peek (ptr `plusPtr` 472)
<*> peek (ptr `plusPtr` 480)
<*> peek (ptr `plusPtr` 488)
<*> peek (ptr `plusPtr` 496)
poke ptr poked = poke (ptr `plusPtr` 0) (vkMaxImageDimension (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 4) (vkMaxImageDimension (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 8) (vkMaxImageDimension (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 12) (vkMaxImageDimensionCube (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 16) (vkMaxImageArrayLayers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 20) (vkMaxTexelBufferElements (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 24) (vkMaxUniformBufferRange (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 28) (vkMaxStorageBufferRange (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 32) (vkMaxPushConstantsSize (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 36) (vkMaxMemoryAllocationCount (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 40) (vkMaxSamplerAllocationCount (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 48) (vkBufferImageGranularity (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 56) (vkSparseAddressSpaceSize (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 64) (vkMaxBoundDescriptorSets (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 68) (vkMaxPerStageDescriptorSamplers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 72) (vkMaxPerStageDescriptorUniformBuffers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 76) (vkMaxPerStageDescriptorStorageBuffers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 80) (vkMaxPerStageDescriptorSampledImages (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 84) (vkMaxPerStageDescriptorStorageImages (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 88) (vkMaxPerStageDescriptorInputAttachments (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 92) (vkMaxPerStageResources (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 96) (vkMaxDescriptorSetSamplers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 100) (vkMaxDescriptorSetUniformBuffers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 104) (vkMaxDescriptorSetUniformBuffersDynamic (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 108) (vkMaxDescriptorSetStorageBuffers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 112) (vkMaxDescriptorSetStorageBuffersDynamic (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 116) (vkMaxDescriptorSetSampledImages (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 120) (vkMaxDescriptorSetStorageImages (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 124) (vkMaxDescriptorSetInputAttachments (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 128) (vkMaxVertexInputAttributes (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 132) (vkMaxVertexInputBindings (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 136) (vkMaxVertexInputAttributeOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 140) (vkMaxVertexInputBindingStride (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 144) (vkMaxVertexOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 148) (vkMaxTessellationGenerationLevel (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 152) (vkMaxTessellationPatchSize (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 156) (vkMaxTessellationControlPerVertexInputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 160) (vkMaxTessellationControlPerVertexOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 164) (vkMaxTessellationControlPerPatchOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 168) (vkMaxTessellationControlTotalOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 172) (vkMaxTessellationEvaluationInputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 176) (vkMaxTessellationEvaluationOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 180) (vkMaxGeometryShaderInvocations (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 184) (vkMaxGeometryInputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 188) (vkMaxGeometryOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 192) (vkMaxGeometryOutputVertices (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 196) (vkMaxGeometryTotalOutputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 200) (vkMaxFragmentInputComponents (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 204) (vkMaxFragmentOutputAttachments (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 208) (vkMaxFragmentDualSrcAttachments (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 212) (vkMaxFragmentCombinedOutputResources (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 216) (vkMaxComputeSharedMemorySize (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 220) (vkMaxComputeWorkGroupCount (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 232) (vkMaxComputeWorkGroupInvocations (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 236) (vkMaxComputeWorkGroupSize (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 248) (vkSubPixelPrecisionBits (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 252) (vkSubTexelPrecisionBits (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 256) (vkMipmapPrecisionBits (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 260) (vkMaxDrawIndexedIndexValue (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 264) (vkMaxDrawIndirectCount (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 268) (vkMaxSamplerLodBias (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 272) (vkMaxSamplerAnisotropy (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 276) (vkMaxViewports (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 280) (vkMaxViewportDimensions (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 288) (vkViewportBoundsRange (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 296) (vkViewportSubPixelBits (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 304) (vkMinMemoryMapAlignment (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 312) (vkMinTexelBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 320) (vkMinUniformBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 328) (vkMinStorageBufferOffsetAlignment (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 336) (vkMinTexelOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 340) (vkMaxTexelOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 344) (vkMinTexelGatherOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 348) (vkMaxTexelGatherOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 352) (vkMinInterpolationOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 356) (vkMaxInterpolationOffset (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 360) (vkSubPixelInterpolationOffsetBits (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 364) (vkMaxFramebufferWidth (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 368) (vkMaxFramebufferHeight (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 372) (vkMaxFramebufferLayers (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 376) (vkFramebufferColorSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 380) (vkFramebufferDepthSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 384) (vkFramebufferStencilSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 388) (vkFramebufferNoAttachmentsSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 392) (vkMaxColorAttachments (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 396) (vkSampledImageColorSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 400) (vkSampledImageIntegerSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 404) (vkSampledImageDepthSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 408) (vkSampledImageStencilSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 412) (vkStorageImageSampleCounts (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 416) (vkMaxSampleMaskWords (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 420) (vkTimestampComputeAndGraphics (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 424) (vkTimestampPeriod (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 428) (vkMaxClipDistances (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 432) (vkMaxCullDistances (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 436) (vkMaxCombinedClipAndCullDistances (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 440) (vkDiscreteQueuePriorities (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 444) (vkPointSizeRange (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 452) (vkLineWidthRange (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 460) (vkPointSizeGranularity (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 464) (vkLineWidthGranularity (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 468) (vkStrictLines (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 472) (vkStandardSampleLocations (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 480) (vkOptimalBufferCopyOffsetAlignment (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 488) (vkOptimalBufferCopyRowPitchAlignment (poked :: VkPhysicalDeviceLimits))
*> poke (ptr `plusPtr` 496) (vkNonCoherentAtomSize (poked :: VkPhysicalDeviceLimits))
data VkSemaphoreCreateInfo =
VkSemaphoreCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkSemaphoreCreateFlags
}
deriving (Eq)
instance Storable VkSemaphoreCreateInfo where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkSemaphoreCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSemaphoreCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSemaphoreCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSemaphoreCreateInfo))
data VkQueryPoolCreateInfo =
VkQueryPoolCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkQueryPoolCreateFlags
, vkQueryType :: VkQueryType
, vkQueryCount :: Word32
, vkPipelineStatistics :: VkQueryPipelineStatisticFlags
}
deriving (Eq)
instance Storable VkQueryPoolCreateInfo where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkQueryPoolCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 28)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkQueryPoolCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkQueryPoolCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkQueryPoolCreateInfo))
*> poke (ptr `plusPtr` 20) (vkQueryType (poked :: VkQueryPoolCreateInfo))
*> poke (ptr `plusPtr` 24) (vkQueryCount (poked :: VkQueryPoolCreateInfo))
*> poke (ptr `plusPtr` 28) (vkPipelineStatistics (poked :: VkQueryPoolCreateInfo))
data VkFramebufferCreateInfo =
VkFramebufferCreateInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkFramebufferCreateFlags
, vkRenderPass :: VkRenderPass
, vkAttachmentCount :: Word32
, vkPAttachments :: Ptr VkImageView
, vkWidth :: Word32
, vkHeight :: Word32
, vkLayers :: Word32
}
deriving (Eq)
instance Storable VkFramebufferCreateInfo where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkFramebufferCreateInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 24) (vkRenderPass (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 32) (vkAttachmentCount (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 40) (vkPAttachments (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 48) (vkWidth (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 52) (vkHeight (poked :: VkFramebufferCreateInfo))
*> poke (ptr `plusPtr` 56) (vkLayers (poked :: VkFramebufferCreateInfo))
data VkDrawIndirectCommand =
VkDrawIndirectCommand{ vkVertexCount :: Word32
, vkInstanceCount :: Word32
, vkFirstVertex :: Word32
, vkFirstInstance :: Word32
}
deriving (Eq)
instance Storable VkDrawIndirectCommand where
sizeOf _ = 16
alignment _ = 4
peek ptr = VkDrawIndirectCommand <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
poke ptr poked = poke (ptr `plusPtr` 0) (vkVertexCount (poked :: VkDrawIndirectCommand))
*> poke (ptr `plusPtr` 4) (vkInstanceCount (poked :: VkDrawIndirectCommand))
*> poke (ptr `plusPtr` 8) (vkFirstVertex (poked :: VkDrawIndirectCommand))
*> poke (ptr `plusPtr` 12) (vkFirstInstance (poked :: VkDrawIndirectCommand))
data VkDrawIndexedIndirectCommand =
VkDrawIndexedIndirectCommand{ vkIndexCount :: Word32
, vkInstanceCount :: Word32
, vkFirstIndex :: Word32
, vkVertexOffset :: Int32
, vkFirstInstance :: Word32
}
deriving (Eq)
instance Storable VkDrawIndexedIndirectCommand where
sizeOf _ = 20
alignment _ = 4
peek ptr = VkDrawIndexedIndirectCommand <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 16)
poke ptr poked = poke (ptr `plusPtr` 0) (vkIndexCount (poked :: VkDrawIndexedIndirectCommand))
*> poke (ptr `plusPtr` 4) (vkInstanceCount (poked :: VkDrawIndexedIndirectCommand))
*> poke (ptr `plusPtr` 8) (vkFirstIndex (poked :: VkDrawIndexedIndirectCommand))
*> poke (ptr `plusPtr` 12) (vkVertexOffset (poked :: VkDrawIndexedIndirectCommand))
*> poke (ptr `plusPtr` 16) (vkFirstInstance (poked :: VkDrawIndexedIndirectCommand))
data VkDispatchIndirectCommand =
VkDispatchIndirectCommand{ vkX :: Word32
, vkY :: Word32
, vkZ :: Word32
}
deriving (Eq)
instance Storable VkDispatchIndirectCommand where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkDispatchIndirectCommand <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkX (poked :: VkDispatchIndirectCommand))
*> poke (ptr `plusPtr` 4) (vkY (poked :: VkDispatchIndirectCommand))
*> poke (ptr `plusPtr` 8) (vkZ (poked :: VkDispatchIndirectCommand))
data VkSubmitInfo =
VkSubmitInfo{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkWaitSemaphoreCount :: Word32
, vkPWaitSemaphores :: Ptr VkSemaphore
, vkPWaitDstStageMask :: Ptr VkPipelineStageFlags
, vkCommandBufferCount :: Word32
, vkPCommandBuffers :: Ptr VkCommandBuffer
, vkSignalSemaphoreCount :: Word32
, vkPSignalSemaphores :: Ptr VkSemaphore
}
deriving (Eq)
instance Storable VkSubmitInfo where
sizeOf _ = 72
alignment _ = 8
peek ptr = VkSubmitInfo <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 64)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 32) (vkPWaitDstStageMask (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 40) (vkCommandBufferCount (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 48) (vkPCommandBuffers (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 56) (vkSignalSemaphoreCount (poked :: VkSubmitInfo))
*> poke (ptr `plusPtr` 64) (vkPSignalSemaphores (poked :: VkSubmitInfo))
data VkDisplayPropertiesKHR =
VkDisplayPropertiesKHR{ vkDisplay :: VkDisplayKHR
, vkDisplayName :: Ptr CChar
, vkPhysicalDimensions :: VkExtent2D
, vkPhysicalResolution :: VkExtent2D
, vkSupportedTransforms :: VkSurfaceTransformFlagsKHR
, vkPlaneReorderPossible :: VkBool32
, vkPersistentContent :: VkBool32
}
deriving (Eq)
instance Storable VkDisplayPropertiesKHR where
sizeOf _ = 48
alignment _ = 8
peek ptr = VkDisplayPropertiesKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
poke ptr poked = poke (ptr `plusPtr` 0) (vkDisplay (poked :: VkDisplayPropertiesKHR))
*> poke (ptr `plusPtr` 8) (vkDisplayName (poked :: VkDisplayPropertiesKHR))
*> poke (ptr `plusPtr` 16) (vkPhysicalDimensions (poked :: VkDisplayPropertiesKHR))
*> poke (ptr `plusPtr` 24) (vkPhysicalResolution (poked :: VkDisplayPropertiesKHR))
*> poke (ptr `plusPtr` 32) (vkSupportedTransforms (poked :: VkDisplayPropertiesKHR))
*> poke (ptr `plusPtr` 36) (vkPlaneReorderPossible (poked :: VkDisplayPropertiesKHR))
*> poke (ptr `plusPtr` 40) (vkPersistentContent (poked :: VkDisplayPropertiesKHR))
data VkDisplayPlanePropertiesKHR =
VkDisplayPlanePropertiesKHR{ vkCurrentDisplay :: VkDisplayKHR
, vkCurrentStackIndex :: Word32
}
deriving (Eq)
instance Storable VkDisplayPlanePropertiesKHR where
sizeOf _ = 16
alignment _ = 8
peek ptr = VkDisplayPlanePropertiesKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkCurrentDisplay (poked :: VkDisplayPlanePropertiesKHR))
*> poke (ptr `plusPtr` 8) (vkCurrentStackIndex (poked :: VkDisplayPlanePropertiesKHR))
data VkDisplayModeParametersKHR =
VkDisplayModeParametersKHR{ vkVisibleRegion :: VkExtent2D
, vkRefreshRate :: Word32
}
deriving (Eq)
instance Storable VkDisplayModeParametersKHR where
sizeOf _ = 12
alignment _ = 4
peek ptr = VkDisplayModeParametersKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkVisibleRegion (poked :: VkDisplayModeParametersKHR))
*> poke (ptr `plusPtr` 8) (vkRefreshRate (poked :: VkDisplayModeParametersKHR))
data VkDisplayModePropertiesKHR =
VkDisplayModePropertiesKHR{ vkDisplayMode :: VkDisplayModeKHR
, vkParameters :: VkDisplayModeParametersKHR
}
deriving (Eq)
instance Storable VkDisplayModePropertiesKHR where
sizeOf _ = 24
alignment _ = 8
peek ptr = VkDisplayModePropertiesKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
poke ptr poked = poke (ptr `plusPtr` 0) (vkDisplayMode (poked :: VkDisplayModePropertiesKHR))
*> poke (ptr `plusPtr` 8) (vkParameters (poked :: VkDisplayModePropertiesKHR))
data VkDisplayModeCreateInfoKHR =
VkDisplayModeCreateInfoKHR{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDisplayModeCreateFlagsKHR
, vkParameters :: VkDisplayModeParametersKHR
}
deriving (Eq)
instance Storable VkDisplayModeCreateInfoKHR where
sizeOf _ = 32
alignment _ = 8
peek ptr = VkDisplayModeCreateInfoKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 20)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayModeCreateInfoKHR))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayModeCreateInfoKHR))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDisplayModeCreateInfoKHR))
*> poke (ptr `plusPtr` 20) (vkParameters (poked :: VkDisplayModeCreateInfoKHR))
data VkDisplayPlaneCapabilitiesKHR =
VkDisplayPlaneCapabilitiesKHR{ vkSupportedAlpha :: VkDisplayPlaneAlphaFlagsKHR
, vkMinSrcPosition :: VkOffset2D
, vkMaxSrcPosition :: VkOffset2D
, vkMinSrcExtent :: VkExtent2D
, vkMaxSrcExtent :: VkExtent2D
, vkMinDstPosition :: VkOffset2D
, vkMaxDstPosition :: VkOffset2D
, vkMinDstExtent :: VkExtent2D
, vkMaxDstExtent :: VkExtent2D
}
deriving (Eq)
instance Storable VkDisplayPlaneCapabilitiesKHR where
sizeOf _ = 68
alignment _ = 4
peek ptr = VkDisplayPlaneCapabilitiesKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 12)
<*> peek (ptr `plusPtr` 20)
<*> peek (ptr `plusPtr` 28)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 60)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSupportedAlpha (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 4) (vkMinSrcPosition (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 12) (vkMaxSrcPosition (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 20) (vkMinSrcExtent (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 28) (vkMaxSrcExtent (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 36) (vkMinDstPosition (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 44) (vkMaxDstPosition (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 52) (vkMinDstExtent (poked :: VkDisplayPlaneCapabilitiesKHR))
*> poke (ptr `plusPtr` 60) (vkMaxDstExtent (poked :: VkDisplayPlaneCapabilitiesKHR))
data VkDisplaySurfaceCreateInfoKHR =
VkDisplaySurfaceCreateInfoKHR{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDisplaySurfaceCreateFlagsKHR
, vkDisplayMode :: VkDisplayModeKHR
, vkPlaneIndex :: Word32
, vkPlaneStackIndex :: Word32
, vkTransform :: VkSurfaceTransformFlagBitsKHR
, vkGlobalAlpha :: CFloat
, vkAlphaMode :: VkDisplayPlaneAlphaFlagBitsKHR
, vkImageExtent :: VkExtent2D
}
deriving (Eq)
instance Storable VkDisplaySurfaceCreateInfoKHR where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkDisplaySurfaceCreateInfoKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 52)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 24) (vkDisplayMode (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 32) (vkPlaneIndex (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 36) (vkPlaneStackIndex (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 40) (vkTransform (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 44) (vkGlobalAlpha (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 48) (vkAlphaMode (poked :: VkDisplaySurfaceCreateInfoKHR))
*> poke (ptr `plusPtr` 52) (vkImageExtent (poked :: VkDisplaySurfaceCreateInfoKHR))
data VkDisplayPresentInfoKHR =
VkDisplayPresentInfoKHR{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkSrcRect :: VkRect2D
, vkDstRect :: VkRect2D
, vkPersistent :: VkBool32
}
deriving (Eq)
instance Storable VkDisplayPresentInfoKHR where
sizeOf _ = 56
alignment _ = 8
peek ptr = VkDisplayPresentInfoKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 16) (vkSrcRect (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 32) (vkDstRect (poked :: VkDisplayPresentInfoKHR))
*> poke (ptr `plusPtr` 48) (vkPersistent (poked :: VkDisplayPresentInfoKHR))
data VkSurfaceCapabilitiesKHR =
VkSurfaceCapabilitiesKHR{ vkMinImageCount :: Word32
, vkMaxImageCount :: Word32
, vkCurrentExtent :: VkExtent2D
, vkMinImageExtent :: VkExtent2D
, vkMaxImageExtent :: VkExtent2D
, vkMaxImageArrayLayers :: Word32
, vkSupportedTransforms :: VkSurfaceTransformFlagsKHR
, vkCurrentTransform :: VkSurfaceTransformFlagBitsKHR
, vkSupportedCompositeAlpha :: VkCompositeAlphaFlagsKHR
, vkSupportedUsageFlags :: VkImageUsageFlags
}
deriving (Eq)
instance Storable VkSurfaceCapabilitiesKHR where
sizeOf _ = 52
alignment _ = 4
peek ptr = VkSurfaceCapabilitiesKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 48)
poke ptr poked = poke (ptr `plusPtr` 0) (vkMinImageCount (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 4) (vkMaxImageCount (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 8) (vkCurrentExtent (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 16) (vkMinImageExtent (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 24) (vkMaxImageExtent (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 32) (vkMaxImageArrayLayers (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 36) (vkSupportedTransforms (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 40) (vkCurrentTransform (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 44) (vkSupportedCompositeAlpha (poked :: VkSurfaceCapabilitiesKHR))
*> poke (ptr `plusPtr` 48) (vkSupportedUsageFlags (poked :: VkSurfaceCapabilitiesKHR))
data VkSurfaceFormatKHR =
VkSurfaceFormatKHR{ vkFormat :: VkFormat
, vkColorSpace :: VkColorSpaceKHR
}
deriving (Eq)
instance Storable VkSurfaceFormatKHR where
sizeOf _ = 8
alignment _ = 4
peek ptr = VkSurfaceFormatKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 4)
poke ptr poked = poke (ptr `plusPtr` 0) (vkFormat (poked :: VkSurfaceFormatKHR))
*> poke (ptr `plusPtr` 4) (vkColorSpace (poked :: VkSurfaceFormatKHR))
data VkSwapchainCreateInfoKHR =
VkSwapchainCreateInfoKHR{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkSwapchainCreateFlagsKHR
, vkSurface :: VkSurfaceKHR
, vkMinImageCount :: Word32
, vkImageFormat :: VkFormat
, vkImageColorSpace :: VkColorSpaceKHR
, vkImageExtent :: VkExtent2D
, vkImageArrayLayers :: Word32
, vkImageUsage :: VkImageUsageFlags
, vkImageSharingMode :: VkSharingMode
, vkQueueFamilyIndexCount :: Word32
, vkPQueueFamilyIndices :: Ptr Word32
, vkPreTransform :: VkSurfaceTransformFlagBitsKHR
, vkCompositeAlpha :: VkCompositeAlphaFlagBitsKHR
, vkPresentMode :: VkPresentModeKHR
, vkClipped :: VkBool32
, vkOldSwapchain :: VkSwapchainKHR
}
deriving (Eq)
instance Storable VkSwapchainCreateInfoKHR where
sizeOf _ = 104
alignment _ = 8
peek ptr = VkSwapchainCreateInfoKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 36)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 44)
<*> peek (ptr `plusPtr` 52)
<*> peek (ptr `plusPtr` 56)
<*> peek (ptr `plusPtr` 60)
<*> peek (ptr `plusPtr` 64)
<*> peek (ptr `plusPtr` 72)
<*> peek (ptr `plusPtr` 80)
<*> peek (ptr `plusPtr` 84)
<*> peek (ptr `plusPtr` 88)
<*> peek (ptr `plusPtr` 92)
<*> peek (ptr `plusPtr` 96)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 24) (vkSurface (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 32) (vkMinImageCount (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 36) (vkImageFormat (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 40) (vkImageColorSpace (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 44) (vkImageExtent (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 52) (vkImageArrayLayers (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 56) (vkImageUsage (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 60) (vkImageSharingMode (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 64) (vkQueueFamilyIndexCount (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 72) (vkPQueueFamilyIndices (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 80) (vkPreTransform (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 84) (vkCompositeAlpha (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 88) (vkPresentMode (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 92) (vkClipped (poked :: VkSwapchainCreateInfoKHR))
*> poke (ptr `plusPtr` 96) (vkOldSwapchain (poked :: VkSwapchainCreateInfoKHR))
data VkPresentInfoKHR =
VkPresentInfoKHR{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkWaitSemaphoreCount :: Word32
, vkPWaitSemaphores :: Ptr VkSemaphore
, vkSwapchainCount :: Word32
, vkPSwapchains :: Ptr VkSwapchainKHR
, vkPImageIndices :: Ptr Word32
, vkPResults :: Ptr VkResult
}
deriving (Eq)
instance Storable VkPresentInfoKHR where
sizeOf _ = 64
alignment _ = 8
peek ptr = VkPresentInfoKHR <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
<*> peek (ptr `plusPtr` 40)
<*> peek (ptr `plusPtr` 48)
<*> peek (ptr `plusPtr` 56)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 16) (vkWaitSemaphoreCount (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 24) (vkPWaitSemaphores (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 32) (vkSwapchainCount (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 40) (vkPSwapchains (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 48) (vkPImageIndices (poked :: VkPresentInfoKHR))
*> poke (ptr `plusPtr` 56) (vkPResults (poked :: VkPresentInfoKHR))
data VkDebugReportCallbackCreateInfoEXT =
VkDebugReportCallbackCreateInfoEXT{ vkSType :: VkStructureType
, vkPNext :: Ptr Void
, vkFlags :: VkDebugReportFlagsEXT
, vkPfnCallback :: PFN_vkDebugReportCallbackEXT
, vkPUserData :: Ptr Void
}
deriving (Eq)
instance Storable VkDebugReportCallbackCreateInfoEXT where
sizeOf _ = 40
alignment _ = 8
peek ptr = VkDebugReportCallbackCreateInfoEXT <$> peek (ptr `plusPtr` 0)
<*> peek (ptr `plusPtr` 8)
<*> peek (ptr `plusPtr` 16)
<*> peek (ptr `plusPtr` 24)
<*> peek (ptr `plusPtr` 32)
poke ptr poked = poke (ptr `plusPtr` 0) (vkSType (poked :: VkDebugReportCallbackCreateInfoEXT))
*> poke (ptr `plusPtr` 8) (vkPNext (poked :: VkDebugReportCallbackCreateInfoEXT))
*> poke (ptr `plusPtr` 16) (vkFlags (poked :: VkDebugReportCallbackCreateInfoEXT))
*> poke (ptr `plusPtr` 24) (vkPfnCallback (poked :: VkDebugReportCallbackCreateInfoEXT))
*> poke (ptr `plusPtr` 32) (vkPUserData (poked :: VkDebugReportCallbackCreateInfoEXT))
-- * Union Types
-- | // Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
data VkClearColorValue = VkFloat (Vec (ToPeano 4) CFloat)
| VkInt (Vec (ToPeano 4) Int32)
| VkUint (Vec (ToPeano 4) Word32)
deriving (Eq)
-- | _Note_: peek is undefined as we wouldn't know which constructor to use
instance Storable VkClearColorValue where
sizeOf _ = 16
alignment _ = 4
peek _ = error "peek@VkClearColorValue"
poke ptr poked = case poked of
VkFloat e -> poke (castPtr ptr) e
VkInt e -> poke (castPtr ptr) e
VkUint e -> poke (castPtr ptr) e
-- | // Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.
data VkClearValue = VkColor VkClearColorValue
| VkDepthStencil VkClearDepthStencilValue
deriving (Eq)
-- | _Note_: peek is undefined as we wouldn't know which constructor to use
instance Storable VkClearValue where
sizeOf _ = 16
alignment _ = 4
peek _ = error "peek@VkClearValue"
poke ptr poked = case poked of
VkColor e -> poke (castPtr ptr) e
VkDepthStencil e -> poke (castPtr ptr) e
-- * Commands
-- ** vkCreateInstance
foreign import ccall "vkCreateInstance" vkCreateInstance ::
Ptr VkInstanceCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkInstance -> IO VkResult
-- ** vkDestroyInstance
foreign import ccall "vkDestroyInstance" vkDestroyInstance ::
VkInstance -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkEnumeratePhysicalDevices
foreign import ccall "vkEnumeratePhysicalDevices" vkEnumeratePhysicalDevices ::
VkInstance -> Ptr Word32 -> Ptr VkPhysicalDevice -> IO VkResult
-- ** vkGetDeviceProcAddr
foreign import ccall "vkGetDeviceProcAddr" vkGetDeviceProcAddr ::
VkDevice -> Ptr CChar -> IO PFN_vkVoidFunction
-- ** vkGetInstanceProcAddr
foreign import ccall "vkGetInstanceProcAddr" vkGetInstanceProcAddr ::
VkInstance -> Ptr CChar -> IO PFN_vkVoidFunction
-- ** vkGetPhysicalDeviceProperties
foreign import ccall "vkGetPhysicalDeviceProperties" vkGetPhysicalDeviceProperties ::
VkPhysicalDevice -> Ptr VkPhysicalDeviceProperties -> IO ()
-- ** vkGetPhysicalDeviceQueueFamilyProperties
foreign import ccall "vkGetPhysicalDeviceQueueFamilyProperties" vkGetPhysicalDeviceQueueFamilyProperties ::
VkPhysicalDevice ->
Ptr Word32 -> Ptr VkQueueFamilyProperties -> IO ()
-- ** vkGetPhysicalDeviceMemoryProperties
foreign import ccall "vkGetPhysicalDeviceMemoryProperties" vkGetPhysicalDeviceMemoryProperties ::
VkPhysicalDevice -> Ptr VkPhysicalDeviceMemoryProperties -> IO ()
-- ** vkGetPhysicalDeviceFeatures
foreign import ccall "vkGetPhysicalDeviceFeatures" vkGetPhysicalDeviceFeatures ::
VkPhysicalDevice -> Ptr VkPhysicalDeviceFeatures -> IO ()
-- ** vkGetPhysicalDeviceFormatProperties
foreign import ccall "vkGetPhysicalDeviceFormatProperties" vkGetPhysicalDeviceFormatProperties ::
VkPhysicalDevice -> VkFormat -> Ptr VkFormatProperties -> IO ()
-- ** vkGetPhysicalDeviceImageFormatProperties
foreign import ccall "vkGetPhysicalDeviceImageFormatProperties" vkGetPhysicalDeviceImageFormatProperties ::
VkPhysicalDevice ->
VkFormat ->
VkImageType ->
VkImageTiling ->
VkImageUsageFlags ->
VkImageCreateFlags -> Ptr VkImageFormatProperties -> IO VkResult
-- ** vkCreateDevice
foreign import ccall "vkCreateDevice" vkCreateDevice ::
VkPhysicalDevice ->
Ptr VkDeviceCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkDevice -> IO VkResult
-- ** vkDestroyDevice
foreign import ccall "vkDestroyDevice" vkDestroyDevice ::
VkDevice -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkEnumerateInstanceLayerProperties
foreign import ccall "vkEnumerateInstanceLayerProperties" vkEnumerateInstanceLayerProperties ::
Ptr Word32 -> Ptr VkLayerProperties -> IO VkResult
-- ** vkEnumerateInstanceExtensionProperties
foreign import ccall "vkEnumerateInstanceExtensionProperties" vkEnumerateInstanceExtensionProperties ::
Ptr CChar -> Ptr Word32 -> Ptr VkExtensionProperties -> IO VkResult
-- ** vkEnumerateDeviceLayerProperties
foreign import ccall "vkEnumerateDeviceLayerProperties" vkEnumerateDeviceLayerProperties ::
VkPhysicalDevice ->
Ptr Word32 -> Ptr VkLayerProperties -> IO VkResult
-- ** vkEnumerateDeviceExtensionProperties
foreign import ccall "vkEnumerateDeviceExtensionProperties" vkEnumerateDeviceExtensionProperties ::
VkPhysicalDevice ->
Ptr CChar -> Ptr Word32 -> Ptr VkExtensionProperties -> IO VkResult
-- ** vkGetDeviceQueue
foreign import ccall "vkGetDeviceQueue" vkGetDeviceQueue ::
VkDevice -> Word32 -> Word32 -> Ptr VkQueue -> IO ()
-- ** vkQueueSubmit
foreign import ccall "vkQueueSubmit" vkQueueSubmit ::
VkQueue -> Word32 -> Ptr VkSubmitInfo -> VkFence -> IO VkResult
-- ** vkQueueWaitIdle
foreign import ccall "vkQueueWaitIdle" vkQueueWaitIdle ::
VkQueue -> IO VkResult
-- ** vkDeviceWaitIdle
foreign import ccall "vkDeviceWaitIdle" vkDeviceWaitIdle ::
VkDevice -> IO VkResult
-- ** vkAllocateMemory
foreign import ccall "vkAllocateMemory" vkAllocateMemory ::
VkDevice ->
Ptr VkMemoryAllocateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkDeviceMemory -> IO VkResult
-- ** vkFreeMemory
foreign import ccall "vkFreeMemory" vkFreeMemory ::
VkDevice -> VkDeviceMemory -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkMapMemory
foreign import ccall "vkMapMemory" vkMapMemory ::
VkDevice ->
VkDeviceMemory ->
VkDeviceSize ->
VkDeviceSize -> VkMemoryMapFlags -> Ptr (Ptr Void) -> IO VkResult
-- ** vkUnmapMemory
foreign import ccall "vkUnmapMemory" vkUnmapMemory ::
VkDevice -> VkDeviceMemory -> IO ()
-- ** vkFlushMappedMemoryRanges
foreign import ccall "vkFlushMappedMemoryRanges" vkFlushMappedMemoryRanges ::
VkDevice -> Word32 -> Ptr VkMappedMemoryRange -> IO VkResult
-- ** vkInvalidateMappedMemoryRanges
foreign import ccall "vkInvalidateMappedMemoryRanges" vkInvalidateMappedMemoryRanges ::
VkDevice -> Word32 -> Ptr VkMappedMemoryRange -> IO VkResult
-- ** vkGetDeviceMemoryCommitment
foreign import ccall "vkGetDeviceMemoryCommitment" vkGetDeviceMemoryCommitment ::
VkDevice -> VkDeviceMemory -> Ptr VkDeviceSize -> IO ()
-- ** vkGetBufferMemoryRequirements
foreign import ccall "vkGetBufferMemoryRequirements" vkGetBufferMemoryRequirements ::
VkDevice -> VkBuffer -> Ptr VkMemoryRequirements -> IO ()
-- ** vkBindBufferMemory
foreign import ccall "vkBindBufferMemory" vkBindBufferMemory ::
VkDevice ->
VkBuffer -> VkDeviceMemory -> VkDeviceSize -> IO VkResult
-- ** vkGetImageMemoryRequirements
foreign import ccall "vkGetImageMemoryRequirements" vkGetImageMemoryRequirements ::
VkDevice -> VkImage -> Ptr VkMemoryRequirements -> IO ()
-- ** vkBindImageMemory
foreign import ccall "vkBindImageMemory" vkBindImageMemory ::
VkDevice ->
VkImage -> VkDeviceMemory -> VkDeviceSize -> IO VkResult
-- ** vkGetImageSparseMemoryRequirements
foreign import ccall "vkGetImageSparseMemoryRequirements" vkGetImageSparseMemoryRequirements ::
VkDevice ->
VkImage ->
Ptr Word32 -> Ptr VkSparseImageMemoryRequirements -> IO ()
-- ** vkGetPhysicalDeviceSparseImageFormatProperties
foreign import ccall "vkGetPhysicalDeviceSparseImageFormatProperties" vkGetPhysicalDeviceSparseImageFormatProperties ::
VkPhysicalDevice ->
VkFormat ->
VkImageType ->
VkSampleCountFlagBits ->
VkImageUsageFlags ->
VkImageTiling ->
Ptr Word32 -> Ptr VkSparseImageFormatProperties -> IO ()
-- ** vkQueueBindSparse
foreign import ccall "vkQueueBindSparse" vkQueueBindSparse ::
VkQueue -> Word32 -> Ptr VkBindSparseInfo -> VkFence -> IO VkResult
-- ** vkCreateFence
foreign import ccall "vkCreateFence" vkCreateFence ::
VkDevice ->
Ptr VkFenceCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkFence -> IO VkResult
-- ** vkDestroyFence
foreign import ccall "vkDestroyFence" vkDestroyFence ::
VkDevice -> VkFence -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkResetFences
foreign import ccall "vkResetFences" vkResetFences ::
VkDevice -> Word32 -> Ptr VkFence -> IO VkResult
-- ** vkGetFenceStatus
foreign import ccall "vkGetFenceStatus" vkGetFenceStatus ::
VkDevice -> VkFence -> IO VkResult
-- ** vkWaitForFences
foreign import ccall "vkWaitForFences" vkWaitForFences ::
VkDevice ->
Word32 -> Ptr VkFence -> VkBool32 -> Word64 -> IO VkResult
-- ** vkCreateSemaphore
foreign import ccall "vkCreateSemaphore" vkCreateSemaphore ::
VkDevice ->
Ptr VkSemaphoreCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkSemaphore -> IO VkResult
-- ** vkDestroySemaphore
foreign import ccall "vkDestroySemaphore" vkDestroySemaphore ::
VkDevice -> VkSemaphore -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateEvent
foreign import ccall "vkCreateEvent" vkCreateEvent ::
VkDevice ->
Ptr VkEventCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkEvent -> IO VkResult
-- ** vkDestroyEvent
foreign import ccall "vkDestroyEvent" vkDestroyEvent ::
VkDevice -> VkEvent -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetEventStatus
foreign import ccall "vkGetEventStatus" vkGetEventStatus ::
VkDevice -> VkEvent -> IO VkResult
-- ** vkSetEvent
foreign import ccall "vkSetEvent" vkSetEvent ::
VkDevice -> VkEvent -> IO VkResult
-- ** vkResetEvent
foreign import ccall "vkResetEvent" vkResetEvent ::
VkDevice -> VkEvent -> IO VkResult
-- ** vkCreateQueryPool
foreign import ccall "vkCreateQueryPool" vkCreateQueryPool ::
VkDevice ->
Ptr VkQueryPoolCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkQueryPool -> IO VkResult
-- ** vkDestroyQueryPool
foreign import ccall "vkDestroyQueryPool" vkDestroyQueryPool ::
VkDevice -> VkQueryPool -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetQueryPoolResults
foreign import ccall "vkGetQueryPoolResults" vkGetQueryPoolResults ::
VkDevice ->
VkQueryPool ->
Word32 ->
Word32 ->
CSize ->
Ptr Void -> VkDeviceSize -> VkQueryResultFlags -> IO VkResult
-- ** vkCreateBuffer
foreign import ccall "vkCreateBuffer" vkCreateBuffer ::
VkDevice ->
Ptr VkBufferCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkBuffer -> IO VkResult
-- ** vkDestroyBuffer
foreign import ccall "vkDestroyBuffer" vkDestroyBuffer ::
VkDevice -> VkBuffer -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateBufferView
foreign import ccall "vkCreateBufferView" vkCreateBufferView ::
VkDevice ->
Ptr VkBufferViewCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkBufferView -> IO VkResult
-- ** vkDestroyBufferView
foreign import ccall "vkDestroyBufferView" vkDestroyBufferView ::
VkDevice -> VkBufferView -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateImage
foreign import ccall "vkCreateImage" vkCreateImage ::
VkDevice ->
Ptr VkImageCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkImage -> IO VkResult
-- ** vkDestroyImage
foreign import ccall "vkDestroyImage" vkDestroyImage ::
VkDevice -> VkImage -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetImageSubresourceLayout
foreign import ccall "vkGetImageSubresourceLayout" vkGetImageSubresourceLayout ::
VkDevice ->
VkImage ->
Ptr VkImageSubresource -> Ptr VkSubresourceLayout -> IO ()
-- ** vkCreateImageView
foreign import ccall "vkCreateImageView" vkCreateImageView ::
VkDevice ->
Ptr VkImageViewCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkImageView -> IO VkResult
-- ** vkDestroyImageView
foreign import ccall "vkDestroyImageView" vkDestroyImageView ::
VkDevice -> VkImageView -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateShaderModule
foreign import ccall "vkCreateShaderModule" vkCreateShaderModule ::
VkDevice ->
Ptr VkShaderModuleCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkShaderModule -> IO VkResult
-- ** vkDestroyShaderModule
foreign import ccall "vkDestroyShaderModule" vkDestroyShaderModule ::
VkDevice -> VkShaderModule -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreatePipelineCache
foreign import ccall "vkCreatePipelineCache" vkCreatePipelineCache ::
VkDevice ->
Ptr VkPipelineCacheCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkPipelineCache -> IO VkResult
-- ** vkDestroyPipelineCache
foreign import ccall "vkDestroyPipelineCache" vkDestroyPipelineCache ::
VkDevice -> VkPipelineCache -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetPipelineCacheData
foreign import ccall "vkGetPipelineCacheData" vkGetPipelineCacheData ::
VkDevice -> VkPipelineCache -> Ptr CSize -> Ptr Void -> IO VkResult
-- ** vkMergePipelineCaches
foreign import ccall "vkMergePipelineCaches" vkMergePipelineCaches ::
VkDevice ->
VkPipelineCache -> Word32 -> Ptr VkPipelineCache -> IO VkResult
-- ** vkCreateGraphicsPipelines
foreign import ccall "vkCreateGraphicsPipelines" vkCreateGraphicsPipelines ::
VkDevice ->
VkPipelineCache ->
Word32 ->
Ptr VkGraphicsPipelineCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkPipeline -> IO VkResult
-- ** vkCreateComputePipelines
foreign import ccall "vkCreateComputePipelines" vkCreateComputePipelines ::
VkDevice ->
VkPipelineCache ->
Word32 ->
Ptr VkComputePipelineCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkPipeline -> IO VkResult
-- ** vkDestroyPipeline
foreign import ccall "vkDestroyPipeline" vkDestroyPipeline ::
VkDevice -> VkPipeline -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreatePipelineLayout
foreign import ccall "vkCreatePipelineLayout" vkCreatePipelineLayout ::
VkDevice ->
Ptr VkPipelineLayoutCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkPipelineLayout -> IO VkResult
-- ** vkDestroyPipelineLayout
foreign import ccall "vkDestroyPipelineLayout" vkDestroyPipelineLayout ::
VkDevice -> VkPipelineLayout -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateSampler
foreign import ccall "vkCreateSampler" vkCreateSampler ::
VkDevice ->
Ptr VkSamplerCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkSampler -> IO VkResult
-- ** vkDestroySampler
foreign import ccall "vkDestroySampler" vkDestroySampler ::
VkDevice -> VkSampler -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateDescriptorSetLayout
foreign import ccall "vkCreateDescriptorSetLayout" vkCreateDescriptorSetLayout ::
VkDevice ->
Ptr VkDescriptorSetLayoutCreateInfo ->
Ptr VkAllocationCallbacks ->
Ptr VkDescriptorSetLayout -> IO VkResult
-- ** vkDestroyDescriptorSetLayout
foreign import ccall "vkDestroyDescriptorSetLayout" vkDestroyDescriptorSetLayout ::
VkDevice ->
VkDescriptorSetLayout -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateDescriptorPool
foreign import ccall "vkCreateDescriptorPool" vkCreateDescriptorPool ::
VkDevice ->
Ptr VkDescriptorPoolCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkDescriptorPool -> IO VkResult
-- ** vkDestroyDescriptorPool
foreign import ccall "vkDestroyDescriptorPool" vkDestroyDescriptorPool ::
VkDevice -> VkDescriptorPool -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkResetDescriptorPool
foreign import ccall "vkResetDescriptorPool" vkResetDescriptorPool ::
VkDevice ->
VkDescriptorPool -> VkDescriptorPoolResetFlags -> IO VkResult
-- ** vkAllocateDescriptorSets
foreign import ccall "vkAllocateDescriptorSets" vkAllocateDescriptorSets ::
VkDevice ->
Ptr VkDescriptorSetAllocateInfo ->
Ptr VkDescriptorSet -> IO VkResult
-- ** vkFreeDescriptorSets
foreign import ccall "vkFreeDescriptorSets" vkFreeDescriptorSets ::
VkDevice ->
VkDescriptorPool -> Word32 -> Ptr VkDescriptorSet -> IO VkResult
-- ** vkUpdateDescriptorSets
foreign import ccall "vkUpdateDescriptorSets" vkUpdateDescriptorSets ::
VkDevice ->
Word32 ->
Ptr VkWriteDescriptorSet ->
Word32 -> Ptr VkCopyDescriptorSet -> IO ()
-- ** vkCreateFramebuffer
foreign import ccall "vkCreateFramebuffer" vkCreateFramebuffer ::
VkDevice ->
Ptr VkFramebufferCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkFramebuffer -> IO VkResult
-- ** vkDestroyFramebuffer
foreign import ccall "vkDestroyFramebuffer" vkDestroyFramebuffer ::
VkDevice -> VkFramebuffer -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkCreateRenderPass
foreign import ccall "vkCreateRenderPass" vkCreateRenderPass ::
VkDevice ->
Ptr VkRenderPassCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkRenderPass -> IO VkResult
-- ** vkDestroyRenderPass
foreign import ccall "vkDestroyRenderPass" vkDestroyRenderPass ::
VkDevice -> VkRenderPass -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetRenderAreaGranularity
foreign import ccall "vkGetRenderAreaGranularity" vkGetRenderAreaGranularity ::
VkDevice -> VkRenderPass -> Ptr VkExtent2D -> IO ()
-- ** vkCreateCommandPool
foreign import ccall "vkCreateCommandPool" vkCreateCommandPool ::
VkDevice ->
Ptr VkCommandPoolCreateInfo ->
Ptr VkAllocationCallbacks -> Ptr VkCommandPool -> IO VkResult
-- ** vkDestroyCommandPool
foreign import ccall "vkDestroyCommandPool" vkDestroyCommandPool ::
VkDevice -> VkCommandPool -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkResetCommandPool
foreign import ccall "vkResetCommandPool" vkResetCommandPool ::
VkDevice -> VkCommandPool -> VkCommandPoolResetFlags -> IO VkResult
-- ** vkAllocateCommandBuffers
foreign import ccall "vkAllocateCommandBuffers" vkAllocateCommandBuffers ::
VkDevice ->
Ptr VkCommandBufferAllocateInfo ->
Ptr VkCommandBuffer -> IO VkResult
-- ** vkFreeCommandBuffers
foreign import ccall "vkFreeCommandBuffers" vkFreeCommandBuffers ::
VkDevice -> VkCommandPool -> Word32 -> Ptr VkCommandBuffer -> IO ()
-- ** vkBeginCommandBuffer
foreign import ccall "vkBeginCommandBuffer" vkBeginCommandBuffer ::
VkCommandBuffer -> Ptr VkCommandBufferBeginInfo -> IO VkResult
-- ** vkEndCommandBuffer
foreign import ccall "vkEndCommandBuffer" vkEndCommandBuffer ::
VkCommandBuffer -> IO VkResult
-- ** vkResetCommandBuffer
foreign import ccall "vkResetCommandBuffer" vkResetCommandBuffer ::
VkCommandBuffer -> VkCommandBufferResetFlags -> IO VkResult
-- ** vkCmdBindPipeline
foreign import ccall "vkCmdBindPipeline" vkCmdBindPipeline ::
VkCommandBuffer -> VkPipelineBindPoint -> VkPipeline -> IO ()
-- ** vkCmdSetViewport
foreign import ccall "vkCmdSetViewport" vkCmdSetViewport ::
VkCommandBuffer -> Word32 -> Word32 -> Ptr VkViewport -> IO ()
-- ** vkCmdSetScissor
foreign import ccall "vkCmdSetScissor" vkCmdSetScissor ::
VkCommandBuffer -> Word32 -> Word32 -> Ptr VkRect2D -> IO ()
-- ** vkCmdSetLineWidth
foreign import ccall "vkCmdSetLineWidth" vkCmdSetLineWidth ::
VkCommandBuffer -> CFloat -> IO ()
-- ** vkCmdSetDepthBias
foreign import ccall "vkCmdSetDepthBias" vkCmdSetDepthBias ::
VkCommandBuffer -> CFloat -> CFloat -> CFloat -> IO ()
-- ** vkCmdSetBlendConstants
foreign import ccall "vkCmdSetBlendConstants" vkCmdSetBlendConstants ::
VkCommandBuffer -> Ptr CFloat -> IO ()
-- ** vkCmdSetDepthBounds
foreign import ccall "vkCmdSetDepthBounds" vkCmdSetDepthBounds ::
VkCommandBuffer -> CFloat -> CFloat -> IO ()
-- ** vkCmdSetStencilCompareMask
foreign import ccall "vkCmdSetStencilCompareMask" vkCmdSetStencilCompareMask ::
VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()
-- ** vkCmdSetStencilWriteMask
foreign import ccall "vkCmdSetStencilWriteMask" vkCmdSetStencilWriteMask ::
VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()
-- ** vkCmdSetStencilReference
foreign import ccall "vkCmdSetStencilReference" vkCmdSetStencilReference ::
VkCommandBuffer -> VkStencilFaceFlags -> Word32 -> IO ()
-- ** vkCmdBindDescriptorSets
foreign import ccall "vkCmdBindDescriptorSets" vkCmdBindDescriptorSets ::
VkCommandBuffer ->
VkPipelineBindPoint ->
VkPipelineLayout ->
Word32 ->
Word32 -> Ptr VkDescriptorSet -> Word32 -> Ptr Word32 -> IO ()
-- ** vkCmdBindIndexBuffer
foreign import ccall "vkCmdBindIndexBuffer" vkCmdBindIndexBuffer ::
VkCommandBuffer -> VkBuffer -> VkDeviceSize -> VkIndexType -> IO ()
-- ** vkCmdBindVertexBuffers
foreign import ccall "vkCmdBindVertexBuffers" vkCmdBindVertexBuffers ::
VkCommandBuffer ->
Word32 -> Word32 -> Ptr VkBuffer -> Ptr VkDeviceSize -> IO ()
-- ** vkCmdDraw
foreign import ccall "vkCmdDraw" vkCmdDraw ::
VkCommandBuffer -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()
-- ** vkCmdDrawIndexed
foreign import ccall "vkCmdDrawIndexed" vkCmdDrawIndexed ::
VkCommandBuffer ->
Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()
-- ** vkCmdDrawIndirect
foreign import ccall "vkCmdDrawIndirect" vkCmdDrawIndirect ::
VkCommandBuffer ->
VkBuffer -> VkDeviceSize -> Word32 -> Word32 -> IO ()
-- ** vkCmdDrawIndexedIndirect
foreign import ccall "vkCmdDrawIndexedIndirect" vkCmdDrawIndexedIndirect ::
VkCommandBuffer ->
VkBuffer -> VkDeviceSize -> Word32 -> Word32 -> IO ()
-- ** vkCmdDispatch
foreign import ccall "vkCmdDispatch" vkCmdDispatch ::
VkCommandBuffer -> Word32 -> Word32 -> Word32 -> IO ()
-- ** vkCmdDispatchIndirect
foreign import ccall "vkCmdDispatchIndirect" vkCmdDispatchIndirect ::
VkCommandBuffer -> VkBuffer -> VkDeviceSize -> IO ()
-- ** vkCmdCopyBuffer
foreign import ccall "vkCmdCopyBuffer" vkCmdCopyBuffer ::
VkCommandBuffer ->
VkBuffer -> VkBuffer -> Word32 -> Ptr VkBufferCopy -> IO ()
-- ** vkCmdCopyImage
foreign import ccall "vkCmdCopyImage" vkCmdCopyImage ::
VkCommandBuffer ->
VkImage ->
VkImageLayout ->
VkImage -> VkImageLayout -> Word32 -> Ptr VkImageCopy -> IO ()
-- ** vkCmdBlitImage
foreign import ccall "vkCmdBlitImage" vkCmdBlitImage ::
VkCommandBuffer ->
VkImage ->
VkImageLayout ->
VkImage ->
VkImageLayout -> Word32 -> Ptr VkImageBlit -> VkFilter -> IO ()
-- ** vkCmdCopyBufferToImage
foreign import ccall "vkCmdCopyBufferToImage" vkCmdCopyBufferToImage ::
VkCommandBuffer ->
VkBuffer ->
VkImage ->
VkImageLayout -> Word32 -> Ptr VkBufferImageCopy -> IO ()
-- ** vkCmdCopyImageToBuffer
foreign import ccall "vkCmdCopyImageToBuffer" vkCmdCopyImageToBuffer ::
VkCommandBuffer ->
VkImage ->
VkImageLayout ->
VkBuffer -> Word32 -> Ptr VkBufferImageCopy -> IO ()
-- ** vkCmdUpdateBuffer
foreign import ccall "vkCmdUpdateBuffer" vkCmdUpdateBuffer ::
VkCommandBuffer ->
VkBuffer -> VkDeviceSize -> VkDeviceSize -> Ptr Word32 -> IO ()
-- ** vkCmdFillBuffer
foreign import ccall "vkCmdFillBuffer" vkCmdFillBuffer ::
VkCommandBuffer ->
VkBuffer -> VkDeviceSize -> VkDeviceSize -> Word32 -> IO ()
-- ** vkCmdClearColorImage
foreign import ccall "vkCmdClearColorImage" vkCmdClearColorImage ::
VkCommandBuffer ->
VkImage ->
VkImageLayout ->
Ptr VkClearColorValue ->
Word32 -> Ptr VkImageSubresourceRange -> IO ()
-- ** vkCmdClearDepthStencilImage
foreign import ccall "vkCmdClearDepthStencilImage" vkCmdClearDepthStencilImage ::
VkCommandBuffer ->
VkImage ->
VkImageLayout ->
Ptr VkClearDepthStencilValue ->
Word32 -> Ptr VkImageSubresourceRange -> IO ()
-- ** vkCmdClearAttachments
foreign import ccall "vkCmdClearAttachments" vkCmdClearAttachments ::
VkCommandBuffer ->
Word32 ->
Ptr VkClearAttachment -> Word32 -> Ptr VkClearRect -> IO ()
-- ** vkCmdResolveImage
foreign import ccall "vkCmdResolveImage" vkCmdResolveImage ::
VkCommandBuffer ->
VkImage ->
VkImageLayout ->
VkImage -> VkImageLayout -> Word32 -> Ptr VkImageResolve -> IO ()
-- ** vkCmdSetEvent
foreign import ccall "vkCmdSetEvent" vkCmdSetEvent ::
VkCommandBuffer -> VkEvent -> VkPipelineStageFlags -> IO ()
-- ** vkCmdResetEvent
foreign import ccall "vkCmdResetEvent" vkCmdResetEvent ::
VkCommandBuffer -> VkEvent -> VkPipelineStageFlags -> IO ()
-- ** vkCmdWaitEvents
foreign import ccall "vkCmdWaitEvents" vkCmdWaitEvents ::
VkCommandBuffer ->
Word32 ->
Ptr VkEvent ->
VkPipelineStageFlags ->
VkPipelineStageFlags ->
Word32 ->
Ptr VkMemoryBarrier ->
Word32 ->
Ptr VkBufferMemoryBarrier ->
Word32 -> Ptr VkImageMemoryBarrier -> IO ()
-- ** vkCmdPipelineBarrier
foreign import ccall "vkCmdPipelineBarrier" vkCmdPipelineBarrier ::
VkCommandBuffer ->
VkPipelineStageFlags ->
VkPipelineStageFlags ->
VkDependencyFlags ->
Word32 ->
Ptr VkMemoryBarrier ->
Word32 ->
Ptr VkBufferMemoryBarrier ->
Word32 -> Ptr VkImageMemoryBarrier -> IO ()
-- ** vkCmdBeginQuery
foreign import ccall "vkCmdBeginQuery" vkCmdBeginQuery ::
VkCommandBuffer ->
VkQueryPool -> Word32 -> VkQueryControlFlags -> IO ()
-- ** vkCmdEndQuery
foreign import ccall "vkCmdEndQuery" vkCmdEndQuery ::
VkCommandBuffer -> VkQueryPool -> Word32 -> IO ()
-- ** vkCmdResetQueryPool
foreign import ccall "vkCmdResetQueryPool" vkCmdResetQueryPool ::
VkCommandBuffer -> VkQueryPool -> Word32 -> Word32 -> IO ()
-- ** vkCmdWriteTimestamp
foreign import ccall "vkCmdWriteTimestamp" vkCmdWriteTimestamp ::
VkCommandBuffer ->
VkPipelineStageFlagBits -> VkQueryPool -> Word32 -> IO ()
-- ** vkCmdCopyQueryPoolResults
foreign import ccall "vkCmdCopyQueryPoolResults" vkCmdCopyQueryPoolResults ::
VkCommandBuffer ->
VkQueryPool ->
Word32 ->
Word32 ->
VkBuffer ->
VkDeviceSize -> VkDeviceSize -> VkQueryResultFlags -> IO ()
-- ** vkCmdPushConstants
foreign import ccall "vkCmdPushConstants" vkCmdPushConstants ::
VkCommandBuffer ->
VkPipelineLayout ->
VkShaderStageFlags -> Word32 -> Word32 -> Ptr Void -> IO ()
-- ** vkCmdBeginRenderPass
foreign import ccall "vkCmdBeginRenderPass" vkCmdBeginRenderPass ::
VkCommandBuffer ->
Ptr VkRenderPassBeginInfo -> VkSubpassContents -> IO ()
-- ** vkCmdNextSubpass
foreign import ccall "vkCmdNextSubpass" vkCmdNextSubpass ::
VkCommandBuffer -> VkSubpassContents -> IO ()
-- ** vkCmdEndRenderPass
foreign import ccall "vkCmdEndRenderPass" vkCmdEndRenderPass ::
VkCommandBuffer -> IO ()
-- ** vkCmdExecuteCommands
foreign import ccall "vkCmdExecuteCommands" vkCmdExecuteCommands ::
VkCommandBuffer -> Word32 -> Ptr VkCommandBuffer -> IO ()
-- ** vkGetPhysicalDeviceDisplayPropertiesKHR
foreign import ccall "vkGetPhysicalDeviceDisplayPropertiesKHR" vkGetPhysicalDeviceDisplayPropertiesKHR ::
VkPhysicalDevice ->
Ptr Word32 -> Ptr VkDisplayPropertiesKHR -> IO VkResult
-- ** vkGetPhysicalDeviceDisplayPlanePropertiesKHR
foreign import ccall "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" vkGetPhysicalDeviceDisplayPlanePropertiesKHR ::
VkPhysicalDevice ->
Ptr Word32 -> Ptr VkDisplayPlanePropertiesKHR -> IO VkResult
-- ** vkGetDisplayPlaneSupportedDisplaysKHR
foreign import ccall "vkGetDisplayPlaneSupportedDisplaysKHR" vkGetDisplayPlaneSupportedDisplaysKHR ::
VkPhysicalDevice ->
Word32 -> Ptr Word32 -> Ptr VkDisplayKHR -> IO VkResult
-- ** vkGetDisplayModePropertiesKHR
foreign import ccall "vkGetDisplayModePropertiesKHR" vkGetDisplayModePropertiesKHR ::
VkPhysicalDevice ->
VkDisplayKHR ->
Ptr Word32 -> Ptr VkDisplayModePropertiesKHR -> IO VkResult
-- ** vkCreateDisplayModeKHR
foreign import ccall "vkCreateDisplayModeKHR" vkCreateDisplayModeKHR ::
VkPhysicalDevice ->
VkDisplayKHR ->
Ptr VkDisplayModeCreateInfoKHR ->
Ptr VkAllocationCallbacks -> Ptr VkDisplayModeKHR -> IO VkResult
-- ** vkGetDisplayPlaneCapabilitiesKHR
foreign import ccall "vkGetDisplayPlaneCapabilitiesKHR" vkGetDisplayPlaneCapabilitiesKHR ::
VkPhysicalDevice ->
VkDisplayModeKHR ->
Word32 -> Ptr VkDisplayPlaneCapabilitiesKHR -> IO VkResult
-- ** vkCreateDisplayPlaneSurfaceKHR
foreign import ccall "vkCreateDisplayPlaneSurfaceKHR" vkCreateDisplayPlaneSurfaceKHR ::
VkInstance ->
Ptr VkDisplaySurfaceCreateInfoKHR ->
Ptr VkAllocationCallbacks -> Ptr VkSurfaceKHR -> IO VkResult
-- ** vkCreateSharedSwapchainsKHR
foreign import ccall "vkCreateSharedSwapchainsKHR" vkCreateSharedSwapchainsKHR ::
VkDevice ->
Word32 ->
Ptr VkSwapchainCreateInfoKHR ->
Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult
-- ** vkDestroySurfaceKHR
foreign import ccall "vkDestroySurfaceKHR" vkDestroySurfaceKHR ::
VkInstance -> VkSurfaceKHR -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetPhysicalDeviceSurfaceSupportKHR
foreign import ccall "vkGetPhysicalDeviceSurfaceSupportKHR" vkGetPhysicalDeviceSurfaceSupportKHR ::
VkPhysicalDevice ->
Word32 -> VkSurfaceKHR -> Ptr VkBool32 -> IO VkResult
-- ** vkGetPhysicalDeviceSurfaceCapabilitiesKHR
foreign import ccall "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" vkGetPhysicalDeviceSurfaceCapabilitiesKHR ::
VkPhysicalDevice ->
VkSurfaceKHR -> Ptr VkSurfaceCapabilitiesKHR -> IO VkResult
-- ** vkGetPhysicalDeviceSurfaceFormatsKHR
foreign import ccall "vkGetPhysicalDeviceSurfaceFormatsKHR" vkGetPhysicalDeviceSurfaceFormatsKHR ::
VkPhysicalDevice ->
VkSurfaceKHR -> Ptr Word32 -> Ptr VkSurfaceFormatKHR -> IO VkResult
-- ** vkGetPhysicalDeviceSurfacePresentModesKHR
foreign import ccall "vkGetPhysicalDeviceSurfacePresentModesKHR" vkGetPhysicalDeviceSurfacePresentModesKHR ::
VkPhysicalDevice ->
VkSurfaceKHR -> Ptr Word32 -> Ptr VkPresentModeKHR -> IO VkResult
-- ** vkCreateSwapchainKHR
foreign import ccall "vkCreateSwapchainKHR" vkCreateSwapchainKHR ::
VkDevice ->
Ptr VkSwapchainCreateInfoKHR ->
Ptr VkAllocationCallbacks -> Ptr VkSwapchainKHR -> IO VkResult
-- ** vkDestroySwapchainKHR
foreign import ccall "vkDestroySwapchainKHR" vkDestroySwapchainKHR ::
VkDevice -> VkSwapchainKHR -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkGetSwapchainImagesKHR
foreign import ccall "vkGetSwapchainImagesKHR" vkGetSwapchainImagesKHR ::
VkDevice ->
VkSwapchainKHR -> Ptr Word32 -> Ptr VkImage -> IO VkResult
-- ** vkAcquireNextImageKHR
foreign import ccall "vkAcquireNextImageKHR" vkAcquireNextImageKHR ::
VkDevice ->
VkSwapchainKHR ->
Word64 -> VkSemaphore -> VkFence -> Ptr Word32 -> IO VkResult
-- ** vkQueuePresentKHR
foreign import ccall "vkQueuePresentKHR" vkQueuePresentKHR ::
VkQueue -> Ptr VkPresentInfoKHR -> IO VkResult
-- ** vkGetPhysicalDeviceWin32PresentationSupportKHR
foreign import ccall "vkGetPhysicalDeviceWin32PresentationSupportKHR" vkGetPhysicalDeviceWin32PresentationSupportKHR ::
VkPhysicalDevice -> Word32 -> IO VkBool32
-- ** vkCreateDebugReportCallbackEXT
foreign import ccall "vkCreateDebugReportCallbackEXT" vkCreateDebugReportCallbackEXT ::
VkInstance ->
Ptr VkDebugReportCallbackCreateInfoEXT ->
Ptr VkAllocationCallbacks ->
Ptr VkDebugReportCallbackEXT -> IO VkResult
-- ** vkDestroyDebugReportCallbackEXT
foreign import ccall "vkDestroyDebugReportCallbackEXT" vkDestroyDebugReportCallbackEXT ::
VkInstance ->
VkDebugReportCallbackEXT -> Ptr VkAllocationCallbacks -> IO ()
-- ** vkDebugReportMessageEXT
foreign import ccall "vkDebugReportMessageEXT" vkDebugReportMessageEXT ::
VkInstance ->
VkDebugReportFlagsEXT ->
VkDebugReportObjectTypeEXT ->
Word64 -> CSize -> Int32 -> Ptr CChar -> Ptr CChar -> IO ()