{-# language CPP #-}
-- No documentation found for Chapter "EyeVisibility"
module OpenXR.Core10.Enums.EyeVisibility  (EyeVisibility( EYE_VISIBILITY_BOTH
                                                        , EYE_VISIBILITY_LEFT
                                                        , EYE_VISIBILITY_RIGHT
                                                        , ..
                                                        )) where

import OpenXR.Internal.Utils (enumReadPrec)
import OpenXR.Internal.Utils (enumShowsPrec)
import GHC.Show (showsPrec)
import OpenXR.Zero (Zero)
import Foreign.Storable (Storable)
import Data.Int (Int32)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))

-- | XrEyeVisibility - Eye visibility selector
--
-- == Enumerant Descriptions
--
-- = See Also
--
-- 'OpenXR.Extensions.XR_KHR_composition_layer_cube.CompositionLayerCubeKHR',
-- 'OpenXR.Extensions.XR_KHR_composition_layer_cylinder.CompositionLayerCylinderKHR',
-- 'OpenXR.Extensions.XR_KHR_composition_layer_equirect2.CompositionLayerEquirect2KHR',
-- 'OpenXR.Extensions.XR_KHR_composition_layer_equirect.CompositionLayerEquirectKHR',
-- 'OpenXR.Core10.OtherTypes.CompositionLayerQuad'
newtype EyeVisibility = EyeVisibility Int32
  deriving newtype (EyeVisibility -> EyeVisibility -> Bool
(EyeVisibility -> EyeVisibility -> Bool)
-> (EyeVisibility -> EyeVisibility -> Bool) -> Eq EyeVisibility
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EyeVisibility -> EyeVisibility -> Bool
$c/= :: EyeVisibility -> EyeVisibility -> Bool
== :: EyeVisibility -> EyeVisibility -> Bool
$c== :: EyeVisibility -> EyeVisibility -> Bool
Eq, Eq EyeVisibility
Eq EyeVisibility =>
(EyeVisibility -> EyeVisibility -> Ordering)
-> (EyeVisibility -> EyeVisibility -> Bool)
-> (EyeVisibility -> EyeVisibility -> Bool)
-> (EyeVisibility -> EyeVisibility -> Bool)
-> (EyeVisibility -> EyeVisibility -> Bool)
-> (EyeVisibility -> EyeVisibility -> EyeVisibility)
-> (EyeVisibility -> EyeVisibility -> EyeVisibility)
-> Ord EyeVisibility
EyeVisibility -> EyeVisibility -> Bool
EyeVisibility -> EyeVisibility -> Ordering
EyeVisibility -> EyeVisibility -> EyeVisibility
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 :: EyeVisibility -> EyeVisibility -> EyeVisibility
$cmin :: EyeVisibility -> EyeVisibility -> EyeVisibility
max :: EyeVisibility -> EyeVisibility -> EyeVisibility
$cmax :: EyeVisibility -> EyeVisibility -> EyeVisibility
>= :: EyeVisibility -> EyeVisibility -> Bool
$c>= :: EyeVisibility -> EyeVisibility -> Bool
> :: EyeVisibility -> EyeVisibility -> Bool
$c> :: EyeVisibility -> EyeVisibility -> Bool
<= :: EyeVisibility -> EyeVisibility -> Bool
$c<= :: EyeVisibility -> EyeVisibility -> Bool
< :: EyeVisibility -> EyeVisibility -> Bool
$c< :: EyeVisibility -> EyeVisibility -> Bool
compare :: EyeVisibility -> EyeVisibility -> Ordering
$ccompare :: EyeVisibility -> EyeVisibility -> Ordering
$cp1Ord :: Eq EyeVisibility
Ord, Ptr b -> Int -> IO EyeVisibility
Ptr b -> Int -> EyeVisibility -> IO ()
Ptr EyeVisibility -> IO EyeVisibility
Ptr EyeVisibility -> Int -> IO EyeVisibility
Ptr EyeVisibility -> Int -> EyeVisibility -> IO ()
Ptr EyeVisibility -> EyeVisibility -> IO ()
EyeVisibility -> Int
(EyeVisibility -> Int)
-> (EyeVisibility -> Int)
-> (Ptr EyeVisibility -> Int -> IO EyeVisibility)
-> (Ptr EyeVisibility -> Int -> EyeVisibility -> IO ())
-> (forall b. Ptr b -> Int -> IO EyeVisibility)
-> (forall b. Ptr b -> Int -> EyeVisibility -> IO ())
-> (Ptr EyeVisibility -> IO EyeVisibility)
-> (Ptr EyeVisibility -> EyeVisibility -> IO ())
-> Storable EyeVisibility
forall b. Ptr b -> Int -> IO EyeVisibility
forall b. Ptr b -> Int -> EyeVisibility -> 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 EyeVisibility -> EyeVisibility -> IO ()
$cpoke :: Ptr EyeVisibility -> EyeVisibility -> IO ()
peek :: Ptr EyeVisibility -> IO EyeVisibility
$cpeek :: Ptr EyeVisibility -> IO EyeVisibility
pokeByteOff :: Ptr b -> Int -> EyeVisibility -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> EyeVisibility -> IO ()
peekByteOff :: Ptr b -> Int -> IO EyeVisibility
$cpeekByteOff :: forall b. Ptr b -> Int -> IO EyeVisibility
pokeElemOff :: Ptr EyeVisibility -> Int -> EyeVisibility -> IO ()
$cpokeElemOff :: Ptr EyeVisibility -> Int -> EyeVisibility -> IO ()
peekElemOff :: Ptr EyeVisibility -> Int -> IO EyeVisibility
$cpeekElemOff :: Ptr EyeVisibility -> Int -> IO EyeVisibility
alignment :: EyeVisibility -> Int
$calignment :: EyeVisibility -> Int
sizeOf :: EyeVisibility -> Int
$csizeOf :: EyeVisibility -> Int
Storable, EyeVisibility
EyeVisibility -> Zero EyeVisibility
forall a. a -> Zero a
zero :: EyeVisibility
$czero :: EyeVisibility
Zero)

-- | 'EYE_VISIBILITY_BOTH' displays the layer to both eyes.
pattern $bEYE_VISIBILITY_BOTH :: EyeVisibility
$mEYE_VISIBILITY_BOTH :: forall r. EyeVisibility -> (Void# -> r) -> (Void# -> r) -> r
EYE_VISIBILITY_BOTH  = EyeVisibility 0
-- | 'EYE_VISIBILITY_LEFT' displays the layer to the viewer’s physical left
-- eye.
pattern $bEYE_VISIBILITY_LEFT :: EyeVisibility
$mEYE_VISIBILITY_LEFT :: forall r. EyeVisibility -> (Void# -> r) -> (Void# -> r) -> r
EYE_VISIBILITY_LEFT  = EyeVisibility 1
-- | 'EYE_VISIBILITY_RIGHT' displays the layer to the viewer’s physical right
-- eye.
pattern $bEYE_VISIBILITY_RIGHT :: EyeVisibility
$mEYE_VISIBILITY_RIGHT :: forall r. EyeVisibility -> (Void# -> r) -> (Void# -> r) -> r
EYE_VISIBILITY_RIGHT = EyeVisibility 2
{-# complete EYE_VISIBILITY_BOTH,
             EYE_VISIBILITY_LEFT,
             EYE_VISIBILITY_RIGHT :: EyeVisibility #-}

conNameEyeVisibility :: String
conNameEyeVisibility :: String
conNameEyeVisibility = "EyeVisibility"

enumPrefixEyeVisibility :: String
enumPrefixEyeVisibility :: String
enumPrefixEyeVisibility = "EYE_VISIBILITY_"

showTableEyeVisibility :: [(EyeVisibility, String)]
showTableEyeVisibility :: [(EyeVisibility, String)]
showTableEyeVisibility =
  [(EyeVisibility
EYE_VISIBILITY_BOTH, "BOTH"), (EyeVisibility
EYE_VISIBILITY_LEFT, "LEFT"), (EyeVisibility
EYE_VISIBILITY_RIGHT, "RIGHT")]

instance Show EyeVisibility where
  showsPrec :: Int -> EyeVisibility -> ShowS
showsPrec = String
-> [(EyeVisibility, String)]
-> String
-> (EyeVisibility -> Int32)
-> (Int32 -> ShowS)
-> Int
-> EyeVisibility
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixEyeVisibility
                            [(EyeVisibility, String)]
showTableEyeVisibility
                            String
conNameEyeVisibility
                            (\(EyeVisibility x :: Int32
x) -> Int32
x)
                            (Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec 11)

instance Read EyeVisibility where
  readPrec :: ReadPrec EyeVisibility
readPrec = String
-> [(EyeVisibility, String)]
-> String
-> (Int32 -> EyeVisibility)
-> ReadPrec EyeVisibility
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixEyeVisibility [(EyeVisibility, String)]
showTableEyeVisibility String
conNameEyeVisibility Int32 -> EyeVisibility
EyeVisibility