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

Engine.Vulkan.Pipeline.Graphics

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 where ... Source #

Equations

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 #

pushPlaceholder :: PushConstantRange Source #

data Stages a Source #

Constructors

Stages 

Fields

  • vert :: a

    vertex

  • tesc :: a

    tessellation control

  • tese :: a

    tessellation evaluation

  • geom :: a

    geometry

  • frag :: a

    fragment

Instances

Instances details
Foldable Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

fold :: Monoid m => Stages m -> m #

foldMap :: Monoid m => (a -> m) -> Stages a -> m #

foldMap' :: Monoid m => (a -> m) -> Stages a -> m #

foldr :: (a -> b -> b) -> b -> Stages a -> b #

foldr' :: (a -> b -> b) -> b -> Stages a -> b #

foldl :: (b -> a -> b) -> b -> Stages a -> b #

foldl' :: (b -> a -> b) -> b -> Stages a -> b #

foldr1 :: (a -> a -> a) -> Stages a -> a #

foldl1 :: (a -> a -> a) -> Stages a -> a #

toList :: Stages a -> [a] #

null :: Stages a -> Bool #

length :: Stages a -> Int #

elem :: Eq a => a -> Stages a -> Bool #

maximum :: Ord a => Stages a -> a #

minimum :: Ord a => Stages a -> a #

sum :: Num a => Stages a -> a #

product :: Num a => Stages a -> a #

Traversable Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

traverse :: Applicative f => (a -> f b) -> Stages a -> f (Stages b) #

sequenceA :: Applicative f => Stages (f a) -> f (Stages a) #

mapM :: Monad m => (a -> m b) -> Stages a -> m (Stages b) #

sequence :: Monad m => Stages (m a) -> m (Stages a) #

Applicative Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

pure :: a -> Stages a #

(<*>) :: Stages (a -> b) -> Stages a -> Stages b #

liftA2 :: (a -> b -> c) -> Stages a -> Stages b -> Stages c #

(*>) :: Stages a -> Stages b -> Stages b #

(<*) :: Stages a -> Stages b -> Stages a #

Functor Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

fmap :: (a -> b) -> Stages a -> Stages b #

(<$) :: a -> Stages b -> Stages a #

StageInfo Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

stageNames :: IsString label => Stages label Source #

stageFlagBits :: Stages ShaderStageFlagBits Source #

Show a => Show (Stages a) Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

showsPrec :: Int -> Stages a -> ShowS #

show :: Stages a -> String #

showList :: [Stages a] -> ShowS #

Eq a => Eq (Stages a) Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

(==) :: Stages a -> Stages a -> Bool #

(/=) :: Stages a -> Stages a -> Bool #

Ord a => Ord (Stages a) Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

compare :: Stages a -> Stages a -> Ordering #

(<) :: Stages a -> Stages a -> Bool #

(<=) :: Stages a -> Stages a -> Bool #

(>) :: Stages a -> Stages a -> Bool #

(>=) :: Stages a -> Stages a -> Bool #

max :: Stages a -> Stages a -> Stages a #

min :: Stages a -> Stages a -> Stages a #

Generic1 Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Associated Types

type Rep1 Stages :: k -> Type #

Methods

from1 :: forall (a :: k). Stages a -> Rep1 Stages a #

to1 :: forall (a :: k). Rep1 Stages a -> Stages a #

type Rep1 Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

stageNames :: (StageInfo t, IsString label) => t label Source #

stageFlagBits :: StageInfo t => t ShaderStageFlagBits Source #

basicStages :: ("vert" ::: a) -> ("frag" ::: a) -> Stages (Maybe a) Source #

vertexOnly :: ("vert" ::: a) -> Stages (Maybe a) Source #

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

Constructors

Pipeline 

Fields

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 #

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 #