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 [DsLayoutBindings]
- 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 :: forall a pipeLayout vertices instances. (a ~ Pipeline pipeLayout vertices instances, HasVertexInputBindings vertices, HasVertexInputBindings instances) => 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 :: (MonadVulkan env io, HasRenderPass renderpass, Specialization spec, HasCallStack) => Maybe Extent2D -> SampleCountFlagBits -> renderpass -> Config dsl vertices instances spec -> io (Pipeline dsl vertices instances)
- bind :: (Compatible pipeLayout boundLayout, MonadIO m) => CommandBuffer -> Pipeline pipeLayout vertices instances -> Bound boundLayout vertices instances m () -> Bound boundLayout oldVertices oldInstances m ()
- class HasVertexInputBindings a where
- vertexInputBindings :: [VertexInputBinding]
- vertexFormat :: forall a. HasVkFormat a => VertexInputBinding
- instanceFormat :: forall a. HasVkFormat a => VertexInputBinding
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 :: forall a pipeLayout vertices instances. (a ~ Pipeline pipeLayout vertices instances, HasVertexInputBindings vertices, HasVertexInputBindings instances) => 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 :: (MonadVulkan env io, HasRenderPass renderpass, Specialization spec, HasCallStack) => 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 #
class HasVertexInputBindings a where Source #
vertexInputBindings :: [VertexInputBinding] Source #
Instances
HasVertexInputBindings Transform Source # | |
Defined in Engine.Vulkan.Pipeline.Graphics vertexInputBindings :: [VertexInputBinding] Source # | |
HasVertexInputBindings () Source # | |
Defined in Engine.Vulkan.Pipeline.Graphics vertexInputBindings :: [VertexInputBinding] Source # | |
(HasVkFormat pos, HasVkFormat attrs) => HasVertexInputBindings (Vertex pos attrs) Source # | |
Defined in Resource.Model vertexInputBindings :: [VertexInputBinding] Source # |
vertexFormat :: forall a. HasVkFormat a => VertexInputBinding Source #
instanceFormat :: forall a. HasVkFormat a => VertexInputBinding Source #