{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.ObjectType
       (VkObjectType(VkObjectType, VK_OBJECT_TYPE_UNKNOWN,
                     VK_OBJECT_TYPE_INSTANCE, VK_OBJECT_TYPE_PHYSICAL_DEVICE,
                     VK_OBJECT_TYPE_DEVICE, VK_OBJECT_TYPE_QUEUE,
                     VK_OBJECT_TYPE_SEMAPHORE, VK_OBJECT_TYPE_COMMAND_BUFFER,
                     VK_OBJECT_TYPE_FENCE, VK_OBJECT_TYPE_DEVICE_MEMORY,
                     VK_OBJECT_TYPE_BUFFER, VK_OBJECT_TYPE_IMAGE, VK_OBJECT_TYPE_EVENT,
                     VK_OBJECT_TYPE_QUERY_POOL, VK_OBJECT_TYPE_BUFFER_VIEW,
                     VK_OBJECT_TYPE_IMAGE_VIEW, VK_OBJECT_TYPE_SHADER_MODULE,
                     VK_OBJECT_TYPE_PIPELINE_CACHE, VK_OBJECT_TYPE_PIPELINE_LAYOUT,
                     VK_OBJECT_TYPE_RENDER_PASS, VK_OBJECT_TYPE_PIPELINE,
                     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, VK_OBJECT_TYPE_SAMPLER,
                     VK_OBJECT_TYPE_DESCRIPTOR_POOL, VK_OBJECT_TYPE_DESCRIPTOR_SET,
                     VK_OBJECT_TYPE_FRAMEBUFFER, VK_OBJECT_TYPE_COMMAND_POOL))
       where
import Foreign.Storable                (Storable)
import GHC.Read                        (choose, expectP)
import Graphics.Vulkan.Marshal         (Int32)
import Text.ParserCombinators.ReadPrec (prec, step, (+++))
import Text.Read                       (Read (..), parens)
import Text.Read.Lex                   (Lexeme (..))

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

instance Show VkObjectType where
    showsPrec :: Int -> VkObjectType -> ShowS
showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_UNKNOWN
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_UNKNOWN"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_INSTANCE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_INSTANCE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_PHYSICAL_DEVICE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_PHYSICAL_DEVICE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_DEVICE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_DEVICE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_QUEUE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_QUEUE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_SEMAPHORE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_SEMAPHORE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_COMMAND_BUFFER
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_COMMAND_BUFFER"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_FENCE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_FENCE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_DEVICE_MEMORY
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_DEVICE_MEMORY"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_BUFFER
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_BUFFER"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_IMAGE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_IMAGE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_EVENT
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_EVENT"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_QUERY_POOL
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_QUERY_POOL"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_BUFFER_VIEW
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_BUFFER_VIEW"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_IMAGE_VIEW
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_IMAGE_VIEW"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_SHADER_MODULE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_SHADER_MODULE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_PIPELINE_CACHE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_PIPELINE_CACHE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_PIPELINE_LAYOUT
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_PIPELINE_LAYOUT"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_RENDER_PASS
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_RENDER_PASS"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_PIPELINE
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_PIPELINE"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_SAMPLER
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_SAMPLER"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_DESCRIPTOR_POOL
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_DESCRIPTOR_POOL"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_DESCRIPTOR_SET
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_DESCRIPTOR_SET"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_FRAMEBUFFER
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_FRAMEBUFFER"
    showsPrec Int
_ VkObjectType
VK_OBJECT_TYPE_COMMAND_POOL
      = String -> ShowS
showString String
"VK_OBJECT_TYPE_COMMAND_POOL"
    showsPrec Int
p (VkObjectType Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11) (String -> ShowS
showString String
"VkObjectType " 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 VkObjectType where
    readPrec :: ReadPrec VkObjectType
readPrec
      = ReadPrec VkObjectType -> ReadPrec VkObjectType
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkObjectType)] -> ReadPrec VkObjectType
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_OBJECT_TYPE_UNKNOWN", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_UNKNOWN),
              (String
"VK_OBJECT_TYPE_INSTANCE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_INSTANCE),
              (String
"VK_OBJECT_TYPE_PHYSICAL_DEVICE",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_PHYSICAL_DEVICE),
              (String
"VK_OBJECT_TYPE_DEVICE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_DEVICE),
              (String
"VK_OBJECT_TYPE_QUEUE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_QUEUE),
              (String
"VK_OBJECT_TYPE_SEMAPHORE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_SEMAPHORE),
              (String
"VK_OBJECT_TYPE_COMMAND_BUFFER",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_COMMAND_BUFFER),
              (String
"VK_OBJECT_TYPE_FENCE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_FENCE),
              (String
"VK_OBJECT_TYPE_DEVICE_MEMORY",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_DEVICE_MEMORY),
              (String
"VK_OBJECT_TYPE_BUFFER", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_BUFFER),
              (String
"VK_OBJECT_TYPE_IMAGE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_IMAGE),
              (String
"VK_OBJECT_TYPE_EVENT", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_EVENT),
              (String
"VK_OBJECT_TYPE_QUERY_POOL", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_QUERY_POOL),
              (String
"VK_OBJECT_TYPE_BUFFER_VIEW", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_BUFFER_VIEW),
              (String
"VK_OBJECT_TYPE_IMAGE_VIEW", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_IMAGE_VIEW),
              (String
"VK_OBJECT_TYPE_SHADER_MODULE",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_SHADER_MODULE),
              (String
"VK_OBJECT_TYPE_PIPELINE_CACHE",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_PIPELINE_CACHE),
              (String
"VK_OBJECT_TYPE_PIPELINE_LAYOUT",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_PIPELINE_LAYOUT),
              (String
"VK_OBJECT_TYPE_RENDER_PASS", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_RENDER_PASS),
              (String
"VK_OBJECT_TYPE_PIPELINE", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_PIPELINE),
              (String
"VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT),
              (String
"VK_OBJECT_TYPE_SAMPLER", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_SAMPLER),
              (String
"VK_OBJECT_TYPE_DESCRIPTOR_POOL",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_DESCRIPTOR_POOL),
              (String
"VK_OBJECT_TYPE_DESCRIPTOR_SET",
               VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_DESCRIPTOR_SET),
              (String
"VK_OBJECT_TYPE_FRAMEBUFFER", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_FRAMEBUFFER),
              (String
"VK_OBJECT_TYPE_COMMAND_POOL", VkObjectType -> ReadPrec VkObjectType
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkObjectType
VK_OBJECT_TYPE_COMMAND_POOL)]
             ReadPrec VkObjectType
-> ReadPrec VkObjectType -> ReadPrec VkObjectType
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int -> ReadPrec VkObjectType -> ReadPrec VkObjectType
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkObjectType") ReadPrec () -> ReadPrec VkObjectType -> ReadPrec VkObjectType
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkObjectType
VkObjectType (Int32 -> VkObjectType) -> ReadPrec Int32 -> ReadPrec VkObjectType
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_OBJECT_TYPE_UNKNOWN :: VkObjectType

pattern $bVK_OBJECT_TYPE_UNKNOWN :: VkObjectType
$mVK_OBJECT_TYPE_UNKNOWN :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_UNKNOWN = VkObjectType 0

-- | VkInstance
pattern VK_OBJECT_TYPE_INSTANCE :: VkObjectType

pattern $bVK_OBJECT_TYPE_INSTANCE :: VkObjectType
$mVK_OBJECT_TYPE_INSTANCE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_INSTANCE = VkObjectType 1

-- | VkPhysicalDevice
pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE :: VkObjectType

pattern $bVK_OBJECT_TYPE_PHYSICAL_DEVICE :: VkObjectType
$mVK_OBJECT_TYPE_PHYSICAL_DEVICE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_PHYSICAL_DEVICE = VkObjectType 2

-- | VkDevice
pattern VK_OBJECT_TYPE_DEVICE :: VkObjectType

pattern $bVK_OBJECT_TYPE_DEVICE :: VkObjectType
$mVK_OBJECT_TYPE_DEVICE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_DEVICE = VkObjectType 3

-- | VkQueue
pattern VK_OBJECT_TYPE_QUEUE :: VkObjectType

pattern $bVK_OBJECT_TYPE_QUEUE :: VkObjectType
$mVK_OBJECT_TYPE_QUEUE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_QUEUE = VkObjectType 4

-- | VkSemaphore
pattern VK_OBJECT_TYPE_SEMAPHORE :: VkObjectType

pattern $bVK_OBJECT_TYPE_SEMAPHORE :: VkObjectType
$mVK_OBJECT_TYPE_SEMAPHORE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_SEMAPHORE = VkObjectType 5

-- | VkCommandBuffer
pattern VK_OBJECT_TYPE_COMMAND_BUFFER :: VkObjectType

pattern $bVK_OBJECT_TYPE_COMMAND_BUFFER :: VkObjectType
$mVK_OBJECT_TYPE_COMMAND_BUFFER :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_COMMAND_BUFFER = VkObjectType 6

-- | VkFence
pattern VK_OBJECT_TYPE_FENCE :: VkObjectType

pattern $bVK_OBJECT_TYPE_FENCE :: VkObjectType
$mVK_OBJECT_TYPE_FENCE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_FENCE = VkObjectType 7

-- | VkDeviceMemory
pattern VK_OBJECT_TYPE_DEVICE_MEMORY :: VkObjectType

pattern $bVK_OBJECT_TYPE_DEVICE_MEMORY :: VkObjectType
$mVK_OBJECT_TYPE_DEVICE_MEMORY :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_DEVICE_MEMORY = VkObjectType 8

-- | VkBuffer
pattern VK_OBJECT_TYPE_BUFFER :: VkObjectType

pattern $bVK_OBJECT_TYPE_BUFFER :: VkObjectType
$mVK_OBJECT_TYPE_BUFFER :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_BUFFER = VkObjectType 9

-- | VkImage
pattern VK_OBJECT_TYPE_IMAGE :: VkObjectType

pattern $bVK_OBJECT_TYPE_IMAGE :: VkObjectType
$mVK_OBJECT_TYPE_IMAGE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_IMAGE = VkObjectType 10

-- | VkEvent
pattern VK_OBJECT_TYPE_EVENT :: VkObjectType

pattern $bVK_OBJECT_TYPE_EVENT :: VkObjectType
$mVK_OBJECT_TYPE_EVENT :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_EVENT = VkObjectType 11

-- | VkQueryPool
pattern VK_OBJECT_TYPE_QUERY_POOL :: VkObjectType

pattern $bVK_OBJECT_TYPE_QUERY_POOL :: VkObjectType
$mVK_OBJECT_TYPE_QUERY_POOL :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_QUERY_POOL = VkObjectType 12

-- | VkBufferView
pattern VK_OBJECT_TYPE_BUFFER_VIEW :: VkObjectType

pattern $bVK_OBJECT_TYPE_BUFFER_VIEW :: VkObjectType
$mVK_OBJECT_TYPE_BUFFER_VIEW :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_BUFFER_VIEW = VkObjectType 13

-- | VkImageView
pattern VK_OBJECT_TYPE_IMAGE_VIEW :: VkObjectType

pattern $bVK_OBJECT_TYPE_IMAGE_VIEW :: VkObjectType
$mVK_OBJECT_TYPE_IMAGE_VIEW :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_IMAGE_VIEW = VkObjectType 14

-- | VkShaderModule
pattern VK_OBJECT_TYPE_SHADER_MODULE :: VkObjectType

pattern $bVK_OBJECT_TYPE_SHADER_MODULE :: VkObjectType
$mVK_OBJECT_TYPE_SHADER_MODULE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_SHADER_MODULE = VkObjectType 15

-- | VkPipelineCache
pattern VK_OBJECT_TYPE_PIPELINE_CACHE :: VkObjectType

pattern $bVK_OBJECT_TYPE_PIPELINE_CACHE :: VkObjectType
$mVK_OBJECT_TYPE_PIPELINE_CACHE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_PIPELINE_CACHE = VkObjectType 16

-- | VkPipelineLayout
pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT :: VkObjectType

pattern $bVK_OBJECT_TYPE_PIPELINE_LAYOUT :: VkObjectType
$mVK_OBJECT_TYPE_PIPELINE_LAYOUT :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_PIPELINE_LAYOUT = VkObjectType 17

-- | VkRenderPass
pattern VK_OBJECT_TYPE_RENDER_PASS :: VkObjectType

pattern $bVK_OBJECT_TYPE_RENDER_PASS :: VkObjectType
$mVK_OBJECT_TYPE_RENDER_PASS :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_RENDER_PASS = VkObjectType 18

-- | VkPipeline
pattern VK_OBJECT_TYPE_PIPELINE :: VkObjectType

pattern $bVK_OBJECT_TYPE_PIPELINE :: VkObjectType
$mVK_OBJECT_TYPE_PIPELINE :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_PIPELINE = VkObjectType 19

-- | VkDescriptorSetLayout
pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: VkObjectType

pattern $bVK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: VkObjectType
$mVK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = VkObjectType 20

-- | VkSampler
pattern VK_OBJECT_TYPE_SAMPLER :: VkObjectType

pattern $bVK_OBJECT_TYPE_SAMPLER :: VkObjectType
$mVK_OBJECT_TYPE_SAMPLER :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_SAMPLER = VkObjectType 21

-- | VkDescriptorPool
pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL :: VkObjectType

pattern $bVK_OBJECT_TYPE_DESCRIPTOR_POOL :: VkObjectType
$mVK_OBJECT_TYPE_DESCRIPTOR_POOL :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_DESCRIPTOR_POOL = VkObjectType 22

-- | VkDescriptorSet
pattern VK_OBJECT_TYPE_DESCRIPTOR_SET :: VkObjectType

pattern $bVK_OBJECT_TYPE_DESCRIPTOR_SET :: VkObjectType
$mVK_OBJECT_TYPE_DESCRIPTOR_SET :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_DESCRIPTOR_SET = VkObjectType 23

-- | VkFramebuffer
pattern VK_OBJECT_TYPE_FRAMEBUFFER :: VkObjectType

pattern $bVK_OBJECT_TYPE_FRAMEBUFFER :: VkObjectType
$mVK_OBJECT_TYPE_FRAMEBUFFER :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_FRAMEBUFFER = VkObjectType 24

-- | VkCommandPool
pattern VK_OBJECT_TYPE_COMMAND_POOL :: VkObjectType

pattern $bVK_OBJECT_TYPE_COMMAND_POOL :: VkObjectType
$mVK_OBJECT_TYPE_COMMAND_POOL :: forall {r}. VkObjectType -> (Void# -> r) -> (Void# -> r) -> r
VK_OBJECT_TYPE_COMMAND_POOL = VkObjectType 25