keid-core-0.1.7.1: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Engine.SpirV.Reflect

Synopsis

Documentation

invoke :: MonadIO m => FilePath -> m Module Source #

data Reflect stages Source #

Instances

Instances details
Show (StageInterface stages) => Show (Reflect stages) Source # 
Instance details

Defined in Engine.SpirV.Reflect

Methods

showsPrec :: Int -> Reflect stages -> ShowS #

show :: Reflect stages -> String #

showList :: [Reflect stages] -> ShowS #

Eq (StageInterface stages) => Eq (Reflect stages) Source # 
Instance details

Defined in Engine.SpirV.Reflect

Methods

(==) :: Reflect stages -> Reflect stages -> Bool #

(/=) :: Reflect stages -> Reflect stages -> Bool #

type BindMap a = IntMap (IntMap a) Source #

layout(set=X, binding=Y) ...

type InterfaceBinds = IntMap InterfaceBinding Source #

@layout(location=N)

Block variables

type BlockBinding = (Text, DescriptorType, Maybe (Tree ([Maybe Text], BlockSignature))) Source #

uniform Foo { ... } foo;

stagesBindMap :: (MonadIO m, MonadReader env m, HasLogFunc env, StageInfo stages) => stages (Maybe Module) -> m (BindMap BlockBinding) Source #

blockTree :: [Maybe Text] -> BlockVariable -> Tree ([Maybe Text], BlockSignature) Source #

bindMapUnionWith :: (a -> a -> Bool) -> BindMap a -> BindMap a -> Either (Int, Int, a, a) (BindMap a) Source #

Interface variables

stagesInterfaceMap :: (MonadIO m, Traversable stages) => stages (Maybe Module) -> m (StageInterface stages) Source #

interfaceBinds :: StorageClass -> Vector InterfaceVariable -> InterfaceBinds Source #

type CompatibleInterfaces label = (label, label, IntMap ([Text], Matching (Maybe Text))) Source #

type Matching a = Either (a, a) a Source #