module Language.SpirV.SamplerAddressingMode where
import Data.Word (Word32)
import Language.SpirV.SpirEnum
import qualified Language.SpirV.Capability as Capability
data SamplerAddressingMode =
None
| ClampToEdge
| Clamp
| Repeat
| RepeatMirrored
deriving(Read, Show, Eq, Ord)
instance SpirEnum SamplerAddressingMode Word32 where
toWord None = 0
toWord ClampToEdge = 1
toWord Clamp = 2
toWord Repeat = 3
toWord RepeatMirrored = 4
fromWord 0 = Just None
fromWord 1 = Just ClampToEdge
fromWord 2 = Just Clamp
fromWord 3 = Just Repeat
fromWord 4 = Just RepeatMirrored
fromWord _ = Nothing
requiredCapabilities None = [Capability.Kernel]
requiredCapabilities ClampToEdge = [Capability.Kernel]
requiredCapabilities Clamp = [Capability.Kernel]
requiredCapabilities Repeat = [Capability.Kernel]
requiredCapabilities RepeatMirrored = [Capability.Kernel]