Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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 #
getDescSet :: a -> Tagged tag DescriptorSet Source #
Instances
HasDescSet tag rr => HasDescSet tag (RecycledResources rr) Source # | |
Defined in Engine.Vulkan.DescSets getDescSet :: RecycledResources rr -> Tagged tag DescriptorSet Source # | |
HasDescSet tag rr => HasDescSet tag (env, Frame rp p rr) Source # | |
Defined in Engine.Vulkan.DescSets 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 getDescSet :: Frame rp p rr -> Tagged tag DescriptorSet Source # |
newtype Bound (dsl :: [Type]) vertices instances m a Source #
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 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 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 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.