Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Config (dsl :: [Type]) vertices instances spec = Config {
- cStages :: StageSpirv
- cReflect :: Maybe StageReflect
- cVertexInput :: SomeStruct PipelineVertexInputStateCreateInfo
- cDescLayouts :: Tagged dsl [DsBindings]
- cPushConstantRanges :: Vector PushConstantRange
- cBlend :: Bool
- cDepthWrite :: Bool
- cDepthTest :: Bool
- cDepthCompare :: CompareOp
- cTopology :: PrimitiveTopology
- cCull :: CullModeFlagBits
- cDepthBias :: Maybe ("constant" ::: Float, "slope" ::: Float)
- cSpecialization :: spec
- baseConfig :: Config '[] vertices instances ()
- type family Configure pipeline where ...
- type family Specialization pipeline
- vertexInput :: [(VertexInputRate, [Format])] -> SomeStruct PipelineVertexInputStateCreateInfo
- formatSize :: Integral a => Format -> a
- pushPlaceholder :: PushConstantRange
- data Stages a = Stages {}
- stageNames :: (StageInfo t, IsString label) => t label
- stageFlagBits :: StageInfo t => t ShaderStageFlagBits
- basicStages :: ("vert" ::: a) -> ("frag" ::: a) -> Stages (Maybe a)
- vertexOnly :: ("vert" ::: a) -> Stages (Maybe a)
- type StageCode = Stages (Maybe Code)
- type StageSpirv = Stages (Maybe ByteString)
- type StageReflect = Reflect Stages
- data Pipeline (dsl :: [Type]) vertices instances = Pipeline {
- pipeline :: Pipeline
- pLayout :: Tagged dsl PipelineLayout
- pDescLayouts :: Tagged dsl DsLayouts
- allocate :: (config ~ Configure pipeline, pipeline ~ Pipeline dsl vertices instances, spec ~ Specialization pipeline, Specialization spec, HasCallStack, MonadVulkan env m, MonadResource m, HasRenderPass renderpass) => Maybe Extent2D -> SampleCountFlagBits -> Config dsl vertices instances spec -> renderpass -> m (ReleaseKey, pipeline)
- 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)
- destroy :: (MonadIO io, HasVulkan ctx) => ctx -> Pipeline dsl vertices instances -> io ()
- bind :: (Compatible pipeLayout boundLayout, MonadIO m) => CommandBuffer -> Pipeline pipeLayout vertices instances -> Bound boundLayout vertices instances m () -> Bound boundLayout oldVertices oldInstances m ()
Documentation
data Config (dsl :: [Type]) vertices instances spec Source #
Config | |
|
baseConfig :: Config '[] vertices instances () Source #
Settings for generic triangle-rendering pipeline.
type family Configure pipeline where ... Source #
Configure (Pipeline dsl vertices instances) = Config dsl vertices instances (Specialization (Pipeline dsl vertices instances)) |
type family Specialization pipeline Source #
vertexInput :: [(VertexInputRate, [Format])] -> SomeStruct PipelineVertexInputStateCreateInfo Source #
formatSize :: Integral a => Format -> a Source #
Instances
stageNames :: (StageInfo t, IsString label) => t label Source #
stageFlagBits :: StageInfo t => t ShaderStageFlagBits Source #
type StageSpirv = Stages (Maybe ByteString) Source #
type StageReflect = Reflect Stages Source #
data Pipeline (dsl :: [Type]) vertices instances Source #
Pipeline | |
|
allocate :: (config ~ Configure pipeline, pipeline ~ Pipeline dsl vertices instances, spec ~ Specialization pipeline, Specialization spec, HasCallStack, MonadVulkan env m, MonadResource m, HasRenderPass renderpass) => Maybe Extent2D -> SampleCountFlagBits -> Config dsl vertices instances spec -> renderpass -> m (ReleaseKey, pipeline) 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 #
bind :: (Compatible pipeLayout boundLayout, MonadIO m) => CommandBuffer -> Pipeline pipeLayout vertices instances -> Bound boundLayout vertices instances m () -> Bound boundLayout oldVertices oldInstances m () Source #