{-# language CPP #-}
module Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 ( PhysicalDeviceShaderFloat16Int8Features(..)
, StructureType(..)
) where
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Enums.StructureType (StructureType)
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, PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> Bool
$c/= :: PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> Bool
== :: PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> Bool
$c== :: PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderFloat16Int8Features)
#endif
deriving instance Show PhysicalDeviceShaderFloat16Int8Features
instance ToCStruct PhysicalDeviceShaderFloat16Int8Features where
withCStruct :: forall b.
PhysicalDeviceShaderFloat16Int8Features
-> (Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b) -> IO b
withCStruct PhysicalDeviceShaderFloat16Int8Features
x Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderFloat16Int8Features
p -> 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 :: forall b.
Ptr PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloat16Int8Features
p PhysicalDeviceShaderFloat16Int8Features{Bool
shaderInt8 :: Bool
shaderFloat16 :: Bool
$sel:shaderInt8:PhysicalDeviceShaderFloat16Int8Features :: PhysicalDeviceShaderFloat16Int8Features -> Bool
$sel:shaderFloat16:PhysicalDeviceShaderFloat16Int8Features :: PhysicalDeviceShaderFloat16Int8Features -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderFloat16))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderInt8))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderFloat16Int8Features -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderFloat16Int8Features
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderFloat16Int8Features where
peekCStruct :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
peekCStruct Ptr PhysicalDeviceShaderFloat16Int8Features
p = do
Bool32
shaderFloat16 <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
shaderInt8 <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderFloat16Int8Features
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure 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
_ = Int
24
alignment :: PhysicalDeviceShaderFloat16Int8Features -> Int
alignment ~PhysicalDeviceShaderFloat16Int8Features
_ = Int
8
peek :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> IO PhysicalDeviceShaderFloat16Int8Features
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderFloat16Int8Features
-> PhysicalDeviceShaderFloat16Int8Features -> IO ()
poke Ptr PhysicalDeviceShaderFloat16Int8Features
ptr PhysicalDeviceShaderFloat16Int8Features
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderFloat16Int8Features
ptr PhysicalDeviceShaderFloat16Int8Features
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderFloat16Int8Features where
zero :: PhysicalDeviceShaderFloat16Int8Features
zero = Bool -> Bool -> PhysicalDeviceShaderFloat16Int8Features
PhysicalDeviceShaderFloat16Int8Features
forall a. Zero a => a
zero
forall a. Zero a => a
zero