{-# language CPP #-}
-- No documentation found for Chapter "SwapchainUsageFlags"
module OpenXR.Core10.Enums.SwapchainUsageFlags  (SwapchainUsageFlags(..)) where

import OpenXR.Internal.Utils (enumReadPrec)
import OpenXR.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import OpenXR.Zero (Zero)
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import OpenXR.Core10.FundamentalTypes (Flags64)
-- | XrSwapchainUsageFlags - Swapchain usage flags
--
-- == Flag Descriptions
--
-- = See Also
--
-- 'OpenXR.Core10.Image.SwapchainCreateInfo',
-- 'OpenXR.Core10.Image.createSwapchain',
-- 'OpenXR.Core10.Image.enumerateSwapchainFormats'
newtype SwapchainUsageFlags = SwapchainUsageFlags Flags64
  deriving newtype (SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
(SwapchainUsageFlags -> SwapchainUsageFlags -> Bool)
-> (SwapchainUsageFlags -> SwapchainUsageFlags -> Bool)
-> Eq SwapchainUsageFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
$c/= :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
== :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
$c== :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
Eq, Eq SwapchainUsageFlags
Eq SwapchainUsageFlags =>
(SwapchainUsageFlags -> SwapchainUsageFlags -> Ordering)
-> (SwapchainUsageFlags -> SwapchainUsageFlags -> Bool)
-> (SwapchainUsageFlags -> SwapchainUsageFlags -> Bool)
-> (SwapchainUsageFlags -> SwapchainUsageFlags -> Bool)
-> (SwapchainUsageFlags -> SwapchainUsageFlags -> Bool)
-> (SwapchainUsageFlags
    -> SwapchainUsageFlags -> SwapchainUsageFlags)
-> (SwapchainUsageFlags
    -> SwapchainUsageFlags -> SwapchainUsageFlags)
-> Ord SwapchainUsageFlags
SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
SwapchainUsageFlags -> SwapchainUsageFlags -> Ordering
SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
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 :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
$cmin :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
max :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
$cmax :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
>= :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
$c>= :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
> :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
$c> :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
<= :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
$c<= :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
< :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
$c< :: SwapchainUsageFlags -> SwapchainUsageFlags -> Bool
compare :: SwapchainUsageFlags -> SwapchainUsageFlags -> Ordering
$ccompare :: SwapchainUsageFlags -> SwapchainUsageFlags -> Ordering
$cp1Ord :: Eq SwapchainUsageFlags
Ord, Ptr b -> Int -> IO SwapchainUsageFlags
Ptr b -> Int -> SwapchainUsageFlags -> IO ()
Ptr SwapchainUsageFlags -> IO SwapchainUsageFlags
Ptr SwapchainUsageFlags -> Int -> IO SwapchainUsageFlags
Ptr SwapchainUsageFlags -> Int -> SwapchainUsageFlags -> IO ()
Ptr SwapchainUsageFlags -> SwapchainUsageFlags -> IO ()
SwapchainUsageFlags -> Int
(SwapchainUsageFlags -> Int)
-> (SwapchainUsageFlags -> Int)
-> (Ptr SwapchainUsageFlags -> Int -> IO SwapchainUsageFlags)
-> (Ptr SwapchainUsageFlags -> Int -> SwapchainUsageFlags -> IO ())
-> (forall b. Ptr b -> Int -> IO SwapchainUsageFlags)
-> (forall b. Ptr b -> Int -> SwapchainUsageFlags -> IO ())
-> (Ptr SwapchainUsageFlags -> IO SwapchainUsageFlags)
-> (Ptr SwapchainUsageFlags -> SwapchainUsageFlags -> IO ())
-> Storable SwapchainUsageFlags
forall b. Ptr b -> Int -> IO SwapchainUsageFlags
forall b. Ptr b -> Int -> SwapchainUsageFlags -> 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 SwapchainUsageFlags -> SwapchainUsageFlags -> IO ()
$cpoke :: Ptr SwapchainUsageFlags -> SwapchainUsageFlags -> IO ()
peek :: Ptr SwapchainUsageFlags -> IO SwapchainUsageFlags
$cpeek :: Ptr SwapchainUsageFlags -> IO SwapchainUsageFlags
pokeByteOff :: Ptr b -> Int -> SwapchainUsageFlags -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> SwapchainUsageFlags -> IO ()
peekByteOff :: Ptr b -> Int -> IO SwapchainUsageFlags
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SwapchainUsageFlags
pokeElemOff :: Ptr SwapchainUsageFlags -> Int -> SwapchainUsageFlags -> IO ()
$cpokeElemOff :: Ptr SwapchainUsageFlags -> Int -> SwapchainUsageFlags -> IO ()
peekElemOff :: Ptr SwapchainUsageFlags -> Int -> IO SwapchainUsageFlags
$cpeekElemOff :: Ptr SwapchainUsageFlags -> Int -> IO SwapchainUsageFlags
alignment :: SwapchainUsageFlags -> Int
$calignment :: SwapchainUsageFlags -> Int
sizeOf :: SwapchainUsageFlags -> Int
$csizeOf :: SwapchainUsageFlags -> Int
Storable, SwapchainUsageFlags
SwapchainUsageFlags -> Zero SwapchainUsageFlags
forall a. a -> Zero a
zero :: SwapchainUsageFlags
$czero :: SwapchainUsageFlags
Zero, Eq SwapchainUsageFlags
SwapchainUsageFlags
Eq SwapchainUsageFlags =>
(SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags)
-> (SwapchainUsageFlags
    -> SwapchainUsageFlags -> SwapchainUsageFlags)
-> (SwapchainUsageFlags
    -> SwapchainUsageFlags -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> SwapchainUsageFlags
-> (Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> Bool)
-> (SwapchainUsageFlags -> Maybe Int)
-> (SwapchainUsageFlags -> Int)
-> (SwapchainUsageFlags -> Bool)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int -> SwapchainUsageFlags)
-> (SwapchainUsageFlags -> Int)
-> Bits SwapchainUsageFlags
Int -> SwapchainUsageFlags
SwapchainUsageFlags -> Bool
SwapchainUsageFlags -> Int
SwapchainUsageFlags -> Maybe Int
SwapchainUsageFlags -> SwapchainUsageFlags
SwapchainUsageFlags -> Int -> Bool
SwapchainUsageFlags -> Int -> SwapchainUsageFlags
SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
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 :: SwapchainUsageFlags -> Int
$cpopCount :: SwapchainUsageFlags -> Int
rotateR :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$crotateR :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
rotateL :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$crotateL :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
unsafeShiftR :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$cunsafeShiftR :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
shiftR :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$cshiftR :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
unsafeShiftL :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$cunsafeShiftL :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
shiftL :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$cshiftL :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
isSigned :: SwapchainUsageFlags -> Bool
$cisSigned :: SwapchainUsageFlags -> Bool
bitSize :: SwapchainUsageFlags -> Int
$cbitSize :: SwapchainUsageFlags -> Int
bitSizeMaybe :: SwapchainUsageFlags -> Maybe Int
$cbitSizeMaybe :: SwapchainUsageFlags -> Maybe Int
testBit :: SwapchainUsageFlags -> Int -> Bool
$ctestBit :: SwapchainUsageFlags -> Int -> Bool
complementBit :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$ccomplementBit :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
clearBit :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$cclearBit :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
setBit :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$csetBit :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
bit :: Int -> SwapchainUsageFlags
$cbit :: Int -> SwapchainUsageFlags
zeroBits :: SwapchainUsageFlags
$czeroBits :: SwapchainUsageFlags
rotate :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$crotate :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
shift :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
$cshift :: SwapchainUsageFlags -> Int -> SwapchainUsageFlags
complement :: SwapchainUsageFlags -> SwapchainUsageFlags
$ccomplement :: SwapchainUsageFlags -> SwapchainUsageFlags
xor :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
$cxor :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
.|. :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
$c.|. :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
.&. :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
$c.&. :: SwapchainUsageFlags -> SwapchainUsageFlags -> SwapchainUsageFlags
$cp1Bits :: Eq SwapchainUsageFlags
Bits, Bits SwapchainUsageFlags
Bits SwapchainUsageFlags =>
(SwapchainUsageFlags -> Int)
-> (SwapchainUsageFlags -> Int)
-> (SwapchainUsageFlags -> Int)
-> FiniteBits SwapchainUsageFlags
SwapchainUsageFlags -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: SwapchainUsageFlags -> Int
$ccountTrailingZeros :: SwapchainUsageFlags -> Int
countLeadingZeros :: SwapchainUsageFlags -> Int
$ccountLeadingZeros :: SwapchainUsageFlags -> Int
finiteBitSize :: SwapchainUsageFlags -> Int
$cfiniteBitSize :: SwapchainUsageFlags -> Int
$cp1FiniteBits :: Bits SwapchainUsageFlags
FiniteBits)



conNameSwapchainUsageFlags :: String
conNameSwapchainUsageFlags :: String
conNameSwapchainUsageFlags = "SwapchainUsageFlags"

enumPrefixSwapchainUsageFlags :: String
enumPrefixSwapchainUsageFlags :: String
enumPrefixSwapchainUsageFlags = ""

showTableSwapchainUsageFlags :: [(SwapchainUsageFlags, String)]
showTableSwapchainUsageFlags :: [(SwapchainUsageFlags, String)]
showTableSwapchainUsageFlags = []

instance Show SwapchainUsageFlags where
  showsPrec :: Int -> SwapchainUsageFlags -> ShowS
showsPrec = String
-> [(SwapchainUsageFlags, String)]
-> String
-> (SwapchainUsageFlags -> Flags64)
-> (Flags64 -> ShowS)
-> Int
-> SwapchainUsageFlags
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixSwapchainUsageFlags
                            [(SwapchainUsageFlags, String)]
showTableSwapchainUsageFlags
                            String
conNameSwapchainUsageFlags
                            (\(SwapchainUsageFlags 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 SwapchainUsageFlags where
  readPrec :: ReadPrec SwapchainUsageFlags
readPrec = String
-> [(SwapchainUsageFlags, String)]
-> String
-> (Flags64 -> SwapchainUsageFlags)
-> ReadPrec SwapchainUsageFlags
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixSwapchainUsageFlags
                          [(SwapchainUsageFlags, String)]
showTableSwapchainUsageFlags
                          String
conNameSwapchainUsageFlags
                          Flags64 -> SwapchainUsageFlags
SwapchainUsageFlags