keid-core-0.1.6.0: Core parts of Keid engine.
Safe HaskellNone
LanguageHaskell2010

Engine.Vulkan.Pipeline

Synopsis

Documentation

data Config (dsl :: [Type]) vertices instances spec Source #

Constructors

Config 

Fields

baseConfig :: Config '[] vertices instances () Source #

Settings for generic triangle-rendering pipeline.

type family Configure pipeline spec where ... Source #

Equations

Configure (Pipeline dsl vertices instances) spec = Config dsl vertices instances spec 

data Pipeline (dsl :: [Type]) vertices instances Source #

Constructors

Pipeline 

Fields

allocate :: (MonadVulkan env m, MonadResource m, HasRenderPass renderpass, Specialization spec, HasCallStack) => Maybe Extent2D -> SampleCountFlagBits -> Config dsl vertices instances spec -> renderpass -> m (ReleaseKey, Pipeline dsl vertices instances) Source #

create :: (MonadUnliftIO io, HasVulkan ctx, HasRenderPass renderpass, Specialization spec, HasCallStack) => ctx -> Maybe Extent2D -> SampleCountFlagBits -> renderpass -> Config dsl vertices instances spec -> io (Pipeline dsl vertices instances) Source #

destroy :: (MonadIO io, HasVulkan ctx) => ctx -> Pipeline dsl vertices instances -> io () Source #

bind :: (Compatible pipeLayout boundLayout, MonadIO m) => CommandBuffer -> Pipeline pipeLayout vertices instances -> Bound boundLayout vertices instances m () -> Bound boundLayout oldVertices oldInstances m () Source #

pushPlaceholder :: PushConstantRange Source #

vertexInput :: [(VertexInputRate, [Format])] -> SomeStruct PipelineVertexInputStateCreateInfo Source #

attrBindings :: [[Format]] -> Vector VertexInputAttributeDescription Source #

formatSize :: Integral a => Format -> a Source #