{-# language CPP #-}
module Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports ( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(..)
, QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION
, pattern QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION
, QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME
, pattern QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_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_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM))
data PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
{
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
multiviewPerViewViewports :: Bool }
deriving (Typeable, PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
(PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool)
-> (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool)
-> Eq PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
== :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
$c/= :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
/= :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM)
#endif
deriving instance Show PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
instance ToCStruct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM where
withCStruct :: forall b.
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> (Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b)
-> IO b
withCStruct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
x Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> IO b
f = Int
-> (Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p -> Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b
-> IO b
forall b.
Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
x (Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> IO b
f Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM{Bool
$sel:multiviewPerViewViewports:PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
multiviewPerViewViewports :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> 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 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
multiviewPerViewViewports))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> 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 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> 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 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM where
peekCStruct :: Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
peekCStruct Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p = do
Bool32
multiviewPerViewViewports <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM)
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
(Bool32 -> Bool
bool32ToBool Bool32
multiviewPerViewViewports)
instance Storable PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM where
sizeOf :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Int
sizeOf ~PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
_ = Int
24
alignment :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Int
alignment ~PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
_ = Int
8
peek :: Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
peek = Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> IO ()
poke Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
poked = Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM where
zero :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
zero = Bool -> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
Bool
forall a. Zero a => a
zero
type QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1
pattern QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION :: forall a . Integral a => a
pattern $bQCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION :: forall a. Integral a => a
$mQCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1
type QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports"
pattern QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bQCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mQCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports"