packages feed

vulkan-3.27: src/Vulkan/Core14/Enums/QueueGlobalPriority.hs

{-# language CPP #-}
-- No documentation found for Chapter "QueueGlobalPriority"
module Vulkan.Core14.Enums.QueueGlobalPriority  (QueueGlobalPriority( QUEUE_GLOBAL_PRIORITY_LOW
                                                                    , QUEUE_GLOBAL_PRIORITY_MEDIUM
                                                                    , QUEUE_GLOBAL_PRIORITY_HIGH
                                                                    , QUEUE_GLOBAL_PRIORITY_REALTIME
                                                                    , ..
                                                                    )) 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))

-- | VkQueueGlobalPriority - Values specifying a system-wide queue priority
--
-- = Description
--
-- Priority values are sorted in ascending order. A comparison operation on
-- the enum values can be used to determine the priority order.
--
-- -   'QUEUE_GLOBAL_PRIORITY_LOW' is below the system default. Useful for
--     non-interactive tasks.
--
-- -   'QUEUE_GLOBAL_PRIORITY_MEDIUM' is the system default priority.
--
-- -   'QUEUE_GLOBAL_PRIORITY_HIGH' is above the system default.
--
-- -   'QUEUE_GLOBAL_PRIORITY_REALTIME' is the highest priority. Useful for
--     critical tasks.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_global_priority VK_EXT_global_priority>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_global_priority VK_KHR_global_priority>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_4 VK_VERSION_1_4>,
-- 'Vulkan.Core14.Promoted_From_VK_KHR_global_priority.DeviceQueueGlobalPriorityCreateInfo',
-- 'Vulkan.Core14.Promoted_From_VK_KHR_global_priority.QueueFamilyGlobalPriorityProperties'
newtype QueueGlobalPriority = QueueGlobalPriority Int32
  deriving newtype (Eq, Ord, Storable, 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 "VkQueueGlobalPriority" "VK_QUEUE_GLOBAL_PRIORITY_LOW"
pattern QUEUE_GLOBAL_PRIORITY_LOW = QueueGlobalPriority 128

-- No documentation found for Nested "VkQueueGlobalPriority" "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM"
pattern QUEUE_GLOBAL_PRIORITY_MEDIUM = QueueGlobalPriority 256

-- No documentation found for Nested "VkQueueGlobalPriority" "VK_QUEUE_GLOBAL_PRIORITY_HIGH"
pattern QUEUE_GLOBAL_PRIORITY_HIGH = QueueGlobalPriority 512

-- No documentation found for Nested "VkQueueGlobalPriority" "VK_QUEUE_GLOBAL_PRIORITY_REALTIME"
pattern QUEUE_GLOBAL_PRIORITY_REALTIME = QueueGlobalPriority 1024

{-# COMPLETE
  QUEUE_GLOBAL_PRIORITY_LOW
  , QUEUE_GLOBAL_PRIORITY_MEDIUM
  , QUEUE_GLOBAL_PRIORITY_HIGH
  , QUEUE_GLOBAL_PRIORITY_REALTIME ::
    QueueGlobalPriority
  #-}

conNameQueueGlobalPriority :: String
conNameQueueGlobalPriority = "QueueGlobalPriority"

enumPrefixQueueGlobalPriority :: String
enumPrefixQueueGlobalPriority = "QUEUE_GLOBAL_PRIORITY_"

showTableQueueGlobalPriority :: [(QueueGlobalPriority, String)]
showTableQueueGlobalPriority =
  [ (QUEUE_GLOBAL_PRIORITY_LOW, "LOW")
  , (QUEUE_GLOBAL_PRIORITY_MEDIUM, "MEDIUM")
  , (QUEUE_GLOBAL_PRIORITY_HIGH, "HIGH")
  , (QUEUE_GLOBAL_PRIORITY_REALTIME, "REALTIME")
  ]

instance Show QueueGlobalPriority where
  showsPrec =
    enumShowsPrec
      enumPrefixQueueGlobalPriority
      showTableQueueGlobalPriority
      conNameQueueGlobalPriority
      (\(QueueGlobalPriority x) -> x)
      (showsPrec 11)

instance Read QueueGlobalPriority where
  readPrec =
    enumReadPrec
      enumPrefixQueueGlobalPriority
      showTableQueueGlobalPriority
      conNameQueueGlobalPriority
      QueueGlobalPriority