module Data.SpirV.Reflect.Enums.ShaderStage where import Control.Monad (guard) import Data.SpirV.Reflect.Enums.Common type ShaderStage = ShaderStageFlagBits newtype ShaderStageFlagBits = ShaderStageFlagBits Flags deriving newtype (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool) -> Eq ShaderStageFlagBits forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool $c/= :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool == :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool $c== :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool Eq, Eq ShaderStageFlagBits Eq ShaderStageFlagBits -> (ShaderStageFlagBits -> ShaderStageFlagBits -> Ordering) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> Bool) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits) -> Ord ShaderStageFlagBits ShaderStageFlagBits -> ShaderStageFlagBits -> Bool ShaderStageFlagBits -> ShaderStageFlagBits -> Ordering ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits 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 :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits $cmin :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits max :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits $cmax :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits >= :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool $c>= :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool > :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool $c> :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool <= :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool $c<= :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool < :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool $c< :: ShaderStageFlagBits -> ShaderStageFlagBits -> Bool compare :: ShaderStageFlagBits -> ShaderStageFlagBits -> Ordering $ccompare :: ShaderStageFlagBits -> ShaderStageFlagBits -> Ordering $cp1Ord :: Eq ShaderStageFlagBits Ord, Int -> ShaderStageFlagBits -> ShowS [ShaderStageFlagBits] -> ShowS ShaderStageFlagBits -> String (Int -> ShaderStageFlagBits -> ShowS) -> (ShaderStageFlagBits -> String) -> ([ShaderStageFlagBits] -> ShowS) -> Show ShaderStageFlagBits forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ShaderStageFlagBits] -> ShowS $cshowList :: [ShaderStageFlagBits] -> ShowS show :: ShaderStageFlagBits -> String $cshow :: ShaderStageFlagBits -> String showsPrec :: Int -> ShaderStageFlagBits -> ShowS $cshowsPrec :: Int -> ShaderStageFlagBits -> ShowS Show, Eq ShaderStageFlagBits ShaderStageFlagBits Eq ShaderStageFlagBits -> (ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> ShaderStageFlagBits -> (Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> Bool) -> (ShaderStageFlagBits -> Maybe Int) -> (ShaderStageFlagBits -> Int) -> (ShaderStageFlagBits -> Bool) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int -> ShaderStageFlagBits) -> (ShaderStageFlagBits -> Int) -> Bits ShaderStageFlagBits Int -> ShaderStageFlagBits ShaderStageFlagBits -> Bool ShaderStageFlagBits -> Int ShaderStageFlagBits -> Maybe Int ShaderStageFlagBits -> ShaderStageFlagBits ShaderStageFlagBits -> Int -> Bool ShaderStageFlagBits -> Int -> ShaderStageFlagBits ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits 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 :: ShaderStageFlagBits -> Int $cpopCount :: ShaderStageFlagBits -> Int rotateR :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $crotateR :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits rotateL :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $crotateL :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits unsafeShiftR :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $cunsafeShiftR :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits shiftR :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $cshiftR :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits unsafeShiftL :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $cunsafeShiftL :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits shiftL :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $cshiftL :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits isSigned :: ShaderStageFlagBits -> Bool $cisSigned :: ShaderStageFlagBits -> Bool bitSize :: ShaderStageFlagBits -> Int $cbitSize :: ShaderStageFlagBits -> Int bitSizeMaybe :: ShaderStageFlagBits -> Maybe Int $cbitSizeMaybe :: ShaderStageFlagBits -> Maybe Int testBit :: ShaderStageFlagBits -> Int -> Bool $ctestBit :: ShaderStageFlagBits -> Int -> Bool complementBit :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $ccomplementBit :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits clearBit :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $cclearBit :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits setBit :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $csetBit :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits bit :: Int -> ShaderStageFlagBits $cbit :: Int -> ShaderStageFlagBits zeroBits :: ShaderStageFlagBits $czeroBits :: ShaderStageFlagBits rotate :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $crotate :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits shift :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits $cshift :: ShaderStageFlagBits -> Int -> ShaderStageFlagBits complement :: ShaderStageFlagBits -> ShaderStageFlagBits $ccomplement :: ShaderStageFlagBits -> ShaderStageFlagBits xor :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits $cxor :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits .|. :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits $c.|. :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits .&. :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits $c.&. :: ShaderStageFlagBits -> ShaderStageFlagBits -> ShaderStageFlagBits $cp1Bits :: Eq ShaderStageFlagBits Bits, Bits ShaderStageFlagBits Bits ShaderStageFlagBits -> (ShaderStageFlagBits -> Int) -> (ShaderStageFlagBits -> Int) -> (ShaderStageFlagBits -> Int) -> FiniteBits ShaderStageFlagBits ShaderStageFlagBits -> Int forall b. Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b countTrailingZeros :: ShaderStageFlagBits -> Int $ccountTrailingZeros :: ShaderStageFlagBits -> Int countLeadingZeros :: ShaderStageFlagBits -> Int $ccountLeadingZeros :: ShaderStageFlagBits -> Int finiteBitSize :: ShaderStageFlagBits -> Int $cfiniteBitSize :: ShaderStageFlagBits -> Int $cp1FiniteBits :: Bits ShaderStageFlagBits FiniteBits) pattern SHADER_STAGE_VERTEX_BIT :: ShaderStageFlagBits pattern $bSHADER_STAGE_VERTEX_BIT :: ShaderStageFlagBits $mSHADER_STAGE_VERTEX_BIT :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_VERTEX_BIT = ShaderStageFlagBits 0x00000001 pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT :: ShaderStageFlagBits pattern $bSHADER_STAGE_TESSELLATION_CONTROL_BIT :: ShaderStageFlagBits $mSHADER_STAGE_TESSELLATION_CONTROL_BIT :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_TESSELLATION_CONTROL_BIT = ShaderStageFlagBits 0x00000002 pattern SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: ShaderStageFlagBits pattern $bSHADER_STAGE_TESSELLATION_EVALUATION_BIT :: ShaderStageFlagBits $mSHADER_STAGE_TESSELLATION_EVALUATION_BIT :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_TESSELLATION_EVALUATION_BIT = ShaderStageFlagBits 0x00000004 pattern SHADER_STAGE_GEOMETRY_BIT :: ShaderStageFlagBits pattern $bSHADER_STAGE_GEOMETRY_BIT :: ShaderStageFlagBits $mSHADER_STAGE_GEOMETRY_BIT :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_GEOMETRY_BIT = ShaderStageFlagBits 0x00000008 pattern SHADER_STAGE_FRAGMENT_BIT :: ShaderStageFlagBits pattern $bSHADER_STAGE_FRAGMENT_BIT :: ShaderStageFlagBits $mSHADER_STAGE_FRAGMENT_BIT :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_FRAGMENT_BIT = ShaderStageFlagBits 0x00000010 pattern SHADER_STAGE_COMPUTE_BIT :: ShaderStageFlagBits pattern $bSHADER_STAGE_COMPUTE_BIT :: ShaderStageFlagBits $mSHADER_STAGE_COMPUTE_BIT :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_COMPUTE_BIT = ShaderStageFlagBits 0x00000020 pattern SHADER_STAGE_TASK_BIT_NV :: ShaderStageFlagBits pattern $bSHADER_STAGE_TASK_BIT_NV :: ShaderStageFlagBits $mSHADER_STAGE_TASK_BIT_NV :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_TASK_BIT_NV = ShaderStageFlagBits 0x00000040 pattern SHADER_STAGE_MESH_BIT_NV :: ShaderStageFlagBits pattern $bSHADER_STAGE_MESH_BIT_NV :: ShaderStageFlagBits $mSHADER_STAGE_MESH_BIT_NV :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_MESH_BIT_NV = ShaderStageFlagBits 0x00000080 pattern SHADER_STAGE_RAYGEN_BIT_KHR :: ShaderStageFlagBits pattern $bSHADER_STAGE_RAYGEN_BIT_KHR :: ShaderStageFlagBits $mSHADER_STAGE_RAYGEN_BIT_KHR :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_RAYGEN_BIT_KHR = ShaderStageFlagBits 0x00000100 pattern SHADER_STAGE_ANY_HIT_BIT_KHR :: ShaderStageFlagBits pattern $bSHADER_STAGE_ANY_HIT_BIT_KHR :: ShaderStageFlagBits $mSHADER_STAGE_ANY_HIT_BIT_KHR :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_ANY_HIT_BIT_KHR = ShaderStageFlagBits 0x00000200 pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR :: ShaderStageFlagBits pattern $bSHADER_STAGE_CLOSEST_HIT_BIT_KHR :: ShaderStageFlagBits $mSHADER_STAGE_CLOSEST_HIT_BIT_KHR :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_CLOSEST_HIT_BIT_KHR = ShaderStageFlagBits 0x00000400 pattern SHADER_STAGE_MISS_BIT_KHR :: ShaderStageFlagBits pattern $bSHADER_STAGE_MISS_BIT_KHR :: ShaderStageFlagBits $mSHADER_STAGE_MISS_BIT_KHR :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_MISS_BIT_KHR = ShaderStageFlagBits 0x00000800 pattern SHADER_STAGE_INTERSECTION_BIT_KHR :: ShaderStageFlagBits pattern $bSHADER_STAGE_INTERSECTION_BIT_KHR :: ShaderStageFlagBits $mSHADER_STAGE_INTERSECTION_BIT_KHR :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_INTERSECTION_BIT_KHR = ShaderStageFlagBits 0x00001000 pattern SHADER_STAGE_CALLABLE_BIT_KHR :: ShaderStageFlagBits pattern $bSHADER_STAGE_CALLABLE_BIT_KHR :: ShaderStageFlagBits $mSHADER_STAGE_CALLABLE_BIT_KHR :: forall r. ShaderStageFlagBits -> (Void# -> r) -> (Void# -> r) -> r SHADER_STAGE_CALLABLE_BIT_KHR = ShaderStageFlagBits 0x00002000 names :: IsString label => ShaderStageFlagBits -> [label] names :: ShaderStageFlagBits -> [label] names ShaderStageFlagBits bits = do (ShaderStageFlagBits flag, label name) <- [(ShaderStageFlagBits, label)] forall label. IsString label => [(ShaderStageFlagBits, label)] bitNames Bool -> [()] forall (f :: * -> *). Alternative f => Bool -> f () guard (Bool -> [()]) -> Bool -> [()] forall a b. (a -> b) -> a -> b $ ShaderStageFlagBits bits ShaderStageFlagBits -> ShaderStageFlagBits -> Bool forall a. Bits a => a -> a -> Bool .&&. ShaderStageFlagBits flag pure label name bitNames :: IsString label => [(ShaderStageFlagBits, label)] bitNames :: [(ShaderStageFlagBits, label)] bitNames = [ (ShaderStageFlagBits SHADER_STAGE_VERTEX_BIT, label "VERTEX") , (ShaderStageFlagBits SHADER_STAGE_TESSELLATION_CONTROL_BIT, label "TESSELLATION_CONTROL") , (ShaderStageFlagBits SHADER_STAGE_TESSELLATION_EVALUATION_BIT, label "TESSELLATION_EVALUATION") , (ShaderStageFlagBits SHADER_STAGE_GEOMETRY_BIT, label "GEOMETRY") , (ShaderStageFlagBits SHADER_STAGE_FRAGMENT_BIT, label "FRAGMENT") , (ShaderStageFlagBits SHADER_STAGE_COMPUTE_BIT, label "COMPUTE") , (ShaderStageFlagBits SHADER_STAGE_TASK_BIT_NV, label "TASK") , (ShaderStageFlagBits SHADER_STAGE_MESH_BIT_NV, label "MESH") , (ShaderStageFlagBits SHADER_STAGE_RAYGEN_BIT_KHR, label "RAYGEN") , (ShaderStageFlagBits SHADER_STAGE_ANY_HIT_BIT_KHR, label "ANY_HIT") , (ShaderStageFlagBits SHADER_STAGE_CLOSEST_HIT_BIT_KHR, label "CLOSEST_HIT") , (ShaderStageFlagBits SHADER_STAGE_MISS_BIT_KHR, label "MISS") , (ShaderStageFlagBits SHADER_STAGE_INTERSECTION_BIT_KHR, label "INTERSECTION") , (ShaderStageFlagBits SHADER_STAGE_CALLABLE_BIT_KHR, label "CALLABLE") ]