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

Engine.Vulkan.Types

Synopsis

Documentation

type MonadVulkan env m = (MonadUnliftIO m, MonadReader env m, HasVulkan env) Source #

class HasVulkan a where Source #

A class for Monads which can provide some Vulkan handles

class RenderPass a where Source #

Minimal complete definition

refcountRenderpass

Methods

updateRenderpass :: (HasLogFunc env, HasSwapchain swapchain, HasVulkan env, MonadResource (RIO env)) => swapchain -> a -> RIO env a Source #

refcountRenderpass :: MonadResource (RIO env) => a -> RIO env () Source #

Instances

Instances details
RenderPass NoRenderPass Source # 
Instance details

Defined in Engine.Stage.Component

RenderPass Offscreen Source # 
Instance details

Defined in Render.Pass.Offscreen

Methods

updateRenderpass :: (HasLogFunc env, HasSwapchain swapchain, HasVulkan env, MonadResource (RIO env)) => swapchain -> Offscreen -> RIO env Offscreen Source #

refcountRenderpass :: MonadResource (RIO env) => Offscreen -> RIO env () Source #

data Queues q Source #

The shape of all the queues we use for our program, parameterized over the queue type so we can use it with assignQueues.

Constructors

Queues 

Fields

Instances

Instances details
Foldable Queues Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

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

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

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

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

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

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

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

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

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

toList :: Queues a -> [a] #

null :: Queues a -> Bool #

length :: Queues a -> Int #

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

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

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

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

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

Traversable Queues Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

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

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

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

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

Functor Queues Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

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

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

Show q => Show (Queues q) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

showsPrec :: Int -> Queues q -> ShowS #

show :: Queues q -> String #

showList :: [Queues q] -> ShowS #

newtype Bound (dsl :: [Type]) vertices instances m a Source #

Constructors

Bound (m a) 

Instances

Instances details
MonadIO m => MonadIO (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

liftIO :: IO a -> Bound dsl vertices instances m a #

Foldable m => Foldable (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

fold :: Monoid m0 => Bound dsl vertices instances m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> Bound dsl vertices instances m a -> m0 #

foldMap' :: Monoid m0 => (a -> m0) -> Bound dsl vertices instances m a -> m0 #

foldr :: (a -> b -> b) -> b -> Bound dsl vertices instances m a -> b #

foldr' :: (a -> b -> b) -> b -> Bound dsl vertices instances m a -> b #

foldl :: (b -> a -> b) -> b -> Bound dsl vertices instances m a -> b #

foldl' :: (b -> a -> b) -> b -> Bound dsl vertices instances m a -> b #

foldr1 :: (a -> a -> a) -> Bound dsl vertices instances m a -> a #

foldl1 :: (a -> a -> a) -> Bound dsl vertices instances m a -> a #

toList :: Bound dsl vertices instances m a -> [a] #

null :: Bound dsl vertices instances m a -> Bool #

length :: Bound dsl vertices instances m a -> Int #

elem :: Eq a => a -> Bound dsl vertices instances m a -> Bool #

maximum :: Ord a => Bound dsl vertices instances m a -> a #

minimum :: Ord a => Bound dsl vertices instances m a -> a #

sum :: Num a => Bound dsl vertices instances m a -> a #

product :: Num a => Bound dsl vertices instances m a -> a #

Traversable m => Traversable (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

traverse :: Applicative f => (a -> f b) -> Bound dsl vertices instances m a -> f (Bound dsl vertices instances m b) #

sequenceA :: Applicative f => Bound dsl vertices instances m (f a) -> f (Bound dsl vertices instances m a) #

mapM :: Monad m0 => (a -> m0 b) -> Bound dsl vertices instances m a -> m0 (Bound dsl vertices instances m b) #

sequence :: Monad m0 => Bound dsl vertices instances m (m0 a) -> m0 (Bound dsl vertices instances m a) #

Applicative m => Applicative (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

pure :: a -> Bound dsl vertices instances m a #

(<*>) :: Bound dsl vertices instances m (a -> b) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b #

liftA2 :: (a -> b -> c) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m c #

(*>) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m b #

(<*) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m a #

Functor m => Functor (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

fmap :: (a -> b) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b #

(<$) :: a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m a #

Monad m => Monad (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

(>>=) :: Bound dsl vertices instances m a -> (a -> Bound dsl vertices instances m b) -> Bound dsl vertices instances m b #

(>>) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m b #

return :: a -> Bound dsl vertices instances m a #

MonadUnliftIO m => MonadUnliftIO (Bound dsl vertices instances m) Source # 
Instance details

Defined in Engine.Vulkan.Types

Methods

withRunInIO :: ((forall a. Bound dsl vertices instances m a -> IO a) -> IO b) -> Bound dsl vertices instances m b #