packages feed

spirv-enum-0.1.0.0: src/Data/SpirV/Enum/ExecutionModel.hs

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TypeSynonymInstances #-}

module Data.SpirV.Enum.ExecutionModel where

import Data.Int (Int32)
import Foreign.Storable (Storable)

newtype ExecutionModel = ExecutionModel Int32
  deriving newtype (Eq, Ord, Storable)

instance Show ExecutionModel where
  showsPrec p (ExecutionModel v) = case v of
    0 -> showString "Vertex"
    1 -> showString "TessellationControl"
    2 -> showString "TessellationEvaluation"
    3 -> showString "Geometry"
    4 -> showString "Fragment"
    5 -> showString "GLCompute"
    6 -> showString "Kernel"
    5267 -> showString "TaskNV"
    5268 -> showString "MeshNV"
    5313 -> showString "RayGenerationKHR"
    5314 -> showString "IntersectionKHR"
    5315 -> showString "AnyHitKHR"
    5316 -> showString "ClosestHitKHR"
    5317 -> showString "MissKHR"
    5318 -> showString "CallableKHR"
    5364 -> showString "TaskEXT"
    5365 -> showString "MeshEXT"
    x -> showParen (p > 10) $ showString "ExecutionModel " . showsPrec (p + 1) x

pattern Vertex :: ExecutionModel
pattern Vertex = ExecutionModel 0

pattern TessellationControl :: ExecutionModel
pattern TessellationControl = ExecutionModel 1

pattern TessellationEvaluation :: ExecutionModel
pattern TessellationEvaluation = ExecutionModel 2

pattern Geometry :: ExecutionModel
pattern Geometry = ExecutionModel 3

pattern Fragment :: ExecutionModel
pattern Fragment = ExecutionModel 4

pattern GLCompute :: ExecutionModel
pattern GLCompute = ExecutionModel 5

pattern Kernel :: ExecutionModel
pattern Kernel = ExecutionModel 6

pattern TaskNV :: ExecutionModel
pattern TaskNV = ExecutionModel 5267

pattern MeshNV :: ExecutionModel
pattern MeshNV = ExecutionModel 5268

pattern RayGenerationKHR :: ExecutionModel
pattern RayGenerationKHR = ExecutionModel 5313

pattern RayGenerationNV :: ExecutionModel
pattern RayGenerationNV = ExecutionModel 5313

pattern IntersectionKHR :: ExecutionModel
pattern IntersectionKHR = ExecutionModel 5314

pattern IntersectionNV :: ExecutionModel
pattern IntersectionNV = ExecutionModel 5314

pattern AnyHitKHR :: ExecutionModel
pattern AnyHitKHR = ExecutionModel 5315

pattern AnyHitNV :: ExecutionModel
pattern AnyHitNV = ExecutionModel 5315

pattern ClosestHitKHR :: ExecutionModel
pattern ClosestHitKHR = ExecutionModel 5316

pattern ClosestHitNV :: ExecutionModel
pattern ClosestHitNV = ExecutionModel 5316

pattern MissKHR :: ExecutionModel
pattern MissKHR = ExecutionModel 5317

pattern MissNV :: ExecutionModel
pattern MissNV = ExecutionModel 5317

pattern CallableKHR :: ExecutionModel
pattern CallableKHR = ExecutionModel 5318

pattern CallableNV :: ExecutionModel
pattern CallableNV = ExecutionModel 5318

pattern TaskEXT :: ExecutionModel
pattern TaskEXT = ExecutionModel 5364

pattern MeshEXT :: ExecutionModel
pattern MeshEXT = ExecutionModel 5365