{-# language CPP #-}
-- | = Name
--
-- XR_EXTX_overlay - instance extension
--
-- = Specification
--
-- See
-- <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_EXTX_overlay  XR_EXTX_overlay>
-- in the main specification for complete information.
--
-- = Registered Extension Number
--
-- 34
--
-- = Revision
--
-- 4
--
-- = Extension and Version Dependencies
--
-- -   Requires OpenXR 1.0
--
-- = See Also
--
-- 'EventDataMainSessionVisibilityChangedEXTX',
-- 'SessionCreateInfoOverlayEXTX'
--
-- = Document Notes
--
-- For more information, see the
-- <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_EXTX_overlay OpenXR Specification>
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
module OpenXR.Extensions.XR_EXTX_overlay  ( SessionCreateInfoOverlayEXTX(..)
                                          , EventDataMainSessionVisibilityChangedEXTX(..)
                                          , OverlayMainSessionFlagsEXTX(..)
                                          , OverlaySessionCreateFlagsEXTX(..)
                                          , EXTX_overlay_SPEC_VERSION
                                          , pattern EXTX_overlay_SPEC_VERSION
                                          , EXTX_OVERLAY_EXTENSION_NAME
                                          , pattern EXTX_OVERLAY_EXTENSION_NAME
                                          ) where

import OpenXR.Internal.Utils (enumReadPrec)
import OpenXR.Internal.Utils (enumShowsPrec)
import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import Numeric (showHex)
import OpenXR.CStruct (FromCStruct)
import OpenXR.CStruct (FromCStruct(..))
import OpenXR.CStruct (ToCStruct)
import OpenXR.CStruct (ToCStruct(..))
import OpenXR.Zero (Zero)
import OpenXR.Zero (Zero(..))
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
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 GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Kind (Type)
import OpenXR.Core10.FundamentalTypes (bool32ToBool)
import OpenXR.Core10.FundamentalTypes (boolToBool32)
import OpenXR.Core10.FundamentalTypes (Bool32)
import OpenXR.Core10.OtherTypes (EventDataBaseHeader(..))
import OpenXR.Core10.FundamentalTypes (Flags64)
import OpenXR.Core10.OtherTypes (IsEventData(..))
import OpenXR.Core10.Enums.StructureType (StructureType)
import OpenXR.Core10.Enums.StructureType (StructureType(TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX))
import OpenXR.Core10.Enums.StructureType (StructureType(TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX))
-- | XrSessionCreateInfoOverlayEXTX - Session creation extension struct
-- providing overlay session parameters
--
-- == Valid Usage (Implicit)
--
-- -   #VUID-XrSessionCreateInfoOverlayEXTX-extension-notenabled# The @@
--     extension /must/ be enabled prior to using
--     'SessionCreateInfoOverlayEXTX'
--
-- -   #VUID-XrSessionCreateInfoOverlayEXTX-type-type# @type@ /must/ be
--     'OpenXR.Core10.Enums.StructureType.TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX'
--
-- -   #VUID-XrSessionCreateInfoOverlayEXTX-next-next# @next@ /must/ be
--     @NULL@ or a valid pointer to the
--     <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#valid-usage-for-structure-pointer-chains next structure in a structure chain>
--
-- -   #VUID-XrSessionCreateInfoOverlayEXTX-createFlags-parameter#
--     @createFlags@ /must/ be a valid combination of
--     <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrOverlaySessionCreateFlagBitsEXTX XrOverlaySessionCreateFlagBitsEXTX>
--     values
--
-- -   #VUID-XrSessionCreateInfoOverlayEXTX-createFlags-requiredbitmask#
--     @createFlags@ /must/ not be @0@
--
-- = See Also
--
-- 'OverlaySessionCreateFlagsEXTX',
-- 'OpenXR.Core10.Enums.StructureType.StructureType'
data SessionCreateInfoOverlayEXTX = SessionCreateInfoOverlayEXTX
  { -- | @createFlags@ is @0@ or one or more
    -- <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrOverlaySessionCreateFlagBitsEXTX XrOverlaySessionCreateFlagBitsEXTX>
    -- which indicate various characteristics desired for the overlay session.
    SessionCreateInfoOverlayEXTX -> OverlaySessionCreateFlagsEXTX
createFlags :: OverlaySessionCreateFlagsEXTX
  , -- | @sessionLayersPlacement@ is a value indicating the desired placement of
    -- the session’s composition layers in terms of other sessions.
    SessionCreateInfoOverlayEXTX -> Word32
sessionLayersPlacement :: Word32
  }
  deriving (Typeable, SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> Bool
(SessionCreateInfoOverlayEXTX
 -> SessionCreateInfoOverlayEXTX -> Bool)
-> (SessionCreateInfoOverlayEXTX
    -> SessionCreateInfoOverlayEXTX -> Bool)
-> Eq SessionCreateInfoOverlayEXTX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> Bool
$c/= :: SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> Bool
== :: SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> Bool
$c== :: SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (SessionCreateInfoOverlayEXTX)
#endif
deriving instance Show SessionCreateInfoOverlayEXTX

instance ToCStruct SessionCreateInfoOverlayEXTX where
  withCStruct :: SessionCreateInfoOverlayEXTX
-> (Ptr SessionCreateInfoOverlayEXTX -> IO b) -> IO b
withCStruct x :: SessionCreateInfoOverlayEXTX
x f :: Ptr SessionCreateInfoOverlayEXTX -> IO b
f = Int -> Int -> (Ptr SessionCreateInfoOverlayEXTX -> IO b) -> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr SessionCreateInfoOverlayEXTX -> IO b) -> IO b)
-> (Ptr SessionCreateInfoOverlayEXTX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr SessionCreateInfoOverlayEXTX
p -> Ptr SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SessionCreateInfoOverlayEXTX
p SessionCreateInfoOverlayEXTX
x (Ptr SessionCreateInfoOverlayEXTX -> IO b
f Ptr SessionCreateInfoOverlayEXTX
p)
  pokeCStruct :: Ptr SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> IO b -> IO b
pokeCStruct p :: Ptr SessionCreateInfoOverlayEXTX
p SessionCreateInfoOverlayEXTX{..} f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX
-> Int -> Ptr OverlaySessionCreateFlagsEXTX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr OverlaySessionCreateFlagsEXTX)) (OverlaySessionCreateFlagsEXTX
createFlags)
    Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Word32)) (Word32
sessionLayersPlacement)
    IO b
f
  cStructSize :: Int
cStructSize = 24
  cStructAlignment :: Int
cStructAlignment = 8
  pokeZeroCStruct :: Ptr SessionCreateInfoOverlayEXTX -> IO b -> IO b
pokeZeroCStruct p :: Ptr SessionCreateInfoOverlayEXTX
p f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX
-> Int -> Ptr OverlaySessionCreateFlagsEXTX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr OverlaySessionCreateFlagsEXTX)) (OverlaySessionCreateFlagsEXTX
forall a. Zero a => a
zero)
    Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
    IO b
f

instance FromCStruct SessionCreateInfoOverlayEXTX where
  peekCStruct :: Ptr SessionCreateInfoOverlayEXTX -> IO SessionCreateInfoOverlayEXTX
peekCStruct p :: Ptr SessionCreateInfoOverlayEXTX
p = do
    OverlaySessionCreateFlagsEXTX
createFlags <- Ptr OverlaySessionCreateFlagsEXTX
-> IO OverlaySessionCreateFlagsEXTX
forall a. Storable a => Ptr a -> IO a
peek @OverlaySessionCreateFlagsEXTX ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX
-> Int -> Ptr OverlaySessionCreateFlagsEXTX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr OverlaySessionCreateFlagsEXTX))
    Word32
sessionLayersPlacement <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr SessionCreateInfoOverlayEXTX
p Ptr SessionCreateInfoOverlayEXTX -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Word32))
    SessionCreateInfoOverlayEXTX -> IO SessionCreateInfoOverlayEXTX
forall (f :: * -> *) a. Applicative f => a -> f a
pure (SessionCreateInfoOverlayEXTX -> IO SessionCreateInfoOverlayEXTX)
-> SessionCreateInfoOverlayEXTX -> IO SessionCreateInfoOverlayEXTX
forall a b. (a -> b) -> a -> b
$ OverlaySessionCreateFlagsEXTX
-> Word32 -> SessionCreateInfoOverlayEXTX
SessionCreateInfoOverlayEXTX
             OverlaySessionCreateFlagsEXTX
createFlags Word32
sessionLayersPlacement

instance Storable SessionCreateInfoOverlayEXTX where
  sizeOf :: SessionCreateInfoOverlayEXTX -> Int
sizeOf ~SessionCreateInfoOverlayEXTX
_ = 24
  alignment :: SessionCreateInfoOverlayEXTX -> Int
alignment ~SessionCreateInfoOverlayEXTX
_ = 8
  peek :: Ptr SessionCreateInfoOverlayEXTX -> IO SessionCreateInfoOverlayEXTX
peek = Ptr SessionCreateInfoOverlayEXTX -> IO SessionCreateInfoOverlayEXTX
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
  poke :: Ptr SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> IO ()
poke ptr :: Ptr SessionCreateInfoOverlayEXTX
ptr poked :: SessionCreateInfoOverlayEXTX
poked = Ptr SessionCreateInfoOverlayEXTX
-> SessionCreateInfoOverlayEXTX -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr SessionCreateInfoOverlayEXTX
ptr SessionCreateInfoOverlayEXTX
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())

instance Zero SessionCreateInfoOverlayEXTX where
  zero :: SessionCreateInfoOverlayEXTX
zero = OverlaySessionCreateFlagsEXTX
-> Word32 -> SessionCreateInfoOverlayEXTX
SessionCreateInfoOverlayEXTX
           OverlaySessionCreateFlagsEXTX
forall a. Zero a => a
zero
           Word32
forall a. Zero a => a
zero


-- | XrEventDataMainSessionVisibilityChangedEXTX - Event representing main
-- session visibility change
--
-- = Members
--
-- Receiving the 'EventDataMainSessionVisibilityChangedEXTX' event
-- structure indicates that the main session has gained or lost visibility.
-- This can occur in many cases, one typical example is when a user
-- switches from one OpenXR application to another. See
-- 'EventDataMainSessionVisibilityChangedEXTX' for more information on the
-- standard behavior. This structure contains additional information on the
-- main session including @flags@ which indicate additional state
-- information of the main session. Currently, the only flag value supplied
-- is
-- @XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX@
-- which indicates if the main session has enabled the
-- <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XR_KHR_composition_layer_depth>
-- extension.
--
-- == Member Descriptions
--
-- -   @type@ is the 'OpenXR.Core10.Enums.StructureType.StructureType' of
--     this structure.
--
-- -   @next@ is @NULL@ or a pointer to the next structure in a structure
--     chain. No such structures are defined in core OpenXR or this
--     extension.
--
-- -   @visible@ is an
--     <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrBool32 >
--     which indicates if @session@ is now visible or is not.
--
-- -   @flags@ is 0 or one or more
--     <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrOverlayMainSessionFlagBitsEXTX XrOverlayMainSessionFlagBitsEXTX>
--     which indicates various state information for the main session.
--
-- == Valid Usage (Implicit)
--
-- -   #VUID-XrEventDataMainSessionVisibilityChangedEXTX-extension-notenabled#
--     The @@ extension /must/ be enabled prior to using
--     'EventDataMainSessionVisibilityChangedEXTX'
--
-- -   #VUID-XrEventDataMainSessionVisibilityChangedEXTX-type-type# @type@
--     /must/ be
--     'OpenXR.Core10.Enums.StructureType.TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX'
--
-- -   #VUID-XrEventDataMainSessionVisibilityChangedEXTX-next-next# @next@
--     /must/ be @NULL@ or a valid pointer to the
--     <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#valid-usage-for-structure-pointer-chains next structure in a structure chain>
--
-- -   #VUID-XrEventDataMainSessionVisibilityChangedEXTX-flags-parameter#
--     @flags@ /must/ be a valid combination of
--     <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrOverlayMainSessionFlagBitsEXTX XrOverlayMainSessionFlagBitsEXTX>
--     values
--
-- -   #VUID-XrEventDataMainSessionVisibilityChangedEXTX-flags-requiredbitmask#
--     @flags@ /must/ not be @0@
--
-- = See Also
--
-- <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrBool32 >,
-- 'OverlayMainSessionFlagsEXTX',
-- 'OpenXR.Core10.Enums.StructureType.StructureType'
data EventDataMainSessionVisibilityChangedEXTX = EventDataMainSessionVisibilityChangedEXTX
  { -- No documentation found for Nested "XrEventDataMainSessionVisibilityChangedEXTX" "visible"
    EventDataMainSessionVisibilityChangedEXTX -> Bool
visible :: Bool
  , -- No documentation found for Nested "XrEventDataMainSessionVisibilityChangedEXTX" "flags"
    EventDataMainSessionVisibilityChangedEXTX
-> OverlayMainSessionFlagsEXTX
flags :: OverlayMainSessionFlagsEXTX
  }
  deriving (Typeable, EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> Bool
(EventDataMainSessionVisibilityChangedEXTX
 -> EventDataMainSessionVisibilityChangedEXTX -> Bool)
-> (EventDataMainSessionVisibilityChangedEXTX
    -> EventDataMainSessionVisibilityChangedEXTX -> Bool)
-> Eq EventDataMainSessionVisibilityChangedEXTX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> Bool
$c/= :: EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> Bool
== :: EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> Bool
$c== :: EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (EventDataMainSessionVisibilityChangedEXTX)
#endif
deriving instance Show EventDataMainSessionVisibilityChangedEXTX

instance IsEventData EventDataMainSessionVisibilityChangedEXTX where
  toEventDataBaseHeader :: EventDataMainSessionVisibilityChangedEXTX -> EventDataBaseHeader
toEventDataBaseHeader EventDataMainSessionVisibilityChangedEXTX{} = $WEventDataBaseHeader :: StructureType -> EventDataBaseHeader
EventDataBaseHeader{$sel:type':EventDataBaseHeader :: StructureType
type' = StructureType
TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX}

instance ToCStruct EventDataMainSessionVisibilityChangedEXTX where
  withCStruct :: EventDataMainSessionVisibilityChangedEXTX
-> (Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b) -> IO b
withCStruct x :: EventDataMainSessionVisibilityChangedEXTX
x f :: Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b
f = Int
-> Int
-> (Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b) -> IO b)
-> (Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr EventDataMainSessionVisibilityChangedEXTX
p -> Ptr EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr EventDataMainSessionVisibilityChangedEXTX
p EventDataMainSessionVisibilityChangedEXTX
x (Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b
f Ptr EventDataMainSessionVisibilityChangedEXTX
p)
  pokeCStruct :: Ptr EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> IO b -> IO b
pokeCStruct p :: Ptr EventDataMainSessionVisibilityChangedEXTX
p EventDataMainSessionVisibilityChangedEXTX{..} f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> 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 EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
visible))
    Ptr OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> Int -> Ptr OverlayMainSessionFlagsEXTX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr OverlayMainSessionFlagsEXTX)) (OverlayMainSessionFlagsEXTX
flags)
    IO b
f
  cStructSize :: Int
cStructSize = 24
  cStructAlignment :: Int
cStructAlignment = 8
  pokeZeroCStruct :: Ptr EventDataMainSessionVisibilityChangedEXTX -> IO b -> IO b
pokeZeroCStruct p :: Ptr EventDataMainSessionVisibilityChangedEXTX
p f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> 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 EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX -> 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 OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> Int -> Ptr OverlayMainSessionFlagsEXTX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr OverlayMainSessionFlagsEXTX)) (OverlayMainSessionFlagsEXTX
forall a. Zero a => a
zero)
    IO b
f

instance FromCStruct EventDataMainSessionVisibilityChangedEXTX where
  peekCStruct :: Ptr EventDataMainSessionVisibilityChangedEXTX
-> IO EventDataMainSessionVisibilityChangedEXTX
peekCStruct p :: Ptr EventDataMainSessionVisibilityChangedEXTX
p = do
    Bool32
visible <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
    OverlayMainSessionFlagsEXTX
flags <- Ptr OverlayMainSessionFlagsEXTX -> IO OverlayMainSessionFlagsEXTX
forall a. Storable a => Ptr a -> IO a
peek @OverlayMainSessionFlagsEXTX ((Ptr EventDataMainSessionVisibilityChangedEXTX
p Ptr EventDataMainSessionVisibilityChangedEXTX
-> Int -> Ptr OverlayMainSessionFlagsEXTX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr OverlayMainSessionFlagsEXTX))
    EventDataMainSessionVisibilityChangedEXTX
-> IO EventDataMainSessionVisibilityChangedEXTX
forall (f :: * -> *) a. Applicative f => a -> f a
pure (EventDataMainSessionVisibilityChangedEXTX
 -> IO EventDataMainSessionVisibilityChangedEXTX)
-> EventDataMainSessionVisibilityChangedEXTX
-> IO EventDataMainSessionVisibilityChangedEXTX
forall a b. (a -> b) -> a -> b
$ Bool
-> OverlayMainSessionFlagsEXTX
-> EventDataMainSessionVisibilityChangedEXTX
EventDataMainSessionVisibilityChangedEXTX
             (Bool32 -> Bool
bool32ToBool Bool32
visible) OverlayMainSessionFlagsEXTX
flags

instance Storable EventDataMainSessionVisibilityChangedEXTX where
  sizeOf :: EventDataMainSessionVisibilityChangedEXTX -> Int
sizeOf ~EventDataMainSessionVisibilityChangedEXTX
_ = 24
  alignment :: EventDataMainSessionVisibilityChangedEXTX -> Int
alignment ~EventDataMainSessionVisibilityChangedEXTX
_ = 8
  peek :: Ptr EventDataMainSessionVisibilityChangedEXTX
-> IO EventDataMainSessionVisibilityChangedEXTX
peek = Ptr EventDataMainSessionVisibilityChangedEXTX
-> IO EventDataMainSessionVisibilityChangedEXTX
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
  poke :: Ptr EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> IO ()
poke ptr :: Ptr EventDataMainSessionVisibilityChangedEXTX
ptr poked :: EventDataMainSessionVisibilityChangedEXTX
poked = Ptr EventDataMainSessionVisibilityChangedEXTX
-> EventDataMainSessionVisibilityChangedEXTX -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr EventDataMainSessionVisibilityChangedEXTX
ptr EventDataMainSessionVisibilityChangedEXTX
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())

instance Zero EventDataMainSessionVisibilityChangedEXTX where
  zero :: EventDataMainSessionVisibilityChangedEXTX
zero = Bool
-> OverlayMainSessionFlagsEXTX
-> EventDataMainSessionVisibilityChangedEXTX
EventDataMainSessionVisibilityChangedEXTX
           Bool
forall a. Zero a => a
zero
           OverlayMainSessionFlagsEXTX
forall a. Zero a => a
zero


-- | XrOverlayMainSessionFlagsEXTX - XrOverlayMainSessionFlagsEXTX
--
-- = See Also
--
-- 'EventDataMainSessionVisibilityChangedEXTX'
newtype OverlayMainSessionFlagsEXTX = OverlayMainSessionFlagsEXTX Flags64
  deriving newtype (OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
(OverlayMainSessionFlagsEXTX
 -> OverlayMainSessionFlagsEXTX -> Bool)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> Bool)
-> Eq OverlayMainSessionFlagsEXTX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
$c/= :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
== :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
$c== :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
Eq, Eq OverlayMainSessionFlagsEXTX
Eq OverlayMainSessionFlagsEXTX =>
(OverlayMainSessionFlagsEXTX
 -> OverlayMainSessionFlagsEXTX -> Ordering)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> Bool)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> Bool)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> Bool)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> Bool)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX)
-> Ord OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> Ordering
OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$cmin :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
max :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$cmax :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
>= :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
$c>= :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
> :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
$c> :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
<= :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
$c<= :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
< :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
$c< :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX -> Bool
compare :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> Ordering
$ccompare :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> Ordering
$cp1Ord :: Eq OverlayMainSessionFlagsEXTX
Ord, Ptr b -> Int -> IO OverlayMainSessionFlagsEXTX
Ptr b -> Int -> OverlayMainSessionFlagsEXTX -> IO ()
Ptr OverlayMainSessionFlagsEXTX -> IO OverlayMainSessionFlagsEXTX
Ptr OverlayMainSessionFlagsEXTX
-> Int -> IO OverlayMainSessionFlagsEXTX
Ptr OverlayMainSessionFlagsEXTX
-> Int -> OverlayMainSessionFlagsEXTX -> IO ()
Ptr OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> IO ()
OverlayMainSessionFlagsEXTX -> Int
(OverlayMainSessionFlagsEXTX -> Int)
-> (OverlayMainSessionFlagsEXTX -> Int)
-> (Ptr OverlayMainSessionFlagsEXTX
    -> Int -> IO OverlayMainSessionFlagsEXTX)
-> (Ptr OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX -> IO ())
-> (forall b. Ptr b -> Int -> IO OverlayMainSessionFlagsEXTX)
-> (forall b. Ptr b -> Int -> OverlayMainSessionFlagsEXTX -> IO ())
-> (Ptr OverlayMainSessionFlagsEXTX
    -> IO OverlayMainSessionFlagsEXTX)
-> (Ptr OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> IO ())
-> Storable OverlayMainSessionFlagsEXTX
forall b. Ptr b -> Int -> IO OverlayMainSessionFlagsEXTX
forall b. Ptr b -> Int -> OverlayMainSessionFlagsEXTX -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> IO ()
$cpoke :: Ptr OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> IO ()
peek :: Ptr OverlayMainSessionFlagsEXTX -> IO OverlayMainSessionFlagsEXTX
$cpeek :: Ptr OverlayMainSessionFlagsEXTX -> IO OverlayMainSessionFlagsEXTX
pokeByteOff :: Ptr b -> Int -> OverlayMainSessionFlagsEXTX -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> OverlayMainSessionFlagsEXTX -> IO ()
peekByteOff :: Ptr b -> Int -> IO OverlayMainSessionFlagsEXTX
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OverlayMainSessionFlagsEXTX
pokeElemOff :: Ptr OverlayMainSessionFlagsEXTX
-> Int -> OverlayMainSessionFlagsEXTX -> IO ()
$cpokeElemOff :: Ptr OverlayMainSessionFlagsEXTX
-> Int -> OverlayMainSessionFlagsEXTX -> IO ()
peekElemOff :: Ptr OverlayMainSessionFlagsEXTX
-> Int -> IO OverlayMainSessionFlagsEXTX
$cpeekElemOff :: Ptr OverlayMainSessionFlagsEXTX
-> Int -> IO OverlayMainSessionFlagsEXTX
alignment :: OverlayMainSessionFlagsEXTX -> Int
$calignment :: OverlayMainSessionFlagsEXTX -> Int
sizeOf :: OverlayMainSessionFlagsEXTX -> Int
$csizeOf :: OverlayMainSessionFlagsEXTX -> Int
Storable, OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX -> Zero OverlayMainSessionFlagsEXTX
forall a. a -> Zero a
zero :: OverlayMainSessionFlagsEXTX
$czero :: OverlayMainSessionFlagsEXTX
Zero, Eq OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX
Eq OverlayMainSessionFlagsEXTX =>
(OverlayMainSessionFlagsEXTX
 -> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> OverlayMainSessionFlagsEXTX
-> (Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX -> Int -> Bool)
-> (OverlayMainSessionFlagsEXTX -> Maybe Int)
-> (OverlayMainSessionFlagsEXTX -> Int)
-> (OverlayMainSessionFlagsEXTX -> Bool)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX
    -> Int -> OverlayMainSessionFlagsEXTX)
-> (OverlayMainSessionFlagsEXTX -> Int)
-> Bits OverlayMainSessionFlagsEXTX
Int -> OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX -> Bool
OverlayMainSessionFlagsEXTX -> Int
OverlayMainSessionFlagsEXTX -> Maybe Int
OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX -> Int -> Bool
OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: OverlayMainSessionFlagsEXTX -> Int
$cpopCount :: OverlayMainSessionFlagsEXTX -> Int
rotateR :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$crotateR :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
rotateL :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$crotateL :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
unsafeShiftR :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$cunsafeShiftR :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
shiftR :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$cshiftR :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
unsafeShiftL :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$cunsafeShiftL :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
shiftL :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$cshiftL :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
isSigned :: OverlayMainSessionFlagsEXTX -> Bool
$cisSigned :: OverlayMainSessionFlagsEXTX -> Bool
bitSize :: OverlayMainSessionFlagsEXTX -> Int
$cbitSize :: OverlayMainSessionFlagsEXTX -> Int
bitSizeMaybe :: OverlayMainSessionFlagsEXTX -> Maybe Int
$cbitSizeMaybe :: OverlayMainSessionFlagsEXTX -> Maybe Int
testBit :: OverlayMainSessionFlagsEXTX -> Int -> Bool
$ctestBit :: OverlayMainSessionFlagsEXTX -> Int -> Bool
complementBit :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$ccomplementBit :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
clearBit :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$cclearBit :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
setBit :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$csetBit :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
bit :: Int -> OverlayMainSessionFlagsEXTX
$cbit :: Int -> OverlayMainSessionFlagsEXTX
zeroBits :: OverlayMainSessionFlagsEXTX
$czeroBits :: OverlayMainSessionFlagsEXTX
rotate :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$crotate :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
shift :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
$cshift :: OverlayMainSessionFlagsEXTX -> Int -> OverlayMainSessionFlagsEXTX
complement :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$ccomplement :: OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
xor :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$cxor :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
.|. :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$c.|. :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
.&. :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$c.&. :: OverlayMainSessionFlagsEXTX
-> OverlayMainSessionFlagsEXTX -> OverlayMainSessionFlagsEXTX
$cp1Bits :: Eq OverlayMainSessionFlagsEXTX
Bits, Bits OverlayMainSessionFlagsEXTX
Bits OverlayMainSessionFlagsEXTX =>
(OverlayMainSessionFlagsEXTX -> Int)
-> (OverlayMainSessionFlagsEXTX -> Int)
-> (OverlayMainSessionFlagsEXTX -> Int)
-> FiniteBits OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: OverlayMainSessionFlagsEXTX -> Int
$ccountTrailingZeros :: OverlayMainSessionFlagsEXTX -> Int
countLeadingZeros :: OverlayMainSessionFlagsEXTX -> Int
$ccountLeadingZeros :: OverlayMainSessionFlagsEXTX -> Int
finiteBitSize :: OverlayMainSessionFlagsEXTX -> Int
$cfiniteBitSize :: OverlayMainSessionFlagsEXTX -> Int
$cp1FiniteBits :: Bits OverlayMainSessionFlagsEXTX
FiniteBits)



conNameOverlayMainSessionFlagsEXTX :: String
conNameOverlayMainSessionFlagsEXTX :: String
conNameOverlayMainSessionFlagsEXTX = "OverlayMainSessionFlagsEXTX"

enumPrefixOverlayMainSessionFlagsEXTX :: String
enumPrefixOverlayMainSessionFlagsEXTX :: String
enumPrefixOverlayMainSessionFlagsEXTX = ""

showTableOverlayMainSessionFlagsEXTX :: [(OverlayMainSessionFlagsEXTX, String)]
showTableOverlayMainSessionFlagsEXTX :: [(OverlayMainSessionFlagsEXTX, String)]
showTableOverlayMainSessionFlagsEXTX = []

instance Show OverlayMainSessionFlagsEXTX where
  showsPrec :: Int -> OverlayMainSessionFlagsEXTX -> ShowS
showsPrec = String
-> [(OverlayMainSessionFlagsEXTX, String)]
-> String
-> (OverlayMainSessionFlagsEXTX -> Flags64)
-> (Flags64 -> ShowS)
-> Int
-> OverlayMainSessionFlagsEXTX
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixOverlayMainSessionFlagsEXTX
                            [(OverlayMainSessionFlagsEXTX, String)]
showTableOverlayMainSessionFlagsEXTX
                            String
conNameOverlayMainSessionFlagsEXTX
                            (\(OverlayMainSessionFlagsEXTX x :: Flags64
x) -> Flags64
x)
                            (\x :: Flags64
x -> String -> ShowS
showString "0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags64 -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags64
x)

instance Read OverlayMainSessionFlagsEXTX where
  readPrec :: ReadPrec OverlayMainSessionFlagsEXTX
readPrec = String
-> [(OverlayMainSessionFlagsEXTX, String)]
-> String
-> (Flags64 -> OverlayMainSessionFlagsEXTX)
-> ReadPrec OverlayMainSessionFlagsEXTX
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixOverlayMainSessionFlagsEXTX
                          [(OverlayMainSessionFlagsEXTX, String)]
showTableOverlayMainSessionFlagsEXTX
                          String
conNameOverlayMainSessionFlagsEXTX
                          Flags64 -> OverlayMainSessionFlagsEXTX
OverlayMainSessionFlagsEXTX


-- | XrOverlaySessionCreateFlagsEXTX - XrOverlaySessionCreateFlagsEXTX
--
-- = See Also
--
-- 'SessionCreateInfoOverlayEXTX'
newtype OverlaySessionCreateFlagsEXTX = OverlaySessionCreateFlagsEXTX Flags64
  deriving newtype (OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
(OverlaySessionCreateFlagsEXTX
 -> OverlaySessionCreateFlagsEXTX -> Bool)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> Bool)
-> Eq OverlaySessionCreateFlagsEXTX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
$c/= :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
== :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
$c== :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
Eq, Eq OverlaySessionCreateFlagsEXTX
Eq OverlaySessionCreateFlagsEXTX =>
(OverlaySessionCreateFlagsEXTX
 -> OverlaySessionCreateFlagsEXTX -> Ordering)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> Bool)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> Bool)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> Bool)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> Bool)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX)
-> Ord OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Ordering
OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$cmin :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
max :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$cmax :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
>= :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
$c>= :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
> :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
$c> :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
<= :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
$c<= :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
< :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
$c< :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Bool
compare :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Ordering
$ccompare :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> Ordering
$cp1Ord :: Eq OverlaySessionCreateFlagsEXTX
Ord, Ptr b -> Int -> IO OverlaySessionCreateFlagsEXTX
Ptr b -> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
Ptr OverlaySessionCreateFlagsEXTX
-> IO OverlaySessionCreateFlagsEXTX
Ptr OverlaySessionCreateFlagsEXTX
-> Int -> IO OverlaySessionCreateFlagsEXTX
Ptr OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
Ptr OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> IO ()
OverlaySessionCreateFlagsEXTX -> Int
(OverlaySessionCreateFlagsEXTX -> Int)
-> (OverlaySessionCreateFlagsEXTX -> Int)
-> (Ptr OverlaySessionCreateFlagsEXTX
    -> Int -> IO OverlaySessionCreateFlagsEXTX)
-> (Ptr OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX -> IO ())
-> (forall b. Ptr b -> Int -> IO OverlaySessionCreateFlagsEXTX)
-> (forall b.
    Ptr b -> Int -> OverlaySessionCreateFlagsEXTX -> IO ())
-> (Ptr OverlaySessionCreateFlagsEXTX
    -> IO OverlaySessionCreateFlagsEXTX)
-> (Ptr OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> IO ())
-> Storable OverlaySessionCreateFlagsEXTX
forall b. Ptr b -> Int -> IO OverlaySessionCreateFlagsEXTX
forall b. Ptr b -> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> IO ()
$cpoke :: Ptr OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> IO ()
peek :: Ptr OverlaySessionCreateFlagsEXTX
-> IO OverlaySessionCreateFlagsEXTX
$cpeek :: Ptr OverlaySessionCreateFlagsEXTX
-> IO OverlaySessionCreateFlagsEXTX
pokeByteOff :: Ptr b -> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
peekByteOff :: Ptr b -> Int -> IO OverlaySessionCreateFlagsEXTX
$cpeekByteOff :: forall b. Ptr b -> Int -> IO OverlaySessionCreateFlagsEXTX
pokeElemOff :: Ptr OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
$cpokeElemOff :: Ptr OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX -> IO ()
peekElemOff :: Ptr OverlaySessionCreateFlagsEXTX
-> Int -> IO OverlaySessionCreateFlagsEXTX
$cpeekElemOff :: Ptr OverlaySessionCreateFlagsEXTX
-> Int -> IO OverlaySessionCreateFlagsEXTX
alignment :: OverlaySessionCreateFlagsEXTX -> Int
$calignment :: OverlaySessionCreateFlagsEXTX -> Int
sizeOf :: OverlaySessionCreateFlagsEXTX -> Int
$csizeOf :: OverlaySessionCreateFlagsEXTX -> Int
Storable, OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX -> Zero OverlaySessionCreateFlagsEXTX
forall a. a -> Zero a
zero :: OverlaySessionCreateFlagsEXTX
$czero :: OverlaySessionCreateFlagsEXTX
Zero, Eq OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX
Eq OverlaySessionCreateFlagsEXTX =>
(OverlaySessionCreateFlagsEXTX
 -> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> OverlaySessionCreateFlagsEXTX
-> (Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX -> Int -> Bool)
-> (OverlaySessionCreateFlagsEXTX -> Maybe Int)
-> (OverlaySessionCreateFlagsEXTX -> Int)
-> (OverlaySessionCreateFlagsEXTX -> Bool)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX
    -> Int -> OverlaySessionCreateFlagsEXTX)
-> (OverlaySessionCreateFlagsEXTX -> Int)
-> Bits OverlaySessionCreateFlagsEXTX
Int -> OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX -> Bool
OverlaySessionCreateFlagsEXTX -> Int
OverlaySessionCreateFlagsEXTX -> Maybe Int
OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX -> Int -> Bool
OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: OverlaySessionCreateFlagsEXTX -> Int
$cpopCount :: OverlaySessionCreateFlagsEXTX -> Int
rotateR :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$crotateR :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
rotateL :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$crotateL :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
unsafeShiftR :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$cunsafeShiftR :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
shiftR :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$cshiftR :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
unsafeShiftL :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$cunsafeShiftL :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
shiftL :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$cshiftL :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
isSigned :: OverlaySessionCreateFlagsEXTX -> Bool
$cisSigned :: OverlaySessionCreateFlagsEXTX -> Bool
bitSize :: OverlaySessionCreateFlagsEXTX -> Int
$cbitSize :: OverlaySessionCreateFlagsEXTX -> Int
bitSizeMaybe :: OverlaySessionCreateFlagsEXTX -> Maybe Int
$cbitSizeMaybe :: OverlaySessionCreateFlagsEXTX -> Maybe Int
testBit :: OverlaySessionCreateFlagsEXTX -> Int -> Bool
$ctestBit :: OverlaySessionCreateFlagsEXTX -> Int -> Bool
complementBit :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$ccomplementBit :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
clearBit :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$cclearBit :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
setBit :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$csetBit :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
bit :: Int -> OverlaySessionCreateFlagsEXTX
$cbit :: Int -> OverlaySessionCreateFlagsEXTX
zeroBits :: OverlaySessionCreateFlagsEXTX
$czeroBits :: OverlaySessionCreateFlagsEXTX
rotate :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$crotate :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
shift :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
$cshift :: OverlaySessionCreateFlagsEXTX
-> Int -> OverlaySessionCreateFlagsEXTX
complement :: OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$ccomplement :: OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
xor :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$cxor :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
.|. :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$c.|. :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
.&. :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$c.&. :: OverlaySessionCreateFlagsEXTX
-> OverlaySessionCreateFlagsEXTX -> OverlaySessionCreateFlagsEXTX
$cp1Bits :: Eq OverlaySessionCreateFlagsEXTX
Bits, Bits OverlaySessionCreateFlagsEXTX
Bits OverlaySessionCreateFlagsEXTX =>
(OverlaySessionCreateFlagsEXTX -> Int)
-> (OverlaySessionCreateFlagsEXTX -> Int)
-> (OverlaySessionCreateFlagsEXTX -> Int)
-> FiniteBits OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: OverlaySessionCreateFlagsEXTX -> Int
$ccountTrailingZeros :: OverlaySessionCreateFlagsEXTX -> Int
countLeadingZeros :: OverlaySessionCreateFlagsEXTX -> Int
$ccountLeadingZeros :: OverlaySessionCreateFlagsEXTX -> Int
finiteBitSize :: OverlaySessionCreateFlagsEXTX -> Int
$cfiniteBitSize :: OverlaySessionCreateFlagsEXTX -> Int
$cp1FiniteBits :: Bits OverlaySessionCreateFlagsEXTX
FiniteBits)



conNameOverlaySessionCreateFlagsEXTX :: String
conNameOverlaySessionCreateFlagsEXTX :: String
conNameOverlaySessionCreateFlagsEXTX = "OverlaySessionCreateFlagsEXTX"

enumPrefixOverlaySessionCreateFlagsEXTX :: String
enumPrefixOverlaySessionCreateFlagsEXTX :: String
enumPrefixOverlaySessionCreateFlagsEXTX = ""

showTableOverlaySessionCreateFlagsEXTX :: [(OverlaySessionCreateFlagsEXTX, String)]
showTableOverlaySessionCreateFlagsEXTX :: [(OverlaySessionCreateFlagsEXTX, String)]
showTableOverlaySessionCreateFlagsEXTX = []

instance Show OverlaySessionCreateFlagsEXTX where
  showsPrec :: Int -> OverlaySessionCreateFlagsEXTX -> ShowS
showsPrec = String
-> [(OverlaySessionCreateFlagsEXTX, String)]
-> String
-> (OverlaySessionCreateFlagsEXTX -> Flags64)
-> (Flags64 -> ShowS)
-> Int
-> OverlaySessionCreateFlagsEXTX
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixOverlaySessionCreateFlagsEXTX
                            [(OverlaySessionCreateFlagsEXTX, String)]
showTableOverlaySessionCreateFlagsEXTX
                            String
conNameOverlaySessionCreateFlagsEXTX
                            (\(OverlaySessionCreateFlagsEXTX x :: Flags64
x) -> Flags64
x)
                            (\x :: Flags64
x -> String -> ShowS
showString "0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags64 -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags64
x)

instance Read OverlaySessionCreateFlagsEXTX where
  readPrec :: ReadPrec OverlaySessionCreateFlagsEXTX
readPrec = String
-> [(OverlaySessionCreateFlagsEXTX, String)]
-> String
-> (Flags64 -> OverlaySessionCreateFlagsEXTX)
-> ReadPrec OverlaySessionCreateFlagsEXTX
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixOverlaySessionCreateFlagsEXTX
                          [(OverlaySessionCreateFlagsEXTX, String)]
showTableOverlaySessionCreateFlagsEXTX
                          String
conNameOverlaySessionCreateFlagsEXTX
                          Flags64 -> OverlaySessionCreateFlagsEXTX
OverlaySessionCreateFlagsEXTX


type EXTX_overlay_SPEC_VERSION = 4

-- No documentation found for TopLevel "XR_EXTX_overlay_SPEC_VERSION"
pattern EXTX_overlay_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXTX_overlay_SPEC_VERSION :: a
$mEXTX_overlay_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
EXTX_overlay_SPEC_VERSION = 4


type EXTX_OVERLAY_EXTENSION_NAME = "XR_EXTX_overlay"

-- No documentation found for TopLevel "XR_EXTX_OVERLAY_EXTENSION_NAME"
pattern EXTX_OVERLAY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXTX_OVERLAY_EXTENSION_NAME :: a
$mEXTX_OVERLAY_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXTX_OVERLAY_EXTENSION_NAME = "XR_EXTX_overlay"