{-# language CPP #-}
module Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 ( PhysicalDeviceShaderFloat16Int8Features(..)
, StructureType(..)
) where
import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import Foreign.Ptr (Ptr)
import Data.Kind (Type)
import Vulkan.Core10.BaseType (bool32ToBool)
import Vulkan.Core10.BaseType (boolToBool32)
import Vulkan.Core10.BaseType (Bool32)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES))
import Vulkan.Core10.Enums.StructureType (StructureType(..))
data PhysicalDeviceShaderFloat16Int8Features = PhysicalDeviceShaderFloat16Int8Features
{
PhysicalDeviceShaderFloat16Int8Features -> Bool
shaderFloat16 :: Bool
,
PhysicalDeviceShaderFloat16Int8Features -> Bool
shaderInt8 :: Bool
}
deriving (Typeable)
deriving instance Show PhysicalDeviceShaderFloat16Int8Features
instance ToCStruct PhysicalDeviceShaderFloat16Int8Features where
withCStruct :: PhysicalDeviceShaderFloat16Int8Features
-> (Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b) -> IO b
withCStruct x :: PhysicalDeviceShaderFloat16Int8Features
x f :: Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceShaderFloat16Int8Features
p -> Ptr PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloat16Int8Features
p PhysicalDeviceShaderFloat16Int8Features
x (Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b
f Ptr PhysicalDeviceShaderFloat16Int8Features
p)
pokeCStruct :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> IO b -> IO b
pokeCStruct p :: Ptr PhysicalDeviceShaderFloat16Int8Features
p PhysicalDeviceShaderFloat16Int8Features{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderFloat16))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderInt8))
IO b
f
cStructSize :: Int
cStructSize = 24
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceShaderFloat16Int8Features
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderFloat16Int8Features where
peekCStruct :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
peekCStruct p :: Ptr PhysicalDeviceShaderFloat16Int8Features
p = do
Bool32
shaderFloat16 <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
Bool32
shaderInt8 <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderFloat16Int8Features
p Ptr PhysicalDeviceShaderFloat16Int8Features -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32))
PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features)
-> PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> PhysicalDeviceShaderFloat16Int8Features
PhysicalDeviceShaderFloat16Int8Features
(Bool32 -> Bool
bool32ToBool Bool32
shaderFloat16) (Bool32 -> Bool
bool32ToBool Bool32
shaderInt8)
instance Storable PhysicalDeviceShaderFloat16Int8Features where
sizeOf :: PhysicalDeviceShaderFloat16Int8Features -> Int
sizeOf ~PhysicalDeviceShaderFloat16Int8Features
_ = 24
alignment :: PhysicalDeviceShaderFloat16Int8Features -> Int
alignment ~PhysicalDeviceShaderFloat16Int8Features
_ = 8
peek :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
peek = Ptr PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> IO ()
poke ptr :: Ptr PhysicalDeviceShaderFloat16Int8Features
ptr poked :: PhysicalDeviceShaderFloat16Int8Features
poked = Ptr PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloat16Int8Features
ptr PhysicalDeviceShaderFloat16Int8Features
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderFloat16Int8Features where
zero :: PhysicalDeviceShaderFloat16Int8Features
zero = Bool -> Bool -> PhysicalDeviceShaderFloat16Int8Features
PhysicalDeviceShaderFloat16Int8Features
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero