module Graphics.Vulkan.Types.Struct.Specialization
(VkSpecializationInfo(..), VkSpecializationMapEntry(..)) where
import Foreign.Storable (Storable (..))
import GHC.Base (Addr#, ByteArray#,
byteArrayContents#,
plusAddr#)
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import System.IO.Unsafe (unsafeDupablePerformIO)
data VkSpecializationInfo = VkSpecializationInfo# Addr# ByteArray#
instance Eq VkSpecializationInfo where
(VkSpecializationInfo# a _) == x@(VkSpecializationInfo# b _)
= EQ == cmpBytes# (sizeOf x) a b
instance Ord VkSpecializationInfo where
(VkSpecializationInfo# a _) `compare` x@(VkSpecializationInfo# b _)
= cmpBytes# (sizeOf x) a b
instance Storable VkSpecializationInfo where
sizeOf ~_ = (32)
alignment ~_ = (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkSpecializationInfo where
unsafeAddr (VkSpecializationInfo# a _) = a
unsafeByteArray (VkSpecializationInfo# _ b) = b
unsafeFromByteArrayOffset off b
= VkSpecializationInfo# (plusAddr# (byteArrayContents# b) off) b
instance VulkanMarshal VkSpecializationInfo where
type StructFields VkSpecializationInfo =
'["mapEntryCount", "pMapEntries", "dataSize", "pData"]
type CUnionType VkSpecializationInfo = 'False
type ReturnedOnly VkSpecializationInfo = 'False
type StructExtends VkSpecializationInfo = '[]
instance
HasField "mapEntryCount" VkSpecializationInfo where
type FieldType "mapEntryCount" VkSpecializationInfo = Word32
type FieldOptional "mapEntryCount" VkSpecializationInfo = 'True
type FieldOffset "mapEntryCount" VkSpecializationInfo =
(0)
type FieldIsArray "mapEntryCount" VkSpecializationInfo = 'False
fieldOptional = True
fieldOffset
= (0)
instance
CanReadField "mapEntryCount" VkSpecializationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "mapEntryCount" VkSpecializationInfo where
writeField p
= pokeByteOff p (0)
instance
HasField "pMapEntries" VkSpecializationInfo where
type FieldType "pMapEntries" VkSpecializationInfo =
Ptr VkSpecializationMapEntry
type FieldOptional "pMapEntries" VkSpecializationInfo = 'False
type FieldOffset "pMapEntries" VkSpecializationInfo =
(8)
type FieldIsArray "pMapEntries" VkSpecializationInfo = 'False
fieldOptional = False
fieldOffset
= (8)
instance
CanReadField "pMapEntries" VkSpecializationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "pMapEntries" VkSpecializationInfo where
writeField p
= pokeByteOff p (8)
instance
HasField "dataSize" VkSpecializationInfo where
type FieldType "dataSize" VkSpecializationInfo = CSize
type FieldOptional "dataSize" VkSpecializationInfo = 'True
type FieldOffset "dataSize" VkSpecializationInfo =
(16)
type FieldIsArray "dataSize" VkSpecializationInfo = 'False
fieldOptional = True
fieldOffset = (16)
instance
CanReadField "dataSize" VkSpecializationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (16))
readField p
= peekByteOff p (16)
instance
CanWriteField "dataSize" VkSpecializationInfo where
writeField p
= pokeByteOff p (16)
instance HasField "pData" VkSpecializationInfo
where
type FieldType "pData" VkSpecializationInfo = Ptr Void
type FieldOptional "pData" VkSpecializationInfo = 'False
type FieldOffset "pData" VkSpecializationInfo =
(24)
type FieldIsArray "pData" VkSpecializationInfo = 'False
fieldOptional = False
fieldOffset = (24)
instance
CanReadField "pData" VkSpecializationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (24))
readField p
= peekByteOff p (24)
instance
CanWriteField "pData" VkSpecializationInfo where
writeField p
= pokeByteOff p (24)
instance Show VkSpecializationInfo where
showsPrec d x
= showString "VkSpecializationInfo {" .
showString "mapEntryCount = " .
showsPrec d (getField @"mapEntryCount" x) .
showString ", " .
showString "pMapEntries = " .
showsPrec d (getField @"pMapEntries" x) .
showString ", " .
showString "dataSize = " .
showsPrec d (getField @"dataSize" x) .
showString ", " .
showString "pData = " .
showsPrec d (getField @"pData" x) . showChar '}'
data VkSpecializationMapEntry = VkSpecializationMapEntry# Addr#
ByteArray#
instance Eq VkSpecializationMapEntry where
(VkSpecializationMapEntry# a _) ==
x@(VkSpecializationMapEntry# b _) = EQ == cmpBytes# (sizeOf x) a b
instance Ord VkSpecializationMapEntry where
(VkSpecializationMapEntry# a _) `compare`
x@(VkSpecializationMapEntry# b _) = cmpBytes# (sizeOf x) a b
instance Storable VkSpecializationMapEntry where
sizeOf ~_ = (16)
alignment ~_ = (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkSpecializationMapEntry where
unsafeAddr (VkSpecializationMapEntry# a _) = a
unsafeByteArray (VkSpecializationMapEntry# _ b) = b
unsafeFromByteArrayOffset off b
= VkSpecializationMapEntry# (plusAddr# (byteArrayContents# b) off)
b
instance VulkanMarshal VkSpecializationMapEntry where
type StructFields VkSpecializationMapEntry =
'["constantID", "offset", "size"]
type CUnionType VkSpecializationMapEntry = 'False
type ReturnedOnly VkSpecializationMapEntry = 'False
type StructExtends VkSpecializationMapEntry = '[]
instance
HasField "constantID" VkSpecializationMapEntry where
type FieldType "constantID" VkSpecializationMapEntry = Word32
type FieldOptional "constantID" VkSpecializationMapEntry = 'False
type FieldOffset "constantID" VkSpecializationMapEntry =
(0)
type FieldIsArray "constantID" VkSpecializationMapEntry = 'False
fieldOptional = False
fieldOffset
= (0)
instance
CanReadField "constantID" VkSpecializationMapEntry where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "constantID" VkSpecializationMapEntry where
writeField p
= pokeByteOff p (0)
instance
HasField "offset" VkSpecializationMapEntry where
type FieldType "offset" VkSpecializationMapEntry = Word32
type FieldOptional "offset" VkSpecializationMapEntry = 'False
type FieldOffset "offset" VkSpecializationMapEntry =
(4)
type FieldIsArray "offset" VkSpecializationMapEntry = 'False
fieldOptional = False
fieldOffset
= (4)
instance
CanReadField "offset" VkSpecializationMapEntry where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (4))
readField p
= peekByteOff p (4)
instance
CanWriteField "offset" VkSpecializationMapEntry where
writeField p
= pokeByteOff p (4)
instance
HasField "size" VkSpecializationMapEntry where
type FieldType "size" VkSpecializationMapEntry = CSize
type FieldOptional "size" VkSpecializationMapEntry = 'False
type FieldOffset "size" VkSpecializationMapEntry =
(8)
type FieldIsArray "size" VkSpecializationMapEntry = 'False
fieldOptional = False
fieldOffset = (8)
instance
CanReadField "size" VkSpecializationMapEntry where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "size" VkSpecializationMapEntry where
writeField p
= pokeByteOff p (8)
instance Show VkSpecializationMapEntry where
showsPrec d x
= showString "VkSpecializationMapEntry {" .
showString "constantID = " .
showsPrec d (getField @"constantID" x) .
showString ", " .
showString "offset = " .
showsPrec d (getField @"offset" x) .
showString ", " .
showString "size = " .
showsPrec d (getField @"size" x) . showChar '}'