module Graphics.Vulkan.Types.Struct.ApplicationInfo
(VkApplicationInfo(..)) 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.StructureType (VkStructureType)
import System.IO.Unsafe (unsafeDupablePerformIO)
data VkApplicationInfo = VkApplicationInfo# Addr# ByteArray#
instance Eq VkApplicationInfo where
(VkApplicationInfo# a _) == x@(VkApplicationInfo# b _)
= EQ == cmpBytes# (sizeOf x) a b
instance Ord VkApplicationInfo where
(VkApplicationInfo# a _) `compare` x@(VkApplicationInfo# b _)
= cmpBytes# (sizeOf x) a b
instance Storable VkApplicationInfo where
sizeOf ~_ = (48)
alignment ~_ = (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkApplicationInfo where
unsafeAddr (VkApplicationInfo# a _) = a
unsafeByteArray (VkApplicationInfo# _ b) = b
unsafeFromByteArrayOffset off b
= VkApplicationInfo# (plusAddr# (byteArrayContents# b) off) b
instance VulkanMarshal VkApplicationInfo where
type StructFields VkApplicationInfo =
'["sType", "pNext", "pApplicationName", "applicationVersion",
"pEngineName", "engineVersion", "apiVersion"]
type CUnionType VkApplicationInfo = 'False
type ReturnedOnly VkApplicationInfo = 'False
type StructExtends VkApplicationInfo = '[]
instance HasField "sType" VkApplicationInfo
where
type FieldType "sType" VkApplicationInfo = VkStructureType
type FieldOptional "sType" VkApplicationInfo = 'False
type FieldOffset "sType" VkApplicationInfo =
(0)
type FieldIsArray "sType" VkApplicationInfo = 'False
fieldOptional = False
fieldOffset = (0)
instance CanReadField "sType" VkApplicationInfo
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "sType" VkApplicationInfo where
writeField p
= pokeByteOff p (0)
instance HasField "pNext" VkApplicationInfo
where
type FieldType "pNext" VkApplicationInfo = Ptr Void
type FieldOptional "pNext" VkApplicationInfo = 'False
type FieldOffset "pNext" VkApplicationInfo =
(8)
type FieldIsArray "pNext" VkApplicationInfo = 'False
fieldOptional = False
fieldOffset = (8)
instance CanReadField "pNext" VkApplicationInfo
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "pNext" VkApplicationInfo where
writeField p
= pokeByteOff p (8)
instance
HasField "pApplicationName" VkApplicationInfo where
type FieldType "pApplicationName" VkApplicationInfo = CString
type FieldOptional "pApplicationName" VkApplicationInfo = 'True
type FieldOffset "pApplicationName" VkApplicationInfo =
(16)
type FieldIsArray "pApplicationName" VkApplicationInfo = 'False
fieldOptional = True
fieldOffset
= (16)
instance
CanReadField "pApplicationName" VkApplicationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (16))
readField p
= peekByteOff p (16)
instance
CanWriteField "pApplicationName" VkApplicationInfo where
writeField p
= pokeByteOff p (16)
instance
HasField "applicationVersion" VkApplicationInfo where
type FieldType "applicationVersion" VkApplicationInfo = Word32
type FieldOptional "applicationVersion" VkApplicationInfo = 'False
type FieldOffset "applicationVersion" VkApplicationInfo =
(24)
type FieldIsArray "applicationVersion" VkApplicationInfo = 'False
fieldOptional = False
fieldOffset
= (24)
instance
CanReadField "applicationVersion" VkApplicationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (24))
readField p
= peekByteOff p (24)
instance
CanWriteField "applicationVersion" VkApplicationInfo where
writeField p
= pokeByteOff p (24)
instance
HasField "pEngineName" VkApplicationInfo where
type FieldType "pEngineName" VkApplicationInfo = CString
type FieldOptional "pEngineName" VkApplicationInfo = 'True
type FieldOffset "pEngineName" VkApplicationInfo =
(32)
type FieldIsArray "pEngineName" VkApplicationInfo = 'False
fieldOptional = True
fieldOffset = (32)
instance
CanReadField "pEngineName" VkApplicationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (32))
readField p
= peekByteOff p (32)
instance
CanWriteField "pEngineName" VkApplicationInfo where
writeField p
= pokeByteOff p (32)
instance
HasField "engineVersion" VkApplicationInfo where
type FieldType "engineVersion" VkApplicationInfo = Word32
type FieldOptional "engineVersion" VkApplicationInfo = 'False
type FieldOffset "engineVersion" VkApplicationInfo =
(40)
type FieldIsArray "engineVersion" VkApplicationInfo = 'False
fieldOptional = False
fieldOffset
= (40)
instance
CanReadField "engineVersion" VkApplicationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (40))
readField p
= peekByteOff p (40)
instance
CanWriteField "engineVersion" VkApplicationInfo where
writeField p
= pokeByteOff p (40)
instance
HasField "apiVersion" VkApplicationInfo where
type FieldType "apiVersion" VkApplicationInfo = Word32
type FieldOptional "apiVersion" VkApplicationInfo = 'False
type FieldOffset "apiVersion" VkApplicationInfo =
(44)
type FieldIsArray "apiVersion" VkApplicationInfo = 'False
fieldOptional = False
fieldOffset = (44)
instance
CanReadField "apiVersion" VkApplicationInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (44))
readField p
= peekByteOff p (44)
instance
CanWriteField "apiVersion" VkApplicationInfo where
writeField p
= pokeByteOff p (44)
instance Show VkApplicationInfo where
showsPrec d x
= showString "VkApplicationInfo {" .
showString "sType = " .
showsPrec d (getField @"sType" x) .
showString ", " .
showString "pNext = " .
showsPrec d (getField @"pNext" x) .
showString ", " .
showString "pApplicationName = " .
showsPrec d (getField @"pApplicationName" x) .
showString ", " .
showString "applicationVersion = " .
showsPrec d (getField @"applicationVersion" x) .
showString ", " .
showString "pEngineName = " .
showsPrec d (getField @"pEngineName" x) .
showString ", " .
showString "engineVersion = " .
showsPrec d (getField @"engineVersion" x) .
showString ", " .
showString "apiVersion = " .
showsPrec d (getField @"apiVersion" x) .
showChar '}'