{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Buffer
       (VkBufferCopy, VkBufferCreateInfo,
        VkBufferDeviceAddressCreateInfoEXT, VkBufferDeviceAddressInfo,
        VkBufferDeviceAddressInfoEXT, VkBufferDeviceAddressInfoKHR,
        VkBufferImageCopy, VkBufferMemoryBarrier,
        VkBufferMemoryRequirementsInfo2,
        VkBufferMemoryRequirementsInfo2KHR,
        VkBufferOpaqueCaptureAddressCreateInfo,
        VkBufferOpaqueCaptureAddressCreateInfoKHR, VkBufferViewCreateInfo)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes          (VkDeviceAddress, VkDeviceSize)
import Graphics.Vulkan.Types.Bitmasks           (VkBufferViewCreateFlags)
import Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
import Graphics.Vulkan.Types.Enum.Buffer        (VkBufferCreateFlags,
                                                 VkBufferUsageFlags)
import Graphics.Vulkan.Types.Enum.Format        (VkFormat)
import Graphics.Vulkan.Types.Enum.SharingMode   (VkSharingMode)
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import Graphics.Vulkan.Types.Handles            (VkBuffer)
import Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
import Graphics.Vulkan.Types.Struct.Image       (VkImageSubresourceLayers)
import Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)

-- | > typedef struct VkBufferCopy {
--   >     VkDeviceSize                       srcOffset;
--   >     VkDeviceSize                       dstOffset;
--   >     VkDeviceSize size;
--   > } VkBufferCopy;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferCopy VkBufferCopy registry at www.khronos.org>
type VkBufferCopy = VkStruct VkBufferCopy' -- ' closing tick for hsc2hs

data VkBufferCopy' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferCopy where
    type StructRep VkBufferCopy =
         'StructMeta "VkBufferCopy" VkBufferCopy  -- ' closing tick for hsc2hs
                                                 (24)
{-# LINE 48 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 49 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "srcOffset" VkDeviceSize 'False  -- ' closing tick for hsc2hs
                                                         (0)
{-# LINE 51 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstOffset" VkDeviceSize 'False 
                                                         (8)
{-# LINE 56 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False 
                                                    (16)
{-# LINE 61 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBufferCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkBufferCreateFlags    flags;
--   >     VkDeviceSize           size;
--   >     VkBufferUsageFlags     usage;
--   >     VkSharingMode          sharingMode;
--   >     uint32_t               queueFamilyIndexCount;
--   >     const uint32_t*        pQueueFamilyIndices;
--   > } VkBufferCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferCreateInfo VkBufferCreateInfo registry at www.khronos.org>
type VkBufferCreateInfo = VkStruct VkBufferCreateInfo' -- ' closing tick for hsc2hs

data VkBufferCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferCreateInfo where
    type StructRep VkBufferCreateInfo =
         'StructMeta "VkBufferCreateInfo" VkBufferCreateInfo  -- ' closing tick for hsc2hs
                                                             (56)
{-# LINE 88 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 89 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 91 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 96 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkBufferCreateFlags 'True 
                                                           (16)
{-# LINE 101 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False 
                                                    (24)
{-# LINE 106 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "usage" VkBufferUsageFlags 'False 
                                                           (32)
{-# LINE 111 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "sharingMode" VkSharingMode 'False 
                                                            (36)
{-# LINE 116 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueFamilyIndexCount" Word32 'True 
                                                              (40)
{-# LINE 121 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pQueueFamilyIndices" (Ptr Word32) 'False 
                                                                   (48)
{-# LINE 126 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBufferDeviceAddressCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDeviceAddress                  deviceAddress;
--   > } VkBufferDeviceAddressCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferDeviceAddressCreateInfoEXT VkBufferDeviceAddressCreateInfoEXT registry at www.khronos.org>
type VkBufferDeviceAddressCreateInfoEXT =
     VkStruct VkBufferDeviceAddressCreateInfoEXT' -- ' closing tick for hsc2hs

data VkBufferDeviceAddressCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferDeviceAddressCreateInfoEXT where
    type StructRep VkBufferDeviceAddressCreateInfoEXT =
         'StructMeta "VkBufferDeviceAddressCreateInfoEXT" -- ' closing tick for hsc2hs
           VkBufferDeviceAddressCreateInfoEXT
           (24)
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 151 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 153 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 158 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceAddress" VkDeviceAddress 'False 
                                                                (16)
{-# LINE 163 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBufferCreateInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkBufferDeviceAddressInfo {
--   >     VkStructureType sType;
--   >     const void*                                            pNext;
--   >     VkBuffer                                               buffer;
--   > } VkBufferDeviceAddressInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferDeviceAddressInfo VkBufferDeviceAddressInfo registry at www.khronos.org>
type VkBufferDeviceAddressInfo =
     VkStruct VkBufferDeviceAddressInfo' -- ' closing tick for hsc2hs

data VkBufferDeviceAddressInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferDeviceAddressInfo where
    type StructRep VkBufferDeviceAddressInfo =
         'StructMeta "VkBufferDeviceAddressInfo" VkBufferDeviceAddressInfo -- ' closing tick for hsc2hs
           (24)
{-# LINE 186 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 187 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 189 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 194 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "buffer" VkBuffer 'False 
                                                  (16)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkBufferDeviceAddressInfo`
type VkBufferDeviceAddressInfoEXT = VkBufferDeviceAddressInfo

-- | Alias for `VkBufferDeviceAddressInfo`
type VkBufferDeviceAddressInfoKHR = VkBufferDeviceAddressInfo

-- | > typedef struct VkBufferImageCopy {
--   >     VkDeviceSize           bufferOffset;
--   >     uint32_t               bufferRowLength;
--   >     uint32_t               bufferImageHeight;
--   >     VkImageSubresourceLayers imageSubresource;
--   >     VkOffset3D             imageOffset;
--   >     VkExtent3D             imageExtent;
--   > } VkBufferImageCopy;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferImageCopy VkBufferImageCopy registry at www.khronos.org>
type VkBufferImageCopy = VkStruct VkBufferImageCopy' -- ' closing tick for hsc2hs

data VkBufferImageCopy' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferImageCopy where
    type StructRep VkBufferImageCopy =
         'StructMeta "VkBufferImageCopy" VkBufferImageCopy  -- ' closing tick for hsc2hs
                                                           (56)
{-# LINE 230 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 231 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "bufferOffset" VkDeviceSize 'False  -- ' closing tick for hsc2hs
                                                            (0)
{-# LINE 233 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bufferRowLength" Word32 'False 
                                                         (8)
{-# LINE 238 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bufferImageHeight" Word32 'False 
                                                           (12)
{-# LINE 243 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageSubresource" VkImageSubresourceLayers 'False
                (16)
{-# LINE 248 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageOffset" VkOffset3D 'False 
                                                         (32)
{-# LINE 253 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageExtent" VkExtent3D 'False 
                                                         (44)
{-# LINE 258 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBufferMemoryBarrier {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkAccessFlags          srcAccessMask;
--   >     VkAccessFlags          dstAccessMask;
--   >     uint32_t               srcQueueFamilyIndex;
--   >     uint32_t               dstQueueFamilyIndex;
--   >     VkBuffer               buffer;
--   >     VkDeviceSize           offset;
--   >     VkDeviceSize           size;
--   > } VkBufferMemoryBarrier;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferMemoryBarrier VkBufferMemoryBarrier registry at www.khronos.org>
type VkBufferMemoryBarrier = VkStruct VkBufferMemoryBarrier' -- ' closing tick for hsc2hs

data VkBufferMemoryBarrier' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferMemoryBarrier where
    type StructRep VkBufferMemoryBarrier =
         'StructMeta "VkBufferMemoryBarrier" VkBufferMemoryBarrier  -- ' closing tick for hsc2hs
                                                                   (56)
{-# LINE 286 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 287 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 289 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 294 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcAccessMask" VkAccessFlags 'False 
                                                              (16)
{-# LINE 299 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstAccessMask" VkAccessFlags 'False 
                                                              (20)
{-# LINE 304 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "srcQueueFamilyIndex" Word32 'False 
                                                             (24)
{-# LINE 309 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "dstQueueFamilyIndex" Word32 'False 
                                                             (28)
{-# LINE 314 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "buffer" VkBuffer 'False 
                                                  (32)
{-# LINE 319 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" VkDeviceSize 'False 
                                                      (40)
{-# LINE 324 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" VkDeviceSize 'False 
                                                    (48)
{-# LINE 329 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBufferMemoryRequirementsInfo2 {
--   >     VkStructureType sType;
--   >     const void*                                                          pNext;
--   >     VkBuffer                                                             buffer;
--   > } VkBufferMemoryRequirementsInfo2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2 registry at www.khronos.org>
type VkBufferMemoryRequirementsInfo2 =
     VkStruct VkBufferMemoryRequirementsInfo2' -- ' closing tick for hsc2hs

data VkBufferMemoryRequirementsInfo2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferMemoryRequirementsInfo2 where
    type StructRep VkBufferMemoryRequirementsInfo2 =
         'StructMeta "VkBufferMemoryRequirementsInfo2" -- ' closing tick for hsc2hs
           VkBufferMemoryRequirementsInfo2
           (24)
{-# LINE 353 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 354 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 356 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 361 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "buffer" VkBuffer 'False 
                                                  (16)
{-# LINE 366 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkBufferMemoryRequirementsInfo2`
type VkBufferMemoryRequirementsInfo2KHR =
     VkBufferMemoryRequirementsInfo2

-- | > typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint64_t                         opaqueCaptureAddress;
--   > } VkBufferOpaqueCaptureAddressCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfo registry at www.khronos.org>
type VkBufferOpaqueCaptureAddressCreateInfo =
     VkStruct VkBufferOpaqueCaptureAddressCreateInfo' -- ' closing tick for hsc2hs

data VkBufferOpaqueCaptureAddressCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferOpaqueCaptureAddressCreateInfo where
    type StructRep VkBufferOpaqueCaptureAddressCreateInfo =
         'StructMeta "VkBufferOpaqueCaptureAddressCreateInfo" -- ' closing tick for hsc2hs
           VkBufferOpaqueCaptureAddressCreateInfo
           (24)
{-# LINE 394 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 395 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 397 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 402 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "opaqueCaptureAddress" Word64 'False 
                                                              (16)
{-# LINE 407 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBufferCreateInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkBufferOpaqueCaptureAddressCreateInfo`
type VkBufferOpaqueCaptureAddressCreateInfoKHR =
     VkBufferOpaqueCaptureAddressCreateInfo

-- | > typedef struct VkBufferViewCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkBufferViewCreateFlagsflags;
--   >     VkBuffer               buffer;
--   >     VkFormat               format;
--   >     VkDeviceSize           offset;
--   >     VkDeviceSize           range;
--   > } VkBufferViewCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferViewCreateInfo VkBufferViewCreateInfo registry at www.khronos.org>
type VkBufferViewCreateInfo = VkStruct VkBufferViewCreateInfo' -- ' closing tick for hsc2hs

data VkBufferViewCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBufferViewCreateInfo where
    type StructRep VkBufferViewCreateInfo =
         'StructMeta "VkBufferViewCreateInfo" VkBufferViewCreateInfo -- ' closing tick for hsc2hs
           (56)
{-# LINE 437 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           8
{-# LINE 438 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 440 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 445 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkBufferViewCreateFlags 'True 
                                                               (16)
{-# LINE 450 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "buffer" VkBuffer 'False 
                                                  (24)
{-# LINE 455 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "format" VkFormat 'False 
                                                  (32)
{-# LINE 460 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "offset" VkDeviceSize 'False 
                                                      (40)
{-# LINE 465 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "range" VkDeviceSize 'False 
                                                     (48)
{-# LINE 470 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs