{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE Strict #-}
module Graphics.Vulkan.Types.Enum.ChromaLocation
(VkChromaLocation(VkChromaLocation,
VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT),
VkChromaLocationKHR(..))
where
import Data.Bits (Bits, FiniteBits)
import Data.Coerce (coerce)
import Data.Data (Data)
import Foreign.Storable (Storable)
import GHC.Generics (Generic)
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 (..))
newtype VkChromaLocation = VkChromaLocation Int32
deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
instance Show VkChromaLocation where
showsPrec _ VK_CHROMA_LOCATION_COSITED_EVEN
= showString "VK_CHROMA_LOCATION_COSITED_EVEN"
showsPrec _ VK_CHROMA_LOCATION_MIDPOINT
= showString "VK_CHROMA_LOCATION_MIDPOINT"
showsPrec p (VkChromaLocation x)
= showParen (p >= 11)
(showString "VkChromaLocation " . showsPrec 11 x)
instance Read VkChromaLocation where
readPrec
= parens
(choose
[("VK_CHROMA_LOCATION_COSITED_EVEN",
pure VK_CHROMA_LOCATION_COSITED_EVEN),
("VK_CHROMA_LOCATION_MIDPOINT", pure VK_CHROMA_LOCATION_MIDPOINT)]
+++
prec 10
(expectP (Ident "VkChromaLocation") >>
(VkChromaLocation <$> step readPrec)))
pattern VK_CHROMA_LOCATION_COSITED_EVEN :: VkChromaLocation
pattern VK_CHROMA_LOCATION_COSITED_EVEN = VkChromaLocation 0
pattern VK_CHROMA_LOCATION_MIDPOINT :: VkChromaLocation
pattern VK_CHROMA_LOCATION_MIDPOINT = VkChromaLocation 1
newtype VkChromaLocationKHR = VkChromaLocationKHR VkFlags
deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits, FiniteBits,
Storable, Real, Data, Generic)
instance Show VkChromaLocationKHR where
{-# INLINE show #-}
show (VkChromaLocationKHR x) = show x
instance Read VkChromaLocationKHR where
{-# INLINE readsPrec #-}
readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)