{-# 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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
$c/= :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
== :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
$c== :: 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 = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p -> 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
multiviewPerViewViewports :: Bool
$sel:multiviewPerViewViewports:PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> Bool
..} IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
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 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p 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
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
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 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
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 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 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 -> 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 = forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
-> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM -> IO ()
poke Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
poked = forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
ptr PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
poked (forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM where
zero :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
zero = Bool -> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
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"