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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Buffer
       (VkBufferCopy(..), VkBufferCreateInfo(..), VkBufferImageCopy(..),
        VkBufferMemoryBarrier(..), VkBufferMemoryRequirementsInfo2(..),
        VkBufferMemoryRequirementsInfo2KHR, VkBufferViewCreateInfo(..))
       where
import           Foreign.Storable                         (Storable (..))
import           GHC.Base                                 (Addr#, ByteArray#,
                                                           byteArrayContents#,
                                                           plusAddr#)
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.BaseTypes          (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)
import           System.IO.Unsafe                         (unsafeDupablePerformIO)

-- | > typedef struct VkBufferCopy {
--   >     VkDeviceSize           srcOffset;
--   >     VkDeviceSize           dstOffset;
--   >     VkDeviceSize           size;
--   > } VkBufferCopy;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferCopy VkBufferCopy registry at www.khronos.org>
data VkBufferCopy = VkBufferCopy# Addr# ByteArray#

instance Eq VkBufferCopy where
        (VkBufferCopy# Addr#
a ByteArray#
_) == :: VkBufferCopy -> VkBufferCopy -> Bool
== x :: VkBufferCopy
x@(VkBufferCopy# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferCopy -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferCopy
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkBufferCopy where
        (VkBufferCopy# Addr#
a ByteArray#
_) compare :: VkBufferCopy -> VkBufferCopy -> Ordering
`compare` x :: VkBufferCopy
x@(VkBufferCopy# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferCopy -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferCopy
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkBufferCopy where
        sizeOf :: VkBufferCopy -> Int
sizeOf ~VkBufferCopy
_ = (Int
24)
{-# LINE 58 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkBufferCopy -> Int
alignment ~VkBufferCopy
_ = Int
8
{-# LINE 61 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkBufferCopy -> IO VkBufferCopy
peek = Ptr VkBufferCopy -> IO VkBufferCopy
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkBufferCopy -> VkBufferCopy -> IO ()
poke = Ptr VkBufferCopy -> VkBufferCopy -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkBufferCopy where
        unsafeAddr :: VkBufferCopy -> Addr#
unsafeAddr (VkBufferCopy# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkBufferCopy -> ByteArray#
unsafeByteArray (VkBufferCopy# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkBufferCopy
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkBufferCopy
VkBufferCopy# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off) ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkBufferCopy where
        type StructFields VkBufferCopy =
             '["srcOffset", "dstOffset", "size"] -- ' closing tick for hsc2hs
        type CUnionType VkBufferCopy = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkBufferCopy = 'False -- ' closing tick for hsc2hs
        type StructExtends VkBufferCopy = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "srcOffset" VkBufferCopy
         where
        type FieldType "srcOffset" VkBufferCopy = VkDeviceSize
        type FieldOptional "srcOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "srcOffset" VkBufferCopy =
             (0)
{-# LINE 95 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "srcOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 102 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "srcOffset" VkBufferCopy
         where
        {-# NOINLINE getField #-}
        getField :: VkBufferCopy -> FieldType "srcOffset" VkBufferCopy
getField VkBufferCopy
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCopy -> Ptr VkBufferCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCopy
x) (Int
0))
{-# LINE 109 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCopy -> IO (FieldType "srcOffset" VkBufferCopy)
readField Ptr VkBufferCopy
p
          = Ptr VkBufferCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCopy
p (Int
0)
{-# LINE 113 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "srcOffset" VkBufferCopy
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCopy -> FieldType "srcOffset" VkBufferCopy -> IO ()
writeField Ptr VkBufferCopy
p
          = Ptr VkBufferCopy -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCopy
p (Int
0)
{-# LINE 119 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "dstOffset" VkBufferCopy
         where
        type FieldType "dstOffset" VkBufferCopy = VkDeviceSize
        type FieldOptional "dstOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "dstOffset" VkBufferCopy =
             (8)
{-# LINE 126 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "dstOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
8)
{-# LINE 133 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "dstOffset" VkBufferCopy
         where
        {-# NOINLINE getField #-}
        getField :: VkBufferCopy -> FieldType "dstOffset" VkBufferCopy
getField VkBufferCopy
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCopy -> Ptr VkBufferCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCopy
x) (Int
8))
{-# LINE 140 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCopy -> IO (FieldType "dstOffset" VkBufferCopy)
readField Ptr VkBufferCopy
p
          = Ptr VkBufferCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCopy
p (Int
8)
{-# LINE 144 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "dstOffset" VkBufferCopy
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCopy -> FieldType "dstOffset" VkBufferCopy -> IO ()
writeField Ptr VkBufferCopy
p
          = Ptr VkBufferCopy -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCopy
p (Int
8)
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "size" VkBufferCopy where
        type FieldType "size" VkBufferCopy = VkDeviceSize
        type FieldOptional "size" VkBufferCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "size" VkBufferCopy =
             (16)
{-# LINE 156 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "size" VkBufferCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
16)
{-# LINE 163 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "size" VkBufferCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferCopy -> FieldType "size" VkBufferCopy
getField VkBufferCopy
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCopy -> Ptr VkBufferCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCopy
x) (Int
16))
{-# LINE 169 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCopy -> IO (FieldType "size" VkBufferCopy)
readField Ptr VkBufferCopy
p
          = Ptr VkBufferCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCopy
p (Int
16)
{-# LINE 173 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanWriteField "size" VkBufferCopy
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCopy -> FieldType "size" VkBufferCopy -> IO ()
writeField Ptr VkBufferCopy
p
          = Ptr VkBufferCopy -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCopy
p (Int
16)
{-# LINE 179 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance Show VkBufferCopy where
        showsPrec :: Int -> VkBufferCopy -> ShowS
showsPrec Int
d VkBufferCopy
x
          = String -> ShowS
showString String
"VkBufferCopy {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"srcOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCopy -> FieldType "srcOffset" VkBufferCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcOffset" VkBufferCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"dstOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCopy -> FieldType "dstOffset" VkBufferCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstOffset" VkBufferCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"size = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCopy -> FieldType "size" VkBufferCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"size" VkBufferCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > 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.1-extensions/html/vkspec.html#VkBufferCreateInfo VkBufferCreateInfo registry at www.khronos.org>
data VkBufferCreateInfo = VkBufferCreateInfo# Addr# ByteArray#

instance Eq VkBufferCreateInfo where
        (VkBufferCreateInfo# Addr#
a ByteArray#
_) == :: VkBufferCreateInfo -> VkBufferCreateInfo -> Bool
== x :: VkBufferCreateInfo
x@(VkBufferCreateInfo# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkBufferCreateInfo where
        (VkBufferCreateInfo# Addr#
a ByteArray#
_) compare :: VkBufferCreateInfo -> VkBufferCreateInfo -> Ordering
`compare` x :: VkBufferCreateInfo
x@(VkBufferCreateInfo# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkBufferCreateInfo where
        sizeOf :: VkBufferCreateInfo -> Int
sizeOf ~VkBufferCreateInfo
_ = (Int
56)
{-# LINE 220 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkBufferCreateInfo -> Int
alignment ~VkBufferCreateInfo
_ = Int
8
{-# LINE 223 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkBufferCreateInfo -> IO VkBufferCreateInfo
peek = Ptr VkBufferCreateInfo -> IO VkBufferCreateInfo
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkBufferCreateInfo -> VkBufferCreateInfo -> IO ()
poke = Ptr VkBufferCreateInfo -> VkBufferCreateInfo -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkBufferCreateInfo where
        unsafeAddr :: VkBufferCreateInfo -> Addr#
unsafeAddr (VkBufferCreateInfo# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkBufferCreateInfo -> ByteArray#
unsafeByteArray (VkBufferCreateInfo# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkBufferCreateInfo
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkBufferCreateInfo
VkBufferCreateInfo# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off) ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkBufferCreateInfo where
        type StructFields VkBufferCreateInfo =
             '["sType", "pNext", "flags", "size", "usage", "sharingMode", -- ' closing tick for hsc2hs
               "queueFamilyIndexCount", "pQueueFamilyIndices"]
        type CUnionType VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkBufferCreateInfo = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "sType" VkBufferCreateInfo
         where
        type FieldType "sType" VkBufferCreateInfo = VkStructureType
        type FieldOptional "sType" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkBufferCreateInfo =
             (0)
{-# LINE 258 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "sType" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 265 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo -> FieldType "sType" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
0))
{-# LINE 272 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo -> IO (FieldType "sType" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
0)
{-# LINE 276 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "sType" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
0)
{-# LINE 282 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "pNext" VkBufferCreateInfo
         where
        type FieldType "pNext" VkBufferCreateInfo = Ptr Void
        type FieldOptional "pNext" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkBufferCreateInfo =
             (8)
{-# LINE 289 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "pNext" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
8)
{-# LINE 296 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo -> FieldType "pNext" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
8))
{-# LINE 303 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo -> IO (FieldType "pNext" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
8)
{-# LINE 307 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "pNext" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
8)
{-# LINE 313 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "flags" VkBufferCreateInfo
         where
        type FieldType "flags" VkBufferCreateInfo = VkBufferCreateFlags
        type FieldOptional "flags" VkBufferCreateInfo = 'True -- ' closing tick for hsc2hs
        type FieldOffset "flags" VkBufferCreateInfo =
             (16)
{-# LINE 320 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "flags" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
16)
{-# LINE 327 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo -> FieldType "flags" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO VkBufferCreateFlags -> VkBufferCreateFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO VkBufferCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
16))
{-# LINE 334 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo -> IO (FieldType "flags" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO VkBufferCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
16)
{-# LINE 338 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "flags" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> VkBufferCreateFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
16)
{-# LINE 344 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "size" VkBufferCreateInfo
         where
        type FieldType "size" VkBufferCreateInfo = VkDeviceSize
        type FieldOptional "size" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "size" VkBufferCreateInfo =
             (24)
{-# LINE 351 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "size" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
24)
{-# LINE 358 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} CanReadField "size" VkBufferCreateInfo
         where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo -> FieldType "size" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
24))
{-# LINE 365 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo -> IO (FieldType "size" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
24)
{-# LINE 369 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "size" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "size" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
24)
{-# LINE 375 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "usage" VkBufferCreateInfo
         where
        type FieldType "usage" VkBufferCreateInfo = VkBufferUsageFlags
        type FieldOptional "usage" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "usage" VkBufferCreateInfo =
             (32)
{-# LINE 382 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "usage" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
32)
{-# LINE 389 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "usage" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo -> FieldType "usage" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO VkBufferUsageFlags -> VkBufferUsageFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO VkBufferUsageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
32))
{-# LINE 396 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo -> IO (FieldType "usage" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO VkBufferUsageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
32)
{-# LINE 400 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "usage" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "usage" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> VkBufferUsageFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
32)
{-# LINE 406 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "sharingMode" VkBufferCreateInfo where
        type FieldType "sharingMode" VkBufferCreateInfo = VkSharingMode
        type FieldOptional "sharingMode" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sharingMode" VkBufferCreateInfo =
             (36)
{-# LINE 413 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "sharingMode" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
36)
{-# LINE 420 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sharingMode" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo -> FieldType "sharingMode" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO VkSharingMode -> VkSharingMode
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO VkSharingMode
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
36))
{-# LINE 427 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo
-> IO (FieldType "sharingMode" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO VkSharingMode
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
36)
{-# LINE 431 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sharingMode" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "sharingMode" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> VkSharingMode -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
36)
{-# LINE 437 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "queueFamilyIndexCount" VkBufferCreateInfo where
        type FieldType "queueFamilyIndexCount" VkBufferCreateInfo = Word32
        type FieldOptional "queueFamilyIndexCount" VkBufferCreateInfo =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "queueFamilyIndexCount" VkBufferCreateInfo =
             (40)
{-# LINE 445 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "queueFamilyIndexCount" VkBufferCreateInfo =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
40)
{-# LINE 454 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "queueFamilyIndexCount" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo
-> FieldType "queueFamilyIndexCount" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
40))
{-# LINE 461 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo
-> IO (FieldType "queueFamilyIndexCount" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
40)
{-# LINE 465 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "queueFamilyIndexCount" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "queueFamilyIndexCount" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
40)
{-# LINE 471 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pQueueFamilyIndices" VkBufferCreateInfo where
        type FieldType "pQueueFamilyIndices" VkBufferCreateInfo =
             Ptr Word32
        type FieldOptional "pQueueFamilyIndices" VkBufferCreateInfo =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pQueueFamilyIndices" VkBufferCreateInfo =
             (48)
{-# LINE 480 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "pQueueFamilyIndices" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
48)
{-# LINE 488 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pQueueFamilyIndices" VkBufferCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferCreateInfo
-> FieldType "pQueueFamilyIndices" VkBufferCreateInfo
getField VkBufferCreateInfo
x
          = IO (Ptr Word32) -> Ptr Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferCreateInfo -> Int -> IO (Ptr Word32)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferCreateInfo -> Ptr VkBufferCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferCreateInfo
x) (Int
48))
{-# LINE 495 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferCreateInfo
-> IO (FieldType "pQueueFamilyIndices" VkBufferCreateInfo)
readField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> IO (Ptr Word32)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferCreateInfo
p (Int
48)
{-# LINE 499 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pQueueFamilyIndices" VkBufferCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferCreateInfo
-> FieldType "pQueueFamilyIndices" VkBufferCreateInfo -> IO ()
writeField Ptr VkBufferCreateInfo
p
          = Ptr VkBufferCreateInfo -> Int -> Ptr Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferCreateInfo
p (Int
48)
{-# LINE 505 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance Show VkBufferCreateInfo where
        showsPrec :: Int -> VkBufferCreateInfo -> ShowS
showsPrec Int
d VkBufferCreateInfo
x
          = String -> ShowS
showString String
"VkBufferCreateInfo {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCreateInfo -> FieldType "sType" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCreateInfo -> FieldType "pNext" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"flags = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkBufferCreateFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCreateInfo -> FieldType "flags" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"flags" VkBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"size = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCreateInfo -> FieldType "size" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"size" VkBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"usage = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkBufferUsageFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCreateInfo -> FieldType "usage" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"usage" VkBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                            String -> ShowS
showString String
"sharingMode = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkSharingMode -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferCreateInfo -> FieldType "sharingMode" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sharingMode" VkBufferCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                  String -> ShowS
showString String
"queueFamilyIndexCount = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                      (VkBufferCreateInfo
-> FieldType "queueFamilyIndexCount" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"queueFamilyIndexCount" VkBufferCreateInfo
x)
                                                      ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                      String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                        String -> ShowS
showString String
"pQueueFamilyIndices = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                          Int -> Ptr Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                            (VkBufferCreateInfo
-> FieldType "pQueueFamilyIndices" VkBufferCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pQueueFamilyIndices" VkBufferCreateInfo
x)
                                                            ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > 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.1-extensions/html/vkspec.html#VkBufferImageCopy VkBufferImageCopy registry at www.khronos.org>
data VkBufferImageCopy = VkBufferImageCopy# Addr# ByteArray#

instance Eq VkBufferImageCopy where
        (VkBufferImageCopy# Addr#
a ByteArray#
_) == :: VkBufferImageCopy -> VkBufferImageCopy -> Bool
== x :: VkBufferImageCopy
x@(VkBufferImageCopy# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferImageCopy -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferImageCopy
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkBufferImageCopy where
        (VkBufferImageCopy# Addr#
a ByteArray#
_) compare :: VkBufferImageCopy -> VkBufferImageCopy -> Ordering
`compare` x :: VkBufferImageCopy
x@(VkBufferImageCopy# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferImageCopy -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferImageCopy
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkBufferImageCopy where
        sizeOf :: VkBufferImageCopy -> Int
sizeOf ~VkBufferImageCopy
_ = (Int
56)
{-# LINE 563 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkBufferImageCopy -> Int
alignment ~VkBufferImageCopy
_ = Int
8
{-# LINE 566 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkBufferImageCopy -> IO VkBufferImageCopy
peek = Ptr VkBufferImageCopy -> IO VkBufferImageCopy
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkBufferImageCopy -> VkBufferImageCopy -> IO ()
poke = Ptr VkBufferImageCopy -> VkBufferImageCopy -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkBufferImageCopy where
        unsafeAddr :: VkBufferImageCopy -> Addr#
unsafeAddr (VkBufferImageCopy# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkBufferImageCopy -> ByteArray#
unsafeByteArray (VkBufferImageCopy# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkBufferImageCopy
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkBufferImageCopy
VkBufferImageCopy# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off) ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkBufferImageCopy where
        type StructFields VkBufferImageCopy =
             '["bufferOffset", "bufferRowLength", "bufferImageHeight", -- ' closing tick for hsc2hs
               "imageSubresource", "imageOffset", "imageExtent"]
        type CUnionType VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type StructExtends VkBufferImageCopy = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "bufferOffset" VkBufferImageCopy where
        type FieldType "bufferOffset" VkBufferImageCopy = VkDeviceSize
        type FieldOptional "bufferOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "bufferOffset" VkBufferImageCopy =
             (0)
{-# LINE 601 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "bufferOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 608 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "bufferOffset" VkBufferImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferImageCopy -> FieldType "bufferOffset" VkBufferImageCopy
getField VkBufferImageCopy
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferImageCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferImageCopy -> Ptr VkBufferImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferImageCopy
x) (Int
0))
{-# LINE 615 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferImageCopy
-> IO (FieldType "bufferOffset" VkBufferImageCopy)
readField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferImageCopy
p (Int
0)
{-# LINE 619 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "bufferOffset" VkBufferImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferImageCopy
-> FieldType "bufferOffset" VkBufferImageCopy -> IO ()
writeField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferImageCopy
p (Int
0)
{-# LINE 625 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "bufferRowLength" VkBufferImageCopy where
        type FieldType "bufferRowLength" VkBufferImageCopy = Word32
        type FieldOptional "bufferRowLength" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "bufferRowLength" VkBufferImageCopy =
             (8)
{-# LINE 632 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "bufferRowLength" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 640 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "bufferRowLength" VkBufferImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferImageCopy -> FieldType "bufferRowLength" VkBufferImageCopy
getField VkBufferImageCopy
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferImageCopy -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferImageCopy -> Ptr VkBufferImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferImageCopy
x) (Int
8))
{-# LINE 647 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferImageCopy
-> IO (FieldType "bufferRowLength" VkBufferImageCopy)
readField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferImageCopy
p (Int
8)
{-# LINE 651 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "bufferRowLength" VkBufferImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferImageCopy
-> FieldType "bufferRowLength" VkBufferImageCopy -> IO ()
writeField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferImageCopy
p (Int
8)
{-# LINE 657 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "bufferImageHeight" VkBufferImageCopy where
        type FieldType "bufferImageHeight" VkBufferImageCopy = Word32
        type FieldOptional "bufferImageHeight" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "bufferImageHeight" VkBufferImageCopy =
             (12)
{-# LINE 664 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "bufferImageHeight" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
12)
{-# LINE 672 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "bufferImageHeight" VkBufferImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferImageCopy
-> FieldType "bufferImageHeight" VkBufferImageCopy
getField VkBufferImageCopy
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferImageCopy -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferImageCopy -> Ptr VkBufferImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferImageCopy
x) (Int
12))
{-# LINE 679 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferImageCopy
-> IO (FieldType "bufferImageHeight" VkBufferImageCopy)
readField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferImageCopy
p (Int
12)
{-# LINE 683 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "bufferImageHeight" VkBufferImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferImageCopy
-> FieldType "bufferImageHeight" VkBufferImageCopy -> IO ()
writeField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferImageCopy
p (Int
12)
{-# LINE 689 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageSubresource" VkBufferImageCopy where
        type FieldType "imageSubresource" VkBufferImageCopy =
             VkImageSubresourceLayers
        type FieldOptional "imageSubresource" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageSubresource" VkBufferImageCopy =
             (16)
{-# LINE 697 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "imageSubresource" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 705 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "imageSubresource" VkBufferImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferImageCopy -> FieldType "imageSubresource" VkBufferImageCopy
getField VkBufferImageCopy
x
          = IO VkImageSubresourceLayers -> VkImageSubresourceLayers
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferImageCopy -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferImageCopy -> Ptr VkBufferImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferImageCopy
x) (Int
16))
{-# LINE 712 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferImageCopy
-> IO (FieldType "imageSubresource" VkBufferImageCopy)
readField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> IO VkImageSubresourceLayers
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferImageCopy
p (Int
16)
{-# LINE 716 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "imageSubresource" VkBufferImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferImageCopy
-> FieldType "imageSubresource" VkBufferImageCopy -> IO ()
writeField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> VkImageSubresourceLayers -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferImageCopy
p (Int
16)
{-# LINE 722 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageOffset" VkBufferImageCopy where
        type FieldType "imageOffset" VkBufferImageCopy = VkOffset3D
        type FieldOptional "imageOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageOffset" VkBufferImageCopy =
             (32)
{-# LINE 729 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "imageOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
32)
{-# LINE 736 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "imageOffset" VkBufferImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferImageCopy -> FieldType "imageOffset" VkBufferImageCopy
getField VkBufferImageCopy
x
          = IO VkOffset3D -> VkOffset3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferImageCopy -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferImageCopy -> Ptr VkBufferImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferImageCopy
x) (Int
32))
{-# LINE 743 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferImageCopy
-> IO (FieldType "imageOffset" VkBufferImageCopy)
readField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> IO VkOffset3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferImageCopy
p (Int
32)
{-# LINE 747 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "imageOffset" VkBufferImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferImageCopy
-> FieldType "imageOffset" VkBufferImageCopy -> IO ()
writeField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> VkOffset3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferImageCopy
p (Int
32)
{-# LINE 753 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "imageExtent" VkBufferImageCopy where
        type FieldType "imageExtent" VkBufferImageCopy = VkExtent3D
        type FieldOptional "imageExtent" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
        type FieldOffset "imageExtent" VkBufferImageCopy =
             (44)
{-# LINE 760 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "imageExtent" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
44)
{-# LINE 767 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "imageExtent" VkBufferImageCopy where
        {-# NOINLINE getField #-}
        getField :: VkBufferImageCopy -> FieldType "imageExtent" VkBufferImageCopy
getField VkBufferImageCopy
x
          = IO VkExtent3D -> VkExtent3D
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferImageCopy -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferImageCopy -> Ptr VkBufferImageCopy
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferImageCopy
x) (Int
44))
{-# LINE 774 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferImageCopy
-> IO (FieldType "imageExtent" VkBufferImageCopy)
readField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> IO VkExtent3D
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferImageCopy
p (Int
44)
{-# LINE 778 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "imageExtent" VkBufferImageCopy where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferImageCopy
-> FieldType "imageExtent" VkBufferImageCopy -> IO ()
writeField Ptr VkBufferImageCopy
p
          = Ptr VkBufferImageCopy -> Int -> VkExtent3D -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferImageCopy
p (Int
44)
{-# LINE 784 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance Show VkBufferImageCopy where
        showsPrec :: Int -> VkBufferImageCopy -> ShowS
showsPrec Int
d VkBufferImageCopy
x
          = String -> ShowS
showString String
"VkBufferImageCopy {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"bufferOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferImageCopy -> FieldType "bufferOffset" VkBufferImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"bufferOffset" VkBufferImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"bufferRowLength = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferImageCopy -> FieldType "bufferRowLength" VkBufferImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"bufferRowLength" VkBufferImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"bufferImageHeight = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferImageCopy
-> FieldType "bufferImageHeight" VkBufferImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"bufferImageHeight" VkBufferImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"imageSubresource = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkImageSubresourceLayers -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferImageCopy -> FieldType "imageSubresource" VkBufferImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"imageSubresource" VkBufferImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"imageOffset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkOffset3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferImageCopy -> FieldType "imageOffset" VkBufferImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"imageOffset" VkBufferImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                            String -> ShowS
showString String
"imageExtent = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkExtent3D -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferImageCopy -> FieldType "imageExtent" VkBufferImageCopy
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"imageExtent" VkBufferImageCopy
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > 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.1-extensions/html/vkspec.html#VkBufferMemoryBarrier VkBufferMemoryBarrier registry at www.khronos.org>
data VkBufferMemoryBarrier = VkBufferMemoryBarrier# Addr#
                                                    ByteArray#

instance Eq VkBufferMemoryBarrier where
        (VkBufferMemoryBarrier# Addr#
a ByteArray#
_) == :: VkBufferMemoryBarrier -> VkBufferMemoryBarrier -> Bool
== x :: VkBufferMemoryBarrier
x@(VkBufferMemoryBarrier# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferMemoryBarrier -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferMemoryBarrier
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkBufferMemoryBarrier where
        (VkBufferMemoryBarrier# Addr#
a ByteArray#
_) compare :: VkBufferMemoryBarrier -> VkBufferMemoryBarrier -> Ordering
`compare`
          x :: VkBufferMemoryBarrier
x@(VkBufferMemoryBarrier# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferMemoryBarrier -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferMemoryBarrier
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkBufferMemoryBarrier where
        sizeOf :: VkBufferMemoryBarrier -> Int
sizeOf ~VkBufferMemoryBarrier
_ = (Int
56)
{-# LINE 836 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkBufferMemoryBarrier -> Int
alignment ~VkBufferMemoryBarrier
_ = Int
8
{-# LINE 839 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkBufferMemoryBarrier -> IO VkBufferMemoryBarrier
peek = Ptr VkBufferMemoryBarrier -> IO VkBufferMemoryBarrier
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkBufferMemoryBarrier -> VkBufferMemoryBarrier -> IO ()
poke = Ptr VkBufferMemoryBarrier -> VkBufferMemoryBarrier -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkBufferMemoryBarrier where
        unsafeAddr :: VkBufferMemoryBarrier -> Addr#
unsafeAddr (VkBufferMemoryBarrier# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkBufferMemoryBarrier -> ByteArray#
unsafeByteArray (VkBufferMemoryBarrier# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkBufferMemoryBarrier
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkBufferMemoryBarrier
VkBufferMemoryBarrier# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off) ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkBufferMemoryBarrier where
        type StructFields VkBufferMemoryBarrier =
             '["sType", "pNext", "srcAccessMask", "dstAccessMask", -- ' closing tick for hsc2hs
               "srcQueueFamilyIndex", "dstQueueFamilyIndex", "buffer", "offset",
               "size"]
        type CUnionType VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type StructExtends VkBufferMemoryBarrier = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "sType" VkBufferMemoryBarrier
         where
        type FieldType "sType" VkBufferMemoryBarrier = VkStructureType
        type FieldOptional "sType" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkBufferMemoryBarrier =
             (0)
{-# LINE 875 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "sType" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 882 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier -> FieldType "sType" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
0))
{-# LINE 889 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "sType" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
0)
{-# LINE 893 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "sType" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
0)
{-# LINE 899 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "pNext" VkBufferMemoryBarrier
         where
        type FieldType "pNext" VkBufferMemoryBarrier = Ptr Void
        type FieldOptional "pNext" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkBufferMemoryBarrier =
             (8)
{-# LINE 906 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "pNext" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
8)
{-# LINE 913 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier -> FieldType "pNext" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
8))
{-# LINE 920 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "pNext" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
8)
{-# LINE 924 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "pNext" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
8)
{-# LINE 930 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "srcAccessMask" VkBufferMemoryBarrier where
        type FieldType "srcAccessMask" VkBufferMemoryBarrier =
             VkAccessFlags
        type FieldOptional "srcAccessMask" VkBufferMemoryBarrier = 'True -- ' closing tick for hsc2hs
        type FieldOffset "srcAccessMask" VkBufferMemoryBarrier =
             (16)
{-# LINE 938 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "srcAccessMask" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 946 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "srcAccessMask" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier
-> FieldType "srcAccessMask" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO VkAccessFlags -> VkAccessFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO VkAccessFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
16))
{-# LINE 953 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "srcAccessMask" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO VkAccessFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
16)
{-# LINE 957 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcAccessMask" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "srcAccessMask" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> VkAccessFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
16)
{-# LINE 963 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dstAccessMask" VkBufferMemoryBarrier where
        type FieldType "dstAccessMask" VkBufferMemoryBarrier =
             VkAccessFlags
        type FieldOptional "dstAccessMask" VkBufferMemoryBarrier = 'True -- ' closing tick for hsc2hs
        type FieldOffset "dstAccessMask" VkBufferMemoryBarrier =
             (20)
{-# LINE 971 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "dstAccessMask" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
20)
{-# LINE 979 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dstAccessMask" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier
-> FieldType "dstAccessMask" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO VkAccessFlags -> VkAccessFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO VkAccessFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
20))
{-# LINE 986 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "dstAccessMask" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO VkAccessFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
20)
{-# LINE 990 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstAccessMask" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "dstAccessMask" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> VkAccessFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
20)
{-# LINE 996 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
        type FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier = Word32
        type FieldOptional "srcQueueFamilyIndex" VkBufferMemoryBarrier =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "srcQueueFamilyIndex" VkBufferMemoryBarrier =
             (24)
{-# LINE 1004 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "srcQueueFamilyIndex" VkBufferMemoryBarrier =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
24)
{-# LINE 1013 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier
-> FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
24))
{-# LINE 1020 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
24)
{-# LINE 1024 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
24)
{-# LINE 1030 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
        type FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier = Word32
        type FieldOptional "dstQueueFamilyIndex" VkBufferMemoryBarrier =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "dstQueueFamilyIndex" VkBufferMemoryBarrier =
             (28)
{-# LINE 1038 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "dstQueueFamilyIndex" VkBufferMemoryBarrier =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
28)
{-# LINE 1047 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier
-> FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
28))
{-# LINE 1054 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
28)
{-# LINE 1058 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
28)
{-# LINE 1064 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "buffer" VkBufferMemoryBarrier where
        type FieldType "buffer" VkBufferMemoryBarrier = VkBuffer
        type FieldOptional "buffer" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "buffer" VkBufferMemoryBarrier =
             (32)
{-# LINE 1071 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "buffer" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
32)
{-# LINE 1078 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "buffer" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier -> FieldType "buffer" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO VkBuffer -> VkBuffer
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO VkBuffer
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
32))
{-# LINE 1085 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "buffer" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO VkBuffer
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
32)
{-# LINE 1089 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "buffer" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "buffer" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> VkBuffer -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
32)
{-# LINE 1095 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "offset" VkBufferMemoryBarrier where
        type FieldType "offset" VkBufferMemoryBarrier = VkDeviceSize
        type FieldOptional "offset" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "offset" VkBufferMemoryBarrier =
             (40)
{-# LINE 1102 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "offset" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
40)
{-# LINE 1109 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "offset" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier -> FieldType "offset" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
40))
{-# LINE 1116 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "offset" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
40)
{-# LINE 1120 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "offset" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "offset" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
40)
{-# LINE 1126 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-} HasField "size" VkBufferMemoryBarrier
         where
        type FieldType "size" VkBufferMemoryBarrier = VkDeviceSize
        type FieldOptional "size" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
        type FieldOffset "size" VkBufferMemoryBarrier =
             (48)
{-# LINE 1133 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "size" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
48)
{-# LINE 1140 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "size" VkBufferMemoryBarrier where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryBarrier -> FieldType "size" VkBufferMemoryBarrier
getField VkBufferMemoryBarrier
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryBarrier -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryBarrier -> Ptr VkBufferMemoryBarrier
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryBarrier
x) (Int
48))
{-# LINE 1147 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryBarrier
-> IO (FieldType "size" VkBufferMemoryBarrier)
readField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryBarrier
p (Int
48)
{-# LINE 1151 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "size" VkBufferMemoryBarrier where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryBarrier
-> FieldType "size" VkBufferMemoryBarrier -> IO ()
writeField Ptr VkBufferMemoryBarrier
p
          = Ptr VkBufferMemoryBarrier -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryBarrier
p (Int
48)
{-# LINE 1157 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance Show VkBufferMemoryBarrier where
        showsPrec :: Int -> VkBufferMemoryBarrier -> ShowS
showsPrec Int
d VkBufferMemoryBarrier
x
          = String -> ShowS
showString String
"VkBufferMemoryBarrier {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier -> FieldType "sType" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier -> FieldType "pNext" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"srcAccessMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkAccessFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier
-> FieldType "srcAccessMask" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcAccessMask" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"dstAccessMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkAccessFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier
-> FieldType "dstAccessMask" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstAccessMask" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"srcQueueFamilyIndex = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier
-> FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"srcQueueFamilyIndex" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                            String -> ShowS
showString String
"dstQueueFamilyIndex = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier
-> FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"dstQueueFamilyIndex" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                  String -> ShowS
showString String
"buffer = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> VkBuffer -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier -> FieldType "buffer" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"buffer" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                      String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                        String -> ShowS
showString String
"offset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                          Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier -> FieldType "offset" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"offset" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                            String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                              String -> ShowS
showString String
"size = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryBarrier -> FieldType "size" VkBufferMemoryBarrier
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"size" VkBufferMemoryBarrier
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                                  Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkBufferMemoryRequirementsInfo2 {
--   >     VkStructureType sType;
--   >     const void*                                                          pNext;
--   >     VkBuffer                                                             buffer;
--   > } VkBufferMemoryRequirementsInfo2;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2 registry at www.khronos.org>
data VkBufferMemoryRequirementsInfo2 = VkBufferMemoryRequirementsInfo2# Addr#
                                                                        ByteArray#

instance Eq VkBufferMemoryRequirementsInfo2 where
        (VkBufferMemoryRequirementsInfo2# Addr#
a ByteArray#
_) == :: VkBufferMemoryRequirementsInfo2
-> VkBufferMemoryRequirementsInfo2 -> Bool
==
          x :: VkBufferMemoryRequirementsInfo2
x@(VkBufferMemoryRequirementsInfo2# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferMemoryRequirementsInfo2 -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferMemoryRequirementsInfo2
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkBufferMemoryRequirementsInfo2 where
        (VkBufferMemoryRequirementsInfo2# Addr#
a ByteArray#
_) compare :: VkBufferMemoryRequirementsInfo2
-> VkBufferMemoryRequirementsInfo2 -> Ordering
`compare`
          x :: VkBufferMemoryRequirementsInfo2
x@(VkBufferMemoryRequirementsInfo2# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferMemoryRequirementsInfo2 -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferMemoryRequirementsInfo2
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkBufferMemoryRequirementsInfo2 where
        sizeOf :: VkBufferMemoryRequirementsInfo2 -> Int
sizeOf ~VkBufferMemoryRequirementsInfo2
_ = (Int
24)
{-# LINE 1214 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkBufferMemoryRequirementsInfo2 -> Int
alignment ~VkBufferMemoryRequirementsInfo2
_
          = Int
8
{-# LINE 1218 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkBufferMemoryRequirementsInfo2
-> IO VkBufferMemoryRequirementsInfo2
peek = Ptr VkBufferMemoryRequirementsInfo2
-> IO VkBufferMemoryRequirementsInfo2
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkBufferMemoryRequirementsInfo2
-> VkBufferMemoryRequirementsInfo2 -> IO ()
poke = Ptr VkBufferMemoryRequirementsInfo2
-> VkBufferMemoryRequirementsInfo2 -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkBufferMemoryRequirementsInfo2 where
        unsafeAddr :: VkBufferMemoryRequirementsInfo2 -> Addr#
unsafeAddr (VkBufferMemoryRequirementsInfo2# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkBufferMemoryRequirementsInfo2 -> ByteArray#
unsafeByteArray (VkBufferMemoryRequirementsInfo2# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkBufferMemoryRequirementsInfo2
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkBufferMemoryRequirementsInfo2
VkBufferMemoryRequirementsInfo2#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkBufferMemoryRequirementsInfo2 where
        type StructFields VkBufferMemoryRequirementsInfo2 =
             '["sType", "pNext", "buffer"] -- ' closing tick for hsc2hs
        type CUnionType VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
        type StructExtends VkBufferMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkBufferMemoryRequirementsInfo2 where
        type FieldType "sType" VkBufferMemoryRequirementsInfo2 =
             VkStructureType
        type FieldOptional "sType" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkBufferMemoryRequirementsInfo2 =
             (0)
{-# LINE 1255 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "sType" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 1263 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkBufferMemoryRequirementsInfo2 where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryRequirementsInfo2
-> FieldType "sType" VkBufferMemoryRequirementsInfo2
getField VkBufferMemoryRequirementsInfo2
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryRequirementsInfo2 -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryRequirementsInfo2
-> Ptr VkBufferMemoryRequirementsInfo2
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryRequirementsInfo2
x) (Int
0))
{-# LINE 1270 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryRequirementsInfo2
-> IO (FieldType "sType" VkBufferMemoryRequirementsInfo2)
readField Ptr VkBufferMemoryRequirementsInfo2
p
          = Ptr VkBufferMemoryRequirementsInfo2 -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryRequirementsInfo2
p (Int
0)
{-# LINE 1274 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkBufferMemoryRequirementsInfo2 where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryRequirementsInfo2
-> FieldType "sType" VkBufferMemoryRequirementsInfo2 -> IO ()
writeField Ptr VkBufferMemoryRequirementsInfo2
p
          = Ptr VkBufferMemoryRequirementsInfo2
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryRequirementsInfo2
p (Int
0)
{-# LINE 1280 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkBufferMemoryRequirementsInfo2 where
        type FieldType "pNext" VkBufferMemoryRequirementsInfo2 = Ptr Void
        type FieldOptional "pNext" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkBufferMemoryRequirementsInfo2 =
             (8)
{-# LINE 1287 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "pNext" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 1295 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkBufferMemoryRequirementsInfo2 where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryRequirementsInfo2
-> FieldType "pNext" VkBufferMemoryRequirementsInfo2
getField VkBufferMemoryRequirementsInfo2
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryRequirementsInfo2 -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryRequirementsInfo2
-> Ptr VkBufferMemoryRequirementsInfo2
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryRequirementsInfo2
x) (Int
8))
{-# LINE 1302 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryRequirementsInfo2
-> IO (FieldType "pNext" VkBufferMemoryRequirementsInfo2)
readField Ptr VkBufferMemoryRequirementsInfo2
p
          = Ptr VkBufferMemoryRequirementsInfo2 -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryRequirementsInfo2
p (Int
8)
{-# LINE 1306 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkBufferMemoryRequirementsInfo2 where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryRequirementsInfo2
-> FieldType "pNext" VkBufferMemoryRequirementsInfo2 -> IO ()
writeField Ptr VkBufferMemoryRequirementsInfo2
p
          = Ptr VkBufferMemoryRequirementsInfo2 -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryRequirementsInfo2
p (Int
8)
{-# LINE 1312 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "buffer" VkBufferMemoryRequirementsInfo2 where
        type FieldType "buffer" VkBufferMemoryRequirementsInfo2 = VkBuffer
        type FieldOptional "buffer" VkBufferMemoryRequirementsInfo2 =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "buffer" VkBufferMemoryRequirementsInfo2 =
             (16)
{-# LINE 1320 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "buffer" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 1328 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "buffer" VkBufferMemoryRequirementsInfo2 where
        {-# NOINLINE getField #-}
        getField :: VkBufferMemoryRequirementsInfo2
-> FieldType "buffer" VkBufferMemoryRequirementsInfo2
getField VkBufferMemoryRequirementsInfo2
x
          = IO VkBuffer -> VkBuffer
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferMemoryRequirementsInfo2 -> Int -> IO VkBuffer
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferMemoryRequirementsInfo2
-> Ptr VkBufferMemoryRequirementsInfo2
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferMemoryRequirementsInfo2
x) (Int
16))
{-# LINE 1335 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferMemoryRequirementsInfo2
-> IO (FieldType "buffer" VkBufferMemoryRequirementsInfo2)
readField Ptr VkBufferMemoryRequirementsInfo2
p
          = Ptr VkBufferMemoryRequirementsInfo2 -> Int -> IO VkBuffer
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferMemoryRequirementsInfo2
p (Int
16)
{-# LINE 1339 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "buffer" VkBufferMemoryRequirementsInfo2 where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferMemoryRequirementsInfo2
-> FieldType "buffer" VkBufferMemoryRequirementsInfo2 -> IO ()
writeField Ptr VkBufferMemoryRequirementsInfo2
p
          = Ptr VkBufferMemoryRequirementsInfo2 -> Int -> VkBuffer -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferMemoryRequirementsInfo2
p (Int
16)
{-# LINE 1345 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance Show VkBufferMemoryRequirementsInfo2 where
        showsPrec :: Int -> VkBufferMemoryRequirementsInfo2 -> ShowS
showsPrec Int
d VkBufferMemoryRequirementsInfo2
x
          = String -> ShowS
showString String
"VkBufferMemoryRequirementsInfo2 {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryRequirementsInfo2
-> FieldType "sType" VkBufferMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkBufferMemoryRequirementsInfo2
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryRequirementsInfo2
-> FieldType "pNext" VkBufferMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkBufferMemoryRequirementsInfo2
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"buffer = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkBuffer -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferMemoryRequirementsInfo2
-> FieldType "buffer" VkBufferMemoryRequirementsInfo2
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"buffer" VkBufferMemoryRequirementsInfo2
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

-- | > 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.1-extensions/html/vkspec.html#VkBufferViewCreateInfo VkBufferViewCreateInfo registry at www.khronos.org>
data VkBufferViewCreateInfo = VkBufferViewCreateInfo# Addr#
                                                      ByteArray#

instance Eq VkBufferViewCreateInfo where
        (VkBufferViewCreateInfo# Addr#
a ByteArray#
_) == :: VkBufferViewCreateInfo -> VkBufferViewCreateInfo -> Bool
== x :: VkBufferViewCreateInfo
x@(VkBufferViewCreateInfo# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferViewCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferViewCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkBufferViewCreateInfo where
        (VkBufferViewCreateInfo# Addr#
a ByteArray#
_) compare :: VkBufferViewCreateInfo -> VkBufferViewCreateInfo -> Ordering
`compare`
          x :: VkBufferViewCreateInfo
x@(VkBufferViewCreateInfo# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkBufferViewCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkBufferViewCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkBufferViewCreateInfo where
        sizeOf :: VkBufferViewCreateInfo -> Int
sizeOf ~VkBufferViewCreateInfo
_ = (Int
56)
{-# LINE 1390 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkBufferViewCreateInfo -> Int
alignment ~VkBufferViewCreateInfo
_ = Int
8
{-# LINE 1393 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkBufferViewCreateInfo -> IO VkBufferViewCreateInfo
peek = Ptr VkBufferViewCreateInfo -> IO VkBufferViewCreateInfo
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkBufferViewCreateInfo -> VkBufferViewCreateInfo -> IO ()
poke = Ptr VkBufferViewCreateInfo -> VkBufferViewCreateInfo -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkBufferViewCreateInfo where
        unsafeAddr :: VkBufferViewCreateInfo -> Addr#
unsafeAddr (VkBufferViewCreateInfo# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkBufferViewCreateInfo -> ByteArray#
unsafeByteArray (VkBufferViewCreateInfo# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkBufferViewCreateInfo
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkBufferViewCreateInfo
VkBufferViewCreateInfo# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off) ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkBufferViewCreateInfo where
        type StructFields VkBufferViewCreateInfo =
             '["sType", "pNext", "flags", "buffer", "format", "offset", "range"] -- ' closing tick for hsc2hs
        type CUnionType VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkBufferViewCreateInfo = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkBufferViewCreateInfo where
        type FieldType "sType" VkBufferViewCreateInfo = VkStructureType
        type FieldOptional "sType" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkBufferViewCreateInfo =
             (0)
{-# LINE 1427 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "sType" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 1434 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "sType" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
0))
{-# LINE 1441 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "sType" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
0)
{-# LINE 1445 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "sType" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
0)
{-# LINE 1451 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkBufferViewCreateInfo where
        type FieldType "pNext" VkBufferViewCreateInfo = Ptr Void
        type FieldOptional "pNext" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkBufferViewCreateInfo =
             (8)
{-# LINE 1458 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "pNext" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
8)
{-# LINE 1465 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "pNext" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
8))
{-# LINE 1472 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "pNext" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
8)
{-# LINE 1476 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "pNext" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
8)
{-# LINE 1482 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "flags" VkBufferViewCreateInfo where
        type FieldType "flags" VkBufferViewCreateInfo =
             VkBufferViewCreateFlags
        type FieldOptional "flags" VkBufferViewCreateInfo = 'True -- ' closing tick for hsc2hs
        type FieldOffset "flags" VkBufferViewCreateInfo =
             (16)
{-# LINE 1490 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "flags" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
16)
{-# LINE 1497 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "flags" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO VkBufferViewCreateFlags -> VkBufferViewCreateFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO VkBufferViewCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
16))
{-# LINE 1504 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "flags" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO VkBufferViewCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
16)
{-# LINE 1508 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "flags" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo
-> Int -> VkBufferViewCreateFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
16)
{-# LINE 1514 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "buffer" VkBufferViewCreateInfo where
        type FieldType "buffer" VkBufferViewCreateInfo = VkBuffer
        type FieldOptional "buffer" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "buffer" VkBufferViewCreateInfo =
             (24)
{-# LINE 1521 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "buffer" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
24)
{-# LINE 1528 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "buffer" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "buffer" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO VkBuffer -> VkBuffer
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO VkBuffer
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
24))
{-# LINE 1535 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "buffer" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO VkBuffer
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
24)
{-# LINE 1539 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "buffer" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "buffer" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> VkBuffer -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
24)
{-# LINE 1545 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "format" VkBufferViewCreateInfo where
        type FieldType "format" VkBufferViewCreateInfo = VkFormat
        type FieldOptional "format" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "format" VkBufferViewCreateInfo =
             (32)
{-# LINE 1552 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "format" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
32)
{-# LINE 1559 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "format" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "format" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO VkFormat -> VkFormat
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO VkFormat
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
32))
{-# LINE 1566 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "format" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO VkFormat
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
32)
{-# LINE 1570 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "format" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "format" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> VkFormat -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
32)
{-# LINE 1576 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "offset" VkBufferViewCreateInfo where
        type FieldType "offset" VkBufferViewCreateInfo = VkDeviceSize
        type FieldOptional "offset" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "offset" VkBufferViewCreateInfo =
             (40)
{-# LINE 1583 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "offset" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
40)
{-# LINE 1590 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "offset" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "offset" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
40))
{-# LINE 1597 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "offset" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
40)
{-# LINE 1601 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "offset" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "offset" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
40)
{-# LINE 1607 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "range" VkBufferViewCreateInfo where
        type FieldType "range" VkBufferViewCreateInfo = VkDeviceSize
        type FieldOptional "range" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "range" VkBufferViewCreateInfo =
             (48)
{-# LINE 1614 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}
        type FieldIsArray "range" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
48)
{-# LINE 1621 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "range" VkBufferViewCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkBufferViewCreateInfo -> FieldType "range" VkBufferViewCreateInfo
getField VkBufferViewCreateInfo
x
          = IO VkDeviceSize -> VkDeviceSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkBufferViewCreateInfo -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkBufferViewCreateInfo -> Ptr VkBufferViewCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkBufferViewCreateInfo
x) (Int
48))
{-# LINE 1628 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkBufferViewCreateInfo
-> IO (FieldType "range" VkBufferViewCreateInfo)
readField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> IO VkDeviceSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkBufferViewCreateInfo
p (Int
48)
{-# LINE 1632 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "range" VkBufferViewCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkBufferViewCreateInfo
-> FieldType "range" VkBufferViewCreateInfo -> IO ()
writeField Ptr VkBufferViewCreateInfo
p
          = Ptr VkBufferViewCreateInfo -> Int -> VkDeviceSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkBufferViewCreateInfo
p (Int
48)
{-# LINE 1638 "src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc" #-}

instance Show VkBufferViewCreateInfo where
        showsPrec :: Int -> VkBufferViewCreateInfo -> ShowS
showsPrec Int
d VkBufferViewCreateInfo
x
          = String -> ShowS
showString String
"VkBufferViewCreateInfo {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "sType" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "pNext" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"flags = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkBufferViewCreateFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "flags" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"flags" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"buffer = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> VkBuffer -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "buffer" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"buffer" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"format = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> VkFormat -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "format" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"format" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                            String -> ShowS
showString String
"offset = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "offset" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"offset" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                  String -> ShowS
showString String
"range = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                    Int -> VkDeviceSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkBufferViewCreateInfo -> FieldType "range" VkBufferViewCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"range" VkBufferViewCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'