{-# LANGUAGE MultiParamTypeClasses #-} module Language.SpirV.MemoryModel where import Data.Word (Word32) import Language.SpirV.SpirEnum import qualified Language.SpirV.Capability as Capability -- | data MemoryModel = Simple | GLSL450 | OpenCL deriving(Read, Show, Eq, Ord) instance SpirEnum MemoryModel Word32 where toWord Simple = 0 toWord GLSL450 = 1 toWord OpenCL = 2 fromWord 0 = Just Simple fromWord 1 = Just GLSL450 fromWord 2 = Just OpenCL fromWord _ = Nothing requiredCapabilities Simple = [Capability.Shader] requiredCapabilities GLSL450 = [Capability.Shader] requiredCapabilities OpenCL = [Capability.Kernel]