packages feed

spirv-reflect-types-0.4: lib/Data/SpirV/Reflect/SpecializationConstant.hs

module Data.SpirV.Reflect.SpecializationConstant
  ( SpecializationConstant(..)
  ) where

import Data.Text (Text)
import Data.Vector (Vector)
import Data.Word (Word32)
import GHC.Generics (Generic)

import Data.SpirV.Reflect.TypeDescription (TypeDescription)

data SpecializationConstant = SpecializationConstant
  { spirv_id         :: Maybe Word32
  , constant_id      :: Word32
  , name             :: Maybe Text
  , type_description :: Maybe TypeDescription
  , default_value    :: Vector Word32
    -- ^ Raw default value, as 32-bit words with the low-order word first
    -- (the C @default_value_size@ in bytes equals @4 * length default_value@).
    -- Interpret the bit pattern according to 'type_description'. Booleans use
    -- a single word: @1@ for true, @0@ for false.
  }
  deriving (Eq, Show, Generic)