{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_fragment_density_map2 ( PhysicalDeviceFragmentDensityMap2FeaturesEXT(..)
, PhysicalDeviceFragmentDensityMap2PropertiesEXT(..)
, EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION
, pattern EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION
, EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME
, pattern EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME
) where
import Foreign.Marshal.Alloc (allocaBytesAligned)
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.Word (Word32)
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_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT))
data PhysicalDeviceFragmentDensityMap2FeaturesEXT = PhysicalDeviceFragmentDensityMap2FeaturesEXT
{
PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool
fragmentDensityMapDeferred :: Bool }
deriving (Typeable, PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool
(PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool)
-> (PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool)
-> Eq PhysicalDeviceFragmentDensityMap2FeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool
$c/= :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool
== :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool
$c== :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentDensityMap2FeaturesEXT)
#endif
deriving instance Show PhysicalDeviceFragmentDensityMap2FeaturesEXT
instance ToCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT where
withCStruct :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> (Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b)
-> IO b
withCStruct x :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
x f :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p -> Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p PhysicalDeviceFragmentDensityMap2FeaturesEXT
x (Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b
f Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p)
pokeCStruct :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b -> IO b
pokeCStruct p :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p PhysicalDeviceFragmentDensityMap2FeaturesEXT{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> 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 PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
fragmentDensityMapDeferred))
IO b
f
cStructSize :: Int
cStructSize = 24
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> 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 PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> 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))
IO b
f
instance FromCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> IO PhysicalDeviceFragmentDensityMap2FeaturesEXT
peekCStruct p :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p = do
Bool32
fragmentDensityMapDeferred <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
p Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> IO PhysicalDeviceFragmentDensityMap2FeaturesEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> IO PhysicalDeviceFragmentDensityMap2FeaturesEXT)
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> IO PhysicalDeviceFragmentDensityMap2FeaturesEXT
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceFragmentDensityMap2FeaturesEXT
PhysicalDeviceFragmentDensityMap2FeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
fragmentDensityMapDeferred)
instance Storable PhysicalDeviceFragmentDensityMap2FeaturesEXT where
sizeOf :: PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Int
sizeOf ~PhysicalDeviceFragmentDensityMap2FeaturesEXT
_ = 24
alignment :: PhysicalDeviceFragmentDensityMap2FeaturesEXT -> Int
alignment ~PhysicalDeviceFragmentDensityMap2FeaturesEXT
_ = 8
peek :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> IO PhysicalDeviceFragmentDensityMap2FeaturesEXT
peek = Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> IO PhysicalDeviceFragmentDensityMap2FeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO ()
poke ptr :: Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
ptr poked :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
poked = Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
-> PhysicalDeviceFragmentDensityMap2FeaturesEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
ptr PhysicalDeviceFragmentDensityMap2FeaturesEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentDensityMap2FeaturesEXT where
zero :: PhysicalDeviceFragmentDensityMap2FeaturesEXT
zero = Bool -> PhysicalDeviceFragmentDensityMap2FeaturesEXT
PhysicalDeviceFragmentDensityMap2FeaturesEXT
Bool
forall a. Zero a => a
zero
data PhysicalDeviceFragmentDensityMap2PropertiesEXT = PhysicalDeviceFragmentDensityMap2PropertiesEXT
{
PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
subsampledLoads :: Bool
,
PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
subsampledCoarseReconstructionEarlyAccess :: Bool
,
PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Word32
maxSubsampledArrayLayers :: Word32
,
PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Word32
maxDescriptorSetSubsampledSamplers :: Word32
}
deriving (Typeable, PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
(PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool)
-> (PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool)
-> Eq PhysicalDeviceFragmentDensityMap2PropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
$c/= :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
== :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
$c== :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceFragmentDensityMap2PropertiesEXT)
#endif
deriving instance Show PhysicalDeviceFragmentDensityMap2PropertiesEXT
instance ToCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT where
withCStruct :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> (Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b)
-> IO b
withCStruct x :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
x f :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 32 8 ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p -> Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p PhysicalDeviceFragmentDensityMap2PropertiesEXT
x (Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b
f Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p)
pokeCStruct :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b -> IO b
pokeCStruct p :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p PhysicalDeviceFragmentDensityMap2PropertiesEXT{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> 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 PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
subsampledLoads))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
subsampledCoarseReconstructionEarlyAccess))
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Word32)) (Word32
maxSubsampledArrayLayers)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28 :: Ptr Word32)) (Word32
maxDescriptorSetSubsampledSamplers)
IO b
f
cStructSize :: Int
cStructSize = 32
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> 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 PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> 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 PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> 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))
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> IO PhysicalDeviceFragmentDensityMap2PropertiesEXT
peekCStruct p :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p = do
Bool32
subsampledLoads <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
Bool32
subsampledCoarseReconstructionEarlyAccess <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32))
Word32
maxSubsampledArrayLayers <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Word32))
Word32
maxDescriptorSetSubsampledSamplers <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
p Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28 :: Ptr Word32))
PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> IO PhysicalDeviceFragmentDensityMap2PropertiesEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> IO PhysicalDeviceFragmentDensityMap2PropertiesEXT)
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> IO PhysicalDeviceFragmentDensityMap2PropertiesEXT
forall a b. (a -> b) -> a -> b
$ Bool
-> Bool
-> Word32
-> Word32
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT
PhysicalDeviceFragmentDensityMap2PropertiesEXT
(Bool32 -> Bool
bool32ToBool Bool32
subsampledLoads) (Bool32 -> Bool
bool32ToBool Bool32
subsampledCoarseReconstructionEarlyAccess) Word32
maxSubsampledArrayLayers Word32
maxDescriptorSetSubsampledSamplers
instance Storable PhysicalDeviceFragmentDensityMap2PropertiesEXT where
sizeOf :: PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Int
sizeOf ~PhysicalDeviceFragmentDensityMap2PropertiesEXT
_ = 32
alignment :: PhysicalDeviceFragmentDensityMap2PropertiesEXT -> Int
alignment ~PhysicalDeviceFragmentDensityMap2PropertiesEXT
_ = 8
peek :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> IO PhysicalDeviceFragmentDensityMap2PropertiesEXT
peek = Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> IO PhysicalDeviceFragmentDensityMap2PropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO ()
poke ptr :: Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
ptr poked :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
poked = Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
ptr PhysicalDeviceFragmentDensityMap2PropertiesEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceFragmentDensityMap2PropertiesEXT where
zero :: PhysicalDeviceFragmentDensityMap2PropertiesEXT
zero = Bool
-> Bool
-> Word32
-> Word32
-> PhysicalDeviceFragmentDensityMap2PropertiesEXT
PhysicalDeviceFragmentDensityMap2PropertiesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
type EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION = 1
pattern EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION :: a
$mEXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION = 1
type EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME = "VK_EXT_fragment_density_map2"
pattern EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME :: a
$mEXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME = "VK_EXT_fragment_density_map2"