module Language.SpirV.Dim where
import Data.Word (Word32)
import Language.SpirV.SpirEnum
import qualified Language.SpirV.Capability as Capability
data Dim = OneD
| TwoD
| ThreeD
| Cube
| Rect
| Buffer
deriving(Read, Show, Eq, Ord)
instance SpirEnum Dim Word32 where
toWord OneD = 0
toWord TwoD = 1
toWord ThreeD = 2
toWord Cube = 3
toWord Rect = 4
toWord Buffer = 5
fromWord 0 = Just OneD
fromWord 1 = Just TwoD
fromWord 2 = Just ThreeD
fromWord 3 = Just Cube
fromWord 4 = Just Rect
fromWord 5 = Just Buffer
fromWord _ = Nothing
requiredCapabilities Cube = [Capability.Shader]
requiredCapabilities Rect = [Capability.Shader]
requiredCapabilities _ = []