{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_legacy_dithering ( PhysicalDeviceLegacyDitheringFeaturesEXT(..)
, EXT_LEGACY_DITHERING_SPEC_VERSION
, pattern EXT_LEGACY_DITHERING_SPEC_VERSION
, EXT_LEGACY_DITHERING_EXTENSION_NAME
, pattern EXT_LEGACY_DITHERING_EXTENSION_NAME
) 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.String (IsString)
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_LEGACY_DITHERING_FEATURES_EXT))
data PhysicalDeviceLegacyDitheringFeaturesEXT = PhysicalDeviceLegacyDitheringFeaturesEXT
{
PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
legacyDithering :: Bool }
deriving (Typeable, PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
$c/= :: PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
== :: PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
$c== :: PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceLegacyDitheringFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceLegacyDitheringFeaturesEXT
instance ToCStruct PhysicalDeviceLegacyDitheringFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceLegacyDitheringFeaturesEXT
-> (Ptr PhysicalDeviceLegacyDitheringFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceLegacyDitheringFeaturesEXT
x Ptr PhysicalDeviceLegacyDitheringFeaturesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p PhysicalDeviceLegacyDitheringFeaturesEXT
x (Ptr PhysicalDeviceLegacyDitheringFeaturesEXT -> IO b
f Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p PhysicalDeviceLegacyDitheringFeaturesEXT{Bool
legacyDithering :: Bool
$sel:legacyDithering:PhysicalDeviceLegacyDitheringFeaturesEXT :: PhysicalDeviceLegacyDitheringFeaturesEXT -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
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 PhysicalDeviceLegacyDitheringFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
legacyDithering))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceLegacyDitheringFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
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 PhysicalDeviceLegacyDitheringFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceLegacyDitheringFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
-> IO PhysicalDeviceLegacyDitheringFeaturesEXT
peekCStruct Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p = do
Bool32
legacyDithering <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceLegacyDitheringFeaturesEXT
PhysicalDeviceLegacyDitheringFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
legacyDithering)
instance Storable PhysicalDeviceLegacyDitheringFeaturesEXT where
sizeOf :: PhysicalDeviceLegacyDitheringFeaturesEXT -> Int
sizeOf ~PhysicalDeviceLegacyDitheringFeaturesEXT
_ = Int
24
alignment :: PhysicalDeviceLegacyDitheringFeaturesEXT -> Int
alignment ~PhysicalDeviceLegacyDitheringFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
-> IO PhysicalDeviceLegacyDitheringFeaturesEXT
peek = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
-> PhysicalDeviceLegacyDitheringFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
ptr PhysicalDeviceLegacyDitheringFeaturesEXT
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceLegacyDitheringFeaturesEXT
ptr PhysicalDeviceLegacyDitheringFeaturesEXT
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceLegacyDitheringFeaturesEXT where
zero :: PhysicalDeviceLegacyDitheringFeaturesEXT
zero = Bool -> PhysicalDeviceLegacyDitheringFeaturesEXT
PhysicalDeviceLegacyDitheringFeaturesEXT
forall a. Zero a => a
zero
type EXT_LEGACY_DITHERING_SPEC_VERSION = 1
pattern EXT_LEGACY_DITHERING_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_LEGACY_DITHERING_SPEC_VERSION :: forall a. Integral a => a
$mEXT_LEGACY_DITHERING_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_LEGACY_DITHERING_SPEC_VERSION = 1
type EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering"
pattern EXT_LEGACY_DITHERING_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_LEGACY_DITHERING_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_LEGACY_DITHERING_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering"