{-# language CPP #-}
-- No documentation found for Chapter "VendorId"
module Vulkan.Core10.Enums.VendorId  (VendorId( VENDOR_ID_VIV
                                              , VENDOR_ID_VSI
                                              , VENDOR_ID_KAZAN
                                              , VENDOR_ID_CODEPLAY
                                              , VENDOR_ID_MESA
                                              , VENDOR_ID_POCL
                                              , VENDOR_ID_MOBILEYE
                                              , ..
                                              )) where

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

-- | VkVendorId - Khronos vendor IDs
--
-- = Description
--
-- Note
--
-- Khronos vendor IDs may be allocated by vendors at any time. Only the
-- latest canonical versions of this Specification, of the corresponding
-- @vk.xml@ API Registry, and of the corresponding @vulkan_core.h@ header
-- file /must/ contain all reserved Khronos vendor IDs.
--
-- Only Khronos vendor IDs are given symbolic names at present. PCI vendor
-- IDs returned by the implementation can be looked up in the PCI-SIG
-- database.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>
newtype VendorId = VendorId Int32
  deriving newtype (VendorId -> VendorId -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VendorId -> VendorId -> Bool
$c/= :: VendorId -> VendorId -> Bool
== :: VendorId -> VendorId -> Bool
$c== :: VendorId -> VendorId -> Bool
Eq, Eq VendorId
VendorId -> VendorId -> Bool
VendorId -> VendorId -> Ordering
VendorId -> VendorId -> VendorId
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 :: VendorId -> VendorId -> VendorId
$cmin :: VendorId -> VendorId -> VendorId
max :: VendorId -> VendorId -> VendorId
$cmax :: VendorId -> VendorId -> VendorId
>= :: VendorId -> VendorId -> Bool
$c>= :: VendorId -> VendorId -> Bool
> :: VendorId -> VendorId -> Bool
$c> :: VendorId -> VendorId -> Bool
<= :: VendorId -> VendorId -> Bool
$c<= :: VendorId -> VendorId -> Bool
< :: VendorId -> VendorId -> Bool
$c< :: VendorId -> VendorId -> Bool
compare :: VendorId -> VendorId -> Ordering
$ccompare :: VendorId -> VendorId -> Ordering
Ord, Ptr VendorId -> IO VendorId
Ptr VendorId -> Int -> IO VendorId
Ptr VendorId -> Int -> VendorId -> IO ()
Ptr VendorId -> VendorId -> IO ()
VendorId -> Int
forall b. Ptr b -> Int -> IO VendorId
forall b. Ptr b -> Int -> VendorId -> 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 VendorId -> VendorId -> IO ()
$cpoke :: Ptr VendorId -> VendorId -> IO ()
peek :: Ptr VendorId -> IO VendorId
$cpeek :: Ptr VendorId -> IO VendorId
pokeByteOff :: forall b. Ptr b -> Int -> VendorId -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VendorId -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VendorId
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VendorId
pokeElemOff :: Ptr VendorId -> Int -> VendorId -> IO ()
$cpokeElemOff :: Ptr VendorId -> Int -> VendorId -> IO ()
peekElemOff :: Ptr VendorId -> Int -> IO VendorId
$cpeekElemOff :: Ptr VendorId -> Int -> IO VendorId
alignment :: VendorId -> Int
$calignment :: VendorId -> Int
sizeOf :: VendorId -> Int
$csizeOf :: VendorId -> Int
Storable, VendorId
forall a. a -> Zero a
zero :: VendorId
$czero :: VendorId
Zero)

-- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_VIV"
pattern $bVENDOR_ID_VIV :: VendorId
$mVENDOR_ID_VIV :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_VIV = VendorId 65537

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_VSI"
pattern $bVENDOR_ID_VSI :: VendorId
$mVENDOR_ID_VSI :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_VSI = VendorId 65538

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_KAZAN"
pattern $bVENDOR_ID_KAZAN :: VendorId
$mVENDOR_ID_KAZAN :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_KAZAN = VendorId 65539

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_CODEPLAY"
pattern $bVENDOR_ID_CODEPLAY :: VendorId
$mVENDOR_ID_CODEPLAY :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_CODEPLAY = VendorId 65540

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_MESA"
pattern $bVENDOR_ID_MESA :: VendorId
$mVENDOR_ID_MESA :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_MESA = VendorId 65541

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_POCL"
pattern $bVENDOR_ID_POCL :: VendorId
$mVENDOR_ID_POCL :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_POCL = VendorId 65542

-- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_MOBILEYE"
pattern $bVENDOR_ID_MOBILEYE :: VendorId
$mVENDOR_ID_MOBILEYE :: forall {r}. VendorId -> ((# #) -> r) -> ((# #) -> r) -> r
VENDOR_ID_MOBILEYE = VendorId 65543

{-# COMPLETE
  VENDOR_ID_VIV
  , VENDOR_ID_VSI
  , VENDOR_ID_KAZAN
  , VENDOR_ID_CODEPLAY
  , VENDOR_ID_MESA
  , VENDOR_ID_POCL
  , VENDOR_ID_MOBILEYE ::
    VendorId
  #-}

conNameVendorId :: String
conNameVendorId :: String
conNameVendorId = String
"VendorId"

enumPrefixVendorId :: String
enumPrefixVendorId :: String
enumPrefixVendorId = String
"VENDOR_ID_"

showTableVendorId :: [(VendorId, String)]
showTableVendorId :: [(VendorId, String)]
showTableVendorId =
  [ (VendorId
VENDOR_ID_VIV, String
"VIV")
  , (VendorId
VENDOR_ID_VSI, String
"VSI")
  , (VendorId
VENDOR_ID_KAZAN, String
"KAZAN")
  , (VendorId
VENDOR_ID_CODEPLAY, String
"CODEPLAY")
  , (VendorId
VENDOR_ID_MESA, String
"MESA")
  , (VendorId
VENDOR_ID_POCL, String
"POCL")
  , (VendorId
VENDOR_ID_MOBILEYE, String
"MOBILEYE")
  ]

instance Show VendorId where
  showsPrec :: Int -> VendorId -> ShowS
showsPrec =
    forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixVendorId
      [(VendorId, String)]
showTableVendorId
      String
conNameVendorId
      (\(VendorId Int32
x) -> Int32
x)
      (forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)

instance Read VendorId where
  readPrec :: ReadPrec VendorId
readPrec =
    forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixVendorId
      [(VendorId, String)]
showTableVendorId
      String
conNameVendorId
      Int32 -> VendorId
VendorId