{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
       (VkTessellationDomainOrigin(VkTessellationDomainOrigin,
                                   VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
                                   VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT),
        VkTessellationDomainOriginKHR(..))
       where
import Data.Bits                       (Bits, FiniteBits)
import Data.Coerce                     (coerce)
import Foreign.Storable                (Storable)
import GHC.Read                        (choose, expectP)
import Graphics.Vulkan.Marshal         (Int32)
import Graphics.Vulkan.Types.BaseTypes (VkFlags)
import Text.ParserCombinators.ReadPrec (prec, step, (+++))
import Text.Read                       (Read (..), parens)
import Text.Read.Lex                   (Lexeme (..))

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkTessellationDomainOrigin VkTessellationDomainOrigin registry at www.khronos.org>
newtype VkTessellationDomainOrigin = VkTessellationDomainOrigin Int32
                                     deriving (VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
(VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> Bool)
-> Eq VkTessellationDomainOrigin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
$c/= :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
== :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
$c== :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
Eq, Eq VkTessellationDomainOrigin
Eq VkTessellationDomainOrigin
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> Ordering)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> Bool)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> Bool)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> Bool)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> Bool)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> VkTessellationDomainOrigin)
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> VkTessellationDomainOrigin)
-> Ord VkTessellationDomainOrigin
VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> Ordering
VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> VkTessellationDomainOrigin
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 :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> VkTessellationDomainOrigin
$cmin :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> VkTessellationDomainOrigin
max :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> VkTessellationDomainOrigin
$cmax :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> VkTessellationDomainOrigin
>= :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
$c>= :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
> :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
$c> :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
<= :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
$c<= :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
< :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
$c< :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin -> Bool
compare :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> Ordering
$ccompare :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> Ordering
Ord, Int -> VkTessellationDomainOrigin
VkTessellationDomainOrigin -> Int
VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
VkTessellationDomainOrigin -> VkTessellationDomainOrigin
VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
VkTessellationDomainOrigin
-> VkTessellationDomainOrigin
-> VkTessellationDomainOrigin
-> [VkTessellationDomainOrigin]
(VkTessellationDomainOrigin -> VkTessellationDomainOrigin)
-> (VkTessellationDomainOrigin -> VkTessellationDomainOrigin)
-> (Int -> VkTessellationDomainOrigin)
-> (VkTessellationDomainOrigin -> Int)
-> (VkTessellationDomainOrigin -> [VkTessellationDomainOrigin])
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin])
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin])
-> (VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin
    -> [VkTessellationDomainOrigin])
-> Enum VkTessellationDomainOrigin
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin
-> VkTessellationDomainOrigin
-> [VkTessellationDomainOrigin]
$cenumFromThenTo :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin
-> VkTessellationDomainOrigin
-> [VkTessellationDomainOrigin]
enumFromTo :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
$cenumFromTo :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
enumFromThen :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
$cenumFromThen :: VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
enumFrom :: VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
$cenumFrom :: VkTessellationDomainOrigin -> [VkTessellationDomainOrigin]
fromEnum :: VkTessellationDomainOrigin -> Int
$cfromEnum :: VkTessellationDomainOrigin -> Int
toEnum :: Int -> VkTessellationDomainOrigin
$ctoEnum :: Int -> VkTessellationDomainOrigin
pred :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin
$cpred :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin
succ :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin
$csucc :: VkTessellationDomainOrigin -> VkTessellationDomainOrigin
Enum, Ptr VkTessellationDomainOrigin -> IO VkTessellationDomainOrigin
Ptr VkTessellationDomainOrigin
-> Int -> IO VkTessellationDomainOrigin
Ptr VkTessellationDomainOrigin
-> Int -> VkTessellationDomainOrigin -> IO ()
Ptr VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> IO ()
VkTessellationDomainOrigin -> Int
(VkTessellationDomainOrigin -> Int)
-> (VkTessellationDomainOrigin -> Int)
-> (Ptr VkTessellationDomainOrigin
    -> Int -> IO VkTessellationDomainOrigin)
-> (Ptr VkTessellationDomainOrigin
    -> Int -> VkTessellationDomainOrigin -> IO ())
-> (forall b. Ptr b -> Int -> IO VkTessellationDomainOrigin)
-> (forall b. Ptr b -> Int -> VkTessellationDomainOrigin -> IO ())
-> (Ptr VkTessellationDomainOrigin
    -> IO VkTessellationDomainOrigin)
-> (Ptr VkTessellationDomainOrigin
    -> VkTessellationDomainOrigin -> IO ())
-> Storable VkTessellationDomainOrigin
forall b. Ptr b -> Int -> IO VkTessellationDomainOrigin
forall b. Ptr b -> Int -> VkTessellationDomainOrigin -> 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 VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> IO ()
$cpoke :: Ptr VkTessellationDomainOrigin
-> VkTessellationDomainOrigin -> IO ()
peek :: Ptr VkTessellationDomainOrigin -> IO VkTessellationDomainOrigin
$cpeek :: Ptr VkTessellationDomainOrigin -> IO VkTessellationDomainOrigin
pokeByteOff :: forall b. Ptr b -> Int -> VkTessellationDomainOrigin -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkTessellationDomainOrigin -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkTessellationDomainOrigin
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkTessellationDomainOrigin
pokeElemOff :: Ptr VkTessellationDomainOrigin
-> Int -> VkTessellationDomainOrigin -> IO ()
$cpokeElemOff :: Ptr VkTessellationDomainOrigin
-> Int -> VkTessellationDomainOrigin -> IO ()
peekElemOff :: Ptr VkTessellationDomainOrigin
-> Int -> IO VkTessellationDomainOrigin
$cpeekElemOff :: Ptr VkTessellationDomainOrigin
-> Int -> IO VkTessellationDomainOrigin
alignment :: VkTessellationDomainOrigin -> Int
$calignment :: VkTessellationDomainOrigin -> Int
sizeOf :: VkTessellationDomainOrigin -> Int
$csizeOf :: VkTessellationDomainOrigin -> Int
Storable)

instance Show VkTessellationDomainOrigin where
    showsPrec :: Int -> VkTessellationDomainOrigin -> ShowS
showsPrec Int
_ VkTessellationDomainOrigin
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT
      = String -> ShowS
showString String
"VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"
    showsPrec Int
_ VkTessellationDomainOrigin
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
      = String -> ShowS
showString String
"VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"
    showsPrec Int
p (VkTessellationDomainOrigin Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkTessellationDomainOrigin " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkTessellationDomainOrigin where
    readPrec :: ReadPrec VkTessellationDomainOrigin
readPrec
      = ReadPrec VkTessellationDomainOrigin
-> ReadPrec VkTessellationDomainOrigin
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkTessellationDomainOrigin)]
-> ReadPrec VkTessellationDomainOrigin
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT",
               VkTessellationDomainOrigin -> ReadPrec VkTessellationDomainOrigin
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkTessellationDomainOrigin
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT),
              (String
"VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT",
               VkTessellationDomainOrigin -> ReadPrec VkTessellationDomainOrigin
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkTessellationDomainOrigin
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT)]
             ReadPrec VkTessellationDomainOrigin
-> ReadPrec VkTessellationDomainOrigin
-> ReadPrec VkTessellationDomainOrigin
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkTessellationDomainOrigin
-> ReadPrec VkTessellationDomainOrigin
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkTessellationDomainOrigin") ReadPrec ()
-> ReadPrec VkTessellationDomainOrigin
-> ReadPrec VkTessellationDomainOrigin
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkTessellationDomainOrigin
VkTessellationDomainOrigin (Int32 -> VkTessellationDomainOrigin)
-> ReadPrec Int32 -> ReadPrec VkTessellationDomainOrigin
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT ::
        VkTessellationDomainOrigin

pattern $bVK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT :: VkTessellationDomainOrigin
$mVK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT :: forall {r}.
VkTessellationDomainOrigin -> (Void# -> r) -> (Void# -> r) -> r
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT =
        VkTessellationDomainOrigin 0

pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT ::
        VkTessellationDomainOrigin

pattern $bVK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT :: VkTessellationDomainOrigin
$mVK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT :: forall {r}.
VkTessellationDomainOrigin -> (Void# -> r) -> (Void# -> r) -> r
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT =
        VkTessellationDomainOrigin 1

newtype VkTessellationDomainOriginKHR = VkTessellationDomainOriginKHR VkFlags
                                        deriving (VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
(VkTessellationDomainOriginKHR
 -> VkTessellationDomainOriginKHR -> Bool)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> Bool)
-> Eq VkTessellationDomainOriginKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
$c/= :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
== :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
$c== :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
Eq, Eq VkTessellationDomainOriginKHR
Eq VkTessellationDomainOriginKHR
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> Ordering)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> Bool)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> Bool)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> Bool)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> Bool)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> Ord VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Ordering
VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
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 :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$cmin :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
max :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$cmax :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
>= :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
$c>= :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
> :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
$c> :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
<= :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
$c<= :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
< :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
$c< :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Bool
compare :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Ordering
$ccompare :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> Ordering
Ord, Int -> VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR -> Int
VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR
-> [VkTessellationDomainOriginKHR]
(VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR -> Int)
-> (VkTessellationDomainOriginKHR
    -> [VkTessellationDomainOriginKHR])
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR
    -> [VkTessellationDomainOriginKHR])
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR
    -> [VkTessellationDomainOriginKHR])
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR
    -> [VkTessellationDomainOriginKHR])
-> Enum VkTessellationDomainOriginKHR
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR
-> [VkTessellationDomainOriginKHR]
$cenumFromThenTo :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR
-> [VkTessellationDomainOriginKHR]
enumFromTo :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
$cenumFromTo :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
enumFromThen :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
$cenumFromThen :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
enumFrom :: VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
$cenumFrom :: VkTessellationDomainOriginKHR -> [VkTessellationDomainOriginKHR]
fromEnum :: VkTessellationDomainOriginKHR -> Int
$cfromEnum :: VkTessellationDomainOriginKHR -> Int
toEnum :: Int -> VkTessellationDomainOriginKHR
$ctoEnum :: Int -> VkTessellationDomainOriginKHR
pred :: VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$cpred :: VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
succ :: VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$csucc :: VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
Enum, Eq VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR
Eq VkTessellationDomainOriginKHR
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> VkTessellationDomainOriginKHR
-> (Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR -> Int -> Bool)
-> (VkTessellationDomainOriginKHR -> Maybe Int)
-> (VkTessellationDomainOriginKHR -> Int)
-> (VkTessellationDomainOriginKHR -> Bool)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR)
-> (VkTessellationDomainOriginKHR -> Int)
-> Bits VkTessellationDomainOriginKHR
Int -> VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR -> Bool
VkTessellationDomainOriginKHR -> Int
VkTessellationDomainOriginKHR -> Maybe Int
VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR -> Int -> Bool
VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
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 :: VkTessellationDomainOriginKHR -> Int
$cpopCount :: VkTessellationDomainOriginKHR -> Int
rotateR :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$crotateR :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
rotateL :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$crotateL :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
unsafeShiftR :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$cunsafeShiftR :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
shiftR :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$cshiftR :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
unsafeShiftL :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$cunsafeShiftL :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
shiftL :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$cshiftL :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
isSigned :: VkTessellationDomainOriginKHR -> Bool
$cisSigned :: VkTessellationDomainOriginKHR -> Bool
bitSize :: VkTessellationDomainOriginKHR -> Int
$cbitSize :: VkTessellationDomainOriginKHR -> Int
bitSizeMaybe :: VkTessellationDomainOriginKHR -> Maybe Int
$cbitSizeMaybe :: VkTessellationDomainOriginKHR -> Maybe Int
testBit :: VkTessellationDomainOriginKHR -> Int -> Bool
$ctestBit :: VkTessellationDomainOriginKHR -> Int -> Bool
complementBit :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$ccomplementBit :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
clearBit :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$cclearBit :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
setBit :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$csetBit :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
bit :: Int -> VkTessellationDomainOriginKHR
$cbit :: Int -> VkTessellationDomainOriginKHR
zeroBits :: VkTessellationDomainOriginKHR
$czeroBits :: VkTessellationDomainOriginKHR
rotate :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$crotate :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
shift :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
$cshift :: VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR
complement :: VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$ccomplement :: VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
xor :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$cxor :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
.|. :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$c.|. :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
.&. :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
$c.&. :: VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> VkTessellationDomainOriginKHR
Bits, Bits VkTessellationDomainOriginKHR
Bits VkTessellationDomainOriginKHR
-> (VkTessellationDomainOriginKHR -> Int)
-> (VkTessellationDomainOriginKHR -> Int)
-> (VkTessellationDomainOriginKHR -> Int)
-> FiniteBits VkTessellationDomainOriginKHR
VkTessellationDomainOriginKHR -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: VkTessellationDomainOriginKHR -> Int
$ccountTrailingZeros :: VkTessellationDomainOriginKHR -> Int
countLeadingZeros :: VkTessellationDomainOriginKHR -> Int
$ccountLeadingZeros :: VkTessellationDomainOriginKHR -> Int
finiteBitSize :: VkTessellationDomainOriginKHR -> Int
$cfiniteBitSize :: VkTessellationDomainOriginKHR -> Int
FiniteBits, Ptr VkTessellationDomainOriginKHR
-> IO VkTessellationDomainOriginKHR
Ptr VkTessellationDomainOriginKHR
-> Int -> IO VkTessellationDomainOriginKHR
Ptr VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR -> IO ()
Ptr VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> IO ()
VkTessellationDomainOriginKHR -> Int
(VkTessellationDomainOriginKHR -> Int)
-> (VkTessellationDomainOriginKHR -> Int)
-> (Ptr VkTessellationDomainOriginKHR
    -> Int -> IO VkTessellationDomainOriginKHR)
-> (Ptr VkTessellationDomainOriginKHR
    -> Int -> VkTessellationDomainOriginKHR -> IO ())
-> (forall b. Ptr b -> Int -> IO VkTessellationDomainOriginKHR)
-> (forall b.
    Ptr b -> Int -> VkTessellationDomainOriginKHR -> IO ())
-> (Ptr VkTessellationDomainOriginKHR
    -> IO VkTessellationDomainOriginKHR)
-> (Ptr VkTessellationDomainOriginKHR
    -> VkTessellationDomainOriginKHR -> IO ())
-> Storable VkTessellationDomainOriginKHR
forall b. Ptr b -> Int -> IO VkTessellationDomainOriginKHR
forall b. Ptr b -> Int -> VkTessellationDomainOriginKHR -> 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 VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> IO ()
$cpoke :: Ptr VkTessellationDomainOriginKHR
-> VkTessellationDomainOriginKHR -> IO ()
peek :: Ptr VkTessellationDomainOriginKHR
-> IO VkTessellationDomainOriginKHR
$cpeek :: Ptr VkTessellationDomainOriginKHR
-> IO VkTessellationDomainOriginKHR
pokeByteOff :: forall b. Ptr b -> Int -> VkTessellationDomainOriginKHR -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkTessellationDomainOriginKHR -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkTessellationDomainOriginKHR
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkTessellationDomainOriginKHR
pokeElemOff :: Ptr VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR -> IO ()
$cpokeElemOff :: Ptr VkTessellationDomainOriginKHR
-> Int -> VkTessellationDomainOriginKHR -> IO ()
peekElemOff :: Ptr VkTessellationDomainOriginKHR
-> Int -> IO VkTessellationDomainOriginKHR
$cpeekElemOff :: Ptr VkTessellationDomainOriginKHR
-> Int -> IO VkTessellationDomainOriginKHR
alignment :: VkTessellationDomainOriginKHR -> Int
$calignment :: VkTessellationDomainOriginKHR -> Int
sizeOf :: VkTessellationDomainOriginKHR -> Int
$csizeOf :: VkTessellationDomainOriginKHR -> Int
Storable)

instance Show VkTessellationDomainOriginKHR where
    {-# INLINE showsPrec #-}
    showsPrec :: Int -> VkTessellationDomainOriginKHR -> ShowS
showsPrec = (Int -> VkFlags -> ShowS)
-> Int -> VkTessellationDomainOriginKHR -> ShowS
coerce (Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec :: Int -> VkFlags -> ShowS)

instance Read VkTessellationDomainOriginKHR where
    {-# INLINE readsPrec #-}
    readsPrec :: Int -> ReadS VkTessellationDomainOriginKHR
readsPrec = (Int -> ReadS VkFlags)
-> Int -> ReadS VkTessellationDomainOriginKHR
coerce (Int -> ReadS VkFlags
forall a. Read a => Int -> ReadS a
readsPrec :: Int -> ReadS VkFlags)