| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Engine.Vulkan.DescSets
Synopsis
- class HasDescSet tag a where
- getDescSet :: a -> Tagged tag DescriptorSet
- newtype Bound (dsl :: [Type]) vertices instances m a = Bound (m a)
- withBoundDescriptorSets0 :: MonadIO m => CommandBuffer -> PipelineBindPoint -> Tagged dsl PipelineLayout -> Tagged dsl (Vector DescriptorSet) -> Bound dsl Void Void m b -> m b
- type Compatible (smaller :: [Type]) (larger :: [Type]) = Compatible' smaller larger smaller larger
- type family Extend (xs :: [Type]) y :: [Type] where ...
- extendDS :: Tagged (as :: [Type]) (Vector DescriptorSet) -> Tagged b DescriptorSet -> Tagged (Extend as b) (Vector DescriptorSet)
- newtype Tagged (s :: k) b = Tagged {
- unTagged :: b
Documentation
class HasDescSet tag a where Source #
Methods
getDescSet :: a -> Tagged tag DescriptorSet Source #
Instances
| HasDescSet tag rr => HasDescSet tag (RecycledResources rr) Source # | |
Defined in Engine.Vulkan.DescSets Methods getDescSet :: RecycledResources rr -> Tagged tag DescriptorSet Source # | |
| HasDescSet tag rr => HasDescSet tag (env, Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets Methods getDescSet :: (env, Frame rp p rr) -> Tagged tag DescriptorSet Source # | |
| HasDescSet tag rr => HasDescSet tag (Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets Methods getDescSet :: Frame rp p rr -> Tagged tag DescriptorSet Source # | |
newtype Bound (dsl :: [Type]) vertices instances m a Source #
Constructors
| Bound (m a) |
Instances
| MonadReader r m => MonadReader r (Bound dsl vertices instances m) Source # | |
| MonadState s m => MonadState s (Bound dsl vertices instances m) Source # | |
| MonadIO m => MonadIO (Bound dsl vertices instances m) Source # | |
| Foldable m => Foldable (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types Methods fold :: Monoid m0 => Bound dsl vertices instances m m0 -> m0 Source # foldMap :: Monoid m0 => (a -> m0) -> Bound dsl vertices instances m a -> m0 Source # foldMap' :: Monoid m0 => (a -> m0) -> Bound dsl vertices instances m a -> m0 Source # foldr :: (a -> b -> b) -> b -> Bound dsl vertices instances m a -> b Source # foldr' :: (a -> b -> b) -> b -> Bound dsl vertices instances m a -> b Source # foldl :: (b -> a -> b) -> b -> Bound dsl vertices instances m a -> b Source # foldl' :: (b -> a -> b) -> b -> Bound dsl vertices instances m a -> b Source # foldr1 :: (a -> a -> a) -> Bound dsl vertices instances m a -> a Source # foldl1 :: (a -> a -> a) -> Bound dsl vertices instances m a -> a Source # toList :: Bound dsl vertices instances m a -> [a] Source # null :: Bound dsl vertices instances m a -> Bool Source # length :: Bound dsl vertices instances m a -> Int Source # elem :: Eq a => a -> Bound dsl vertices instances m a -> Bool Source # maximum :: Ord a => Bound dsl vertices instances m a -> a Source # minimum :: Ord a => Bound dsl vertices instances m a -> a Source # sum :: Num a => Bound dsl vertices instances m a -> a Source # product :: Num a => Bound dsl vertices instances m a -> a Source # | |
| Traversable m => Traversable (Bound dsl vertices instances m) Source # | |
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) Source # sequenceA :: Applicative f => Bound dsl vertices instances m (f a) -> f (Bound dsl vertices instances m a) Source # mapM :: Monad m0 => (a -> m0 b) -> Bound dsl vertices instances m a -> m0 (Bound dsl vertices instances m b) Source # sequence :: Monad m0 => Bound dsl vertices instances m (m0 a) -> m0 (Bound dsl vertices instances m a) Source # | |
| Applicative m => Applicative (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types Methods pure :: a -> Bound dsl vertices instances m a Source # (<*>) :: Bound dsl vertices instances m (a -> b) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b Source # liftA2 :: (a -> b -> c) -> Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m c Source # (*>) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m b Source # (<*) :: Bound dsl vertices instances m a -> Bound dsl vertices instances m b -> Bound dsl vertices instances m a Source # | |
| Functor m => Functor (Bound dsl vertices instances m) Source # | |
| Monad m => Monad (Bound dsl vertices instances m) Source # | |
| MonadUnliftIO m => MonadUnliftIO (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types | |
withBoundDescriptorSets0 :: MonadIO m => CommandBuffer -> PipelineBindPoint -> Tagged dsl PipelineLayout -> Tagged dsl (Vector DescriptorSet) -> Bound dsl Void Void m b -> m b Source #
type Compatible (smaller :: [Type]) (larger :: [Type]) = Compatible' smaller larger smaller larger Source #
extendDS :: Tagged (as :: [Type]) (Vector DescriptorSet) -> Tagged b DescriptorSet -> Tagged (Extend as b) (Vector DescriptorSet) Source #
newtype Tagged (s :: k) b Source #
A value is a value Tagged s bb with an attached phantom type s.
This can be used in place of the more traditional but less safe idiom of
passing in an undefined value with the type, because unlike an (s -> b),
a can't try to use the argument Tagged s bs as a real value.
Moreover, you don't have to rely on the compiler to inline away the extra argument, because the newtype is "free"
Tagged has kind k -> * -> * if the compiler supports PolyKinds, therefore
there is an extra k showing in the instance haddocks that may cause confusion.