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

Engine.Vulkan.Pipeline.External

Documentation

type Process config = Timed () config Source #

spawn :: (Foldable stages, MonadUnliftIO m, MonadReader env m, HasLogFunc env) => (stages (Maybe FilePath) -> m stuff) -> Text -> stages (Maybe FilePath) -> (stuff -> config) -> m (Process config) Source #

spawnReflect :: (MonadUnliftIO m, MonadReader env m, HasLogFunc env, StageInfo stages) => Text -> stages (Maybe FilePath) -> ((stages (Maybe ByteString), Reflect stages) -> config) -> m (Process config) Source #

loadConfig :: (Traversable stages, MonadIO io) => stages (Maybe FilePath) -> io (stages (Maybe ByteString)) Source #

loadConfigReflect :: (StageInfo stages, MonadIO io, MonadReader env io, HasLogFunc env) => stages (Maybe FilePath) -> io (stages (Maybe ByteString), Reflect stages) Source #

type Observer pipeline = ObserverIO (ReleaseKey, pipeline) Source #

newObserverGraphics :: (pipeline ~ Pipeline dsl vertices instances, HasOutput worker, Specialization (Specialization pipeline), HasRenderPass renderpass, GetOutput worker ~ Configure pipeline) => renderpass -> SampleCountFlagBits -> worker -> ResourceT (StageRIO rs) (Observer pipeline) Source #

observeGraphics :: (HasRenderPass renderpass, HasOutput output, GetOutput output ~ Configure pipeline, pipeline ~ Pipeline dsl vertices instances, spec ~ Specialization pipeline, Specialization spec) => renderpass -> SampleCountFlagBits -> Tagged dsl [DsBindings] -> output -> ObserverIO (ReleaseKey, pipeline) -> StageFrameRIO rp p fr rs () Source #

newObserverCompute :: (config ~ Configure pipeline (), pipeline ~ Pipeline dsl Compute Compute) => Process config -> ResourceT (StageRIO rs) (Observer pipeline) Source #

observeCompute :: (HasOutput output, GetOutput output ~ config, Specialization spec, config ~ Configure pipeline spec, pipeline ~ Pipeline dsl Compute Compute) => Tagged dsl [DsBindings] -> output -> ObserverIO (ReleaseKey, pipeline) -> StageFrameRIO rp p fr rs () Source #

type family f ^ p where ... Source #

Equations

Identity ^ p = p 
ConfigureGraphics ^ p = Process (Configure p) 
ConfigureCompute ^ p = Process (Configure p ()) 
Observers ^ p = Observer p 
f ^ p = f p 

observeField :: forall pf p renderpass dsl s vs is rps ps fr rs. (p ~ Pipeline s vs is, Specialization (Specialization p), HasRenderPass renderpass) => renderpass -> SampleCountFlagBits -> Tagged dsl DsBindings -> pf ConfigureGraphics -> pf Observers -> (forall a. pf a -> a ^ p) -> StageFrameRIO rps ps fr rs () Source #

dumpPipelines :: StageInfo t => MonadIO io => FilePath -> Map Text (t (Maybe Code)) -> io () Source #