module Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
(VkDispatchIndirectCommand(..)) 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 VkDispatchIndirectCommand = VkDispatchIndirectCommand# Addr#
ByteArray#
instance Eq VkDispatchIndirectCommand where
(VkDispatchIndirectCommand# a _) ==
x@(VkDispatchIndirectCommand# b _) = EQ == cmpBytes# (sizeOf x) a b
instance Ord VkDispatchIndirectCommand where
(VkDispatchIndirectCommand# a _) `compare`
x@(VkDispatchIndirectCommand# b _) = cmpBytes# (sizeOf x) a b
instance Storable VkDispatchIndirectCommand where
sizeOf ~_ = (12)
alignment ~_ = (4)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkDispatchIndirectCommand where
unsafeAddr (VkDispatchIndirectCommand# a _) = a
unsafeByteArray (VkDispatchIndirectCommand# _ b) = b
unsafeFromByteArrayOffset off b
= VkDispatchIndirectCommand# (plusAddr# (byteArrayContents# b) off)
b
instance VulkanMarshal VkDispatchIndirectCommand where
type StructFields VkDispatchIndirectCommand = '["x", "y", "z"]
type CUnionType VkDispatchIndirectCommand = 'False
type ReturnedOnly VkDispatchIndirectCommand = 'False
type StructExtends VkDispatchIndirectCommand = '[]
instance HasField "x" VkDispatchIndirectCommand
where
type FieldType "x" VkDispatchIndirectCommand = Word32
type FieldOptional "x" VkDispatchIndirectCommand = 'False
type FieldOffset "x" VkDispatchIndirectCommand =
(0)
type FieldIsArray "x" VkDispatchIndirectCommand = 'False
fieldOptional = False
fieldOffset = (0)
instance
CanReadField "x" VkDispatchIndirectCommand where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "x" VkDispatchIndirectCommand where
writeField p
= pokeByteOff p (0)
instance HasField "y" VkDispatchIndirectCommand
where
type FieldType "y" VkDispatchIndirectCommand = Word32
type FieldOptional "y" VkDispatchIndirectCommand = 'False
type FieldOffset "y" VkDispatchIndirectCommand =
(4)
type FieldIsArray "y" VkDispatchIndirectCommand = 'False
fieldOptional = False
fieldOffset = (4)
instance
CanReadField "y" VkDispatchIndirectCommand where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (4))
readField p
= peekByteOff p (4)
instance
CanWriteField "y" VkDispatchIndirectCommand where
writeField p
= pokeByteOff p (4)
instance HasField "z" VkDispatchIndirectCommand
where
type FieldType "z" VkDispatchIndirectCommand = Word32
type FieldOptional "z" VkDispatchIndirectCommand = 'False
type FieldOffset "z" VkDispatchIndirectCommand =
(8)
type FieldIsArray "z" VkDispatchIndirectCommand = 'False
fieldOptional = False
fieldOffset = (8)
instance
CanReadField "z" VkDispatchIndirectCommand where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "z" VkDispatchIndirectCommand where
writeField p
= pokeByteOff p (8)
instance Show VkDispatchIndirectCommand where
showsPrec d x
= showString "VkDispatchIndirectCommand {" .
showString "x = " .
showsPrec d (getField @"x" x) .
showString ", " .
showString "y = " .
showsPrec d (getField @"y" x) .
showString ", " .
showString "z = " . showsPrec d (getField @"z" x) . showChar '}'