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