{-# language CPP #-}
module Vulkan.Extensions.VK_MESA_image_alignment_control ( PhysicalDeviceImageAlignmentControlFeaturesMESA(..)
, PhysicalDeviceImageAlignmentControlPropertiesMESA(..)
, ImageAlignmentControlCreateInfoMESA(..)
, MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION
, pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION
, MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME
, pattern MESA_IMAGE_ALIGNMENT_CONTROL_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.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_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA))
data PhysicalDeviceImageAlignmentControlFeaturesMESA = PhysicalDeviceImageAlignmentControlFeaturesMESA
{
PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
imageAlignmentControl :: Bool }
deriving (Typeable, PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
(PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool)
-> (PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool)
-> Eq PhysicalDeviceImageAlignmentControlFeaturesMESA
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
== :: PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
$c/= :: PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
/= :: PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceImageAlignmentControlFeaturesMESA)
#endif
deriving instance Show PhysicalDeviceImageAlignmentControlFeaturesMESA
instance ToCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA where
withCStruct :: forall b.
PhysicalDeviceImageAlignmentControlFeaturesMESA
-> (Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b)
-> IO b
withCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA
x Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b
f = Int
-> (Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p -> Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b -> IO b
forall b.
Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p PhysicalDeviceImageAlignmentControlFeaturesMESA
x (Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b
f Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p PhysicalDeviceImageAlignmentControlFeaturesMESA{Bool
imageAlignmentControl :: PhysicalDeviceImageAlignmentControlFeaturesMESA -> Bool
imageAlignmentControl :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
imageAlignmentControl))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceImageAlignmentControlFeaturesMESA where
peekCStruct :: Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> IO PhysicalDeviceImageAlignmentControlFeaturesMESA
peekCStruct Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p = do
imageAlignmentControl <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
p Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDeviceImageAlignmentControlFeaturesMESA
(bool32ToBool imageAlignmentControl)
instance Storable PhysicalDeviceImageAlignmentControlFeaturesMESA where
sizeOf :: PhysicalDeviceImageAlignmentControlFeaturesMESA -> Int
sizeOf ~PhysicalDeviceImageAlignmentControlFeaturesMESA
_ = Int
24
alignment :: PhysicalDeviceImageAlignmentControlFeaturesMESA -> Int
alignment ~PhysicalDeviceImageAlignmentControlFeaturesMESA
_ = Int
8
peek :: Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> IO PhysicalDeviceImageAlignmentControlFeaturesMESA
peek = Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> IO PhysicalDeviceImageAlignmentControlFeaturesMESA
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO ()
poke Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
poked = Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
-> PhysicalDeviceImageAlignmentControlFeaturesMESA -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
ptr PhysicalDeviceImageAlignmentControlFeaturesMESA
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceImageAlignmentControlFeaturesMESA where
zero :: PhysicalDeviceImageAlignmentControlFeaturesMESA
zero = Bool -> PhysicalDeviceImageAlignmentControlFeaturesMESA
PhysicalDeviceImageAlignmentControlFeaturesMESA
Bool
forall a. Zero a => a
zero
data PhysicalDeviceImageAlignmentControlPropertiesMESA = PhysicalDeviceImageAlignmentControlPropertiesMESA
{
PhysicalDeviceImageAlignmentControlPropertiesMESA -> Word32
supportedImageAlignmentMask :: Word32 }
deriving (Typeable, PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool
(PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool)
-> (PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool)
-> Eq PhysicalDeviceImageAlignmentControlPropertiesMESA
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool
== :: PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool
$c/= :: PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool
/= :: PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceImageAlignmentControlPropertiesMESA)
#endif
deriving instance Show PhysicalDeviceImageAlignmentControlPropertiesMESA
instance ToCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA where
withCStruct :: forall b.
PhysicalDeviceImageAlignmentControlPropertiesMESA
-> (Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO b)
-> IO b
withCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA
x Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO b
f = Int
-> (Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p -> Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO b
-> IO b
forall b.
Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p PhysicalDeviceImageAlignmentControlPropertiesMESA
x (Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO b
f Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p PhysicalDeviceImageAlignmentControlPropertiesMESA{Word32
supportedImageAlignmentMask :: PhysicalDeviceImageAlignmentControlPropertiesMESA -> Word32
supportedImageAlignmentMask :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
supportedImageAlignmentMask)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceImageAlignmentControlPropertiesMESA where
peekCStruct :: Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO PhysicalDeviceImageAlignmentControlPropertiesMESA
peekCStruct Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p = do
supportedImageAlignmentMask <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
p Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
pure $ PhysicalDeviceImageAlignmentControlPropertiesMESA
supportedImageAlignmentMask
instance Storable PhysicalDeviceImageAlignmentControlPropertiesMESA where
sizeOf :: PhysicalDeviceImageAlignmentControlPropertiesMESA -> Int
sizeOf ~PhysicalDeviceImageAlignmentControlPropertiesMESA
_ = Int
24
alignment :: PhysicalDeviceImageAlignmentControlPropertiesMESA -> Int
alignment ~PhysicalDeviceImageAlignmentControlPropertiesMESA
_ = Int
8
peek :: Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO PhysicalDeviceImageAlignmentControlPropertiesMESA
peek = Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO PhysicalDeviceImageAlignmentControlPropertiesMESA
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA -> IO ()
poke Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
poked = Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
-> PhysicalDeviceImageAlignmentControlPropertiesMESA
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
ptr PhysicalDeviceImageAlignmentControlPropertiesMESA
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceImageAlignmentControlPropertiesMESA where
zero :: PhysicalDeviceImageAlignmentControlPropertiesMESA
zero = Word32 -> PhysicalDeviceImageAlignmentControlPropertiesMESA
PhysicalDeviceImageAlignmentControlPropertiesMESA
Word32
forall a. Zero a => a
zero
data ImageAlignmentControlCreateInfoMESA = ImageAlignmentControlCreateInfoMESA
{
ImageAlignmentControlCreateInfoMESA -> Word32
maximumRequestedAlignment :: Word32 }
deriving (Typeable, ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool
(ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool)
-> (ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool)
-> Eq ImageAlignmentControlCreateInfoMESA
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool
== :: ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool
$c/= :: ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool
/= :: ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ImageAlignmentControlCreateInfoMESA)
#endif
deriving instance Show ImageAlignmentControlCreateInfoMESA
instance ToCStruct ImageAlignmentControlCreateInfoMESA where
withCStruct :: forall b.
ImageAlignmentControlCreateInfoMESA
-> (Ptr ImageAlignmentControlCreateInfoMESA -> IO b) -> IO b
withCStruct ImageAlignmentControlCreateInfoMESA
x Ptr ImageAlignmentControlCreateInfoMESA -> IO b
f = Int -> (Ptr ImageAlignmentControlCreateInfoMESA -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr ImageAlignmentControlCreateInfoMESA -> IO b) -> IO b)
-> (Ptr ImageAlignmentControlCreateInfoMESA -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ImageAlignmentControlCreateInfoMESA
p -> Ptr ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> IO b -> IO b
forall b.
Ptr ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageAlignmentControlCreateInfoMESA
p ImageAlignmentControlCreateInfoMESA
x (Ptr ImageAlignmentControlCreateInfoMESA -> IO b
f Ptr ImageAlignmentControlCreateInfoMESA
p)
pokeCStruct :: forall b.
Ptr ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> IO b -> IO b
pokeCStruct Ptr ImageAlignmentControlCreateInfoMESA
p ImageAlignmentControlCreateInfoMESA{Word32
maximumRequestedAlignment :: ImageAlignmentControlCreateInfoMESA -> Word32
maximumRequestedAlignment :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
maximumRequestedAlignment)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ImageAlignmentControlCreateInfoMESA -> IO b -> IO b
pokeZeroCStruct Ptr ImageAlignmentControlCreateInfoMESA
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ImageAlignmentControlCreateInfoMESA where
peekCStruct :: Ptr ImageAlignmentControlCreateInfoMESA
-> IO ImageAlignmentControlCreateInfoMESA
peekCStruct Ptr ImageAlignmentControlCreateInfoMESA
p = do
maximumRequestedAlignment <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr ImageAlignmentControlCreateInfoMESA
p Ptr ImageAlignmentControlCreateInfoMESA -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
pure $ ImageAlignmentControlCreateInfoMESA
maximumRequestedAlignment
instance Storable ImageAlignmentControlCreateInfoMESA where
sizeOf :: ImageAlignmentControlCreateInfoMESA -> Int
sizeOf ~ImageAlignmentControlCreateInfoMESA
_ = Int
24
alignment :: ImageAlignmentControlCreateInfoMESA -> Int
alignment ~ImageAlignmentControlCreateInfoMESA
_ = Int
8
peek :: Ptr ImageAlignmentControlCreateInfoMESA
-> IO ImageAlignmentControlCreateInfoMESA
peek = Ptr ImageAlignmentControlCreateInfoMESA
-> IO ImageAlignmentControlCreateInfoMESA
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> IO ()
poke Ptr ImageAlignmentControlCreateInfoMESA
ptr ImageAlignmentControlCreateInfoMESA
poked = Ptr ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> IO () -> IO ()
forall b.
Ptr ImageAlignmentControlCreateInfoMESA
-> ImageAlignmentControlCreateInfoMESA -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ImageAlignmentControlCreateInfoMESA
ptr ImageAlignmentControlCreateInfoMESA
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ImageAlignmentControlCreateInfoMESA where
zero :: ImageAlignmentControlCreateInfoMESA
zero = Word32 -> ImageAlignmentControlCreateInfoMESA
ImageAlignmentControlCreateInfoMESA
Word32
forall a. Zero a => a
zero
type MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION = 1
pattern MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION :: forall a . Integral a => a
pattern $mMESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bMESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION :: forall a. Integral a => a
MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION = 1
type MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control"
pattern MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mMESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bMESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control"