keid-core-0.1.9.0: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageGHC2021

Engine.Vulkan.Pipeline.Graphics

Synopsis

Documentation

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 :: forall a pipeLayout vertices instances. (a ~ Pipeline pipeLayout vertices instances, HasVertexInputBindings vertices, HasVertexInputBindings instances) => SomeStruct PipelineVertexInputStateCreateInfo 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

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 #

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 #

type Rep1 Stages Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

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

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

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

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

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 #

Methods

vertexInputBindings :: [VertexInputBinding] Source #

Instances

Instances details
HasVertexInputBindings Transform Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

vertexInputBindings :: [VertexInputBinding] Source #

HasVertexInputBindings () Source # 
Instance details

Defined in Engine.Vulkan.Pipeline.Graphics

Methods

vertexInputBindings :: [VertexInputBinding] Source #

(HasVkFormat pos, HasVkFormat attrs) => HasVertexInputBindings (Vertex pos attrs :: Type) Source # 
Instance details

Defined in Resource.Model

Methods

vertexInputBindings :: [VertexInputBinding] Source #

vertexFormat :: forall a. HasVkFormat a => VertexInputBinding Source #

instanceFormat :: forall a. HasVkFormat a => VertexInputBinding Source #