{-# LANGUAGE MultiParamTypeClasses #-} 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 _ = []