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