| 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
| MonadIO m => MonadIO (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types | |
| 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 # 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 # | |
| 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) # 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 # | |
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 # | |
| Monad m => Monad (Bound dsl vertices instances m) Source # | |
Defined in Engine.Vulkan.Types | |
| 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 #
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.
Instances
| Bifoldable (Tagged :: Type -> Type -> Type) | |
| Bifunctor (Tagged :: Type -> Type -> Type) | |
| Bitraversable (Tagged :: Type -> Type -> Type) | |
Defined in Data.Tagged Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Tagged a b -> f (Tagged c d) # | |
| Eq2 (Tagged :: Type -> Type -> Type) | |
| Ord2 (Tagged :: Type -> Type -> Type) | |
Defined in Data.Tagged | |
| Read2 (Tagged :: Type -> Type -> Type) | |
Defined in Data.Tagged Methods liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Tagged a b) # liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Tagged a b] # liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Tagged a b) # liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Tagged a b] # | |
| Show2 (Tagged :: Type -> Type -> Type) | |
| Biapplicative (Tagged :: Type -> Type -> Type) | |
Defined in Data.Biapplicative | |
| Generic1 (Tagged s :: Type -> Type) | |
| Foldable (Tagged s) | |
Defined in Data.Tagged Methods fold :: Monoid m => Tagged s m -> m # foldMap :: Monoid m => (a -> m) -> Tagged s a -> m # foldMap' :: Monoid m => (a -> m) -> Tagged s a -> m # foldr :: (a -> b -> b) -> b -> Tagged s a -> b # foldr' :: (a -> b -> b) -> b -> Tagged s a -> b # foldl :: (b -> a -> b) -> b -> Tagged s a -> b # foldl' :: (b -> a -> b) -> b -> Tagged s a -> b # foldr1 :: (a -> a -> a) -> Tagged s a -> a # foldl1 :: (a -> a -> a) -> Tagged s a -> a # elem :: Eq a => a -> Tagged s a -> Bool # maximum :: Ord a => Tagged s a -> a # minimum :: Ord a => Tagged s a -> a # | |
| Eq1 (Tagged s) | |
| Ord1 (Tagged s) | |
Defined in Data.Tagged | |
| Read1 (Tagged s) | |
Defined in Data.Tagged | |
| Show1 (Tagged s) | |
| Traversable (Tagged s) | |
| Applicative (Tagged s) | |
| Functor (Tagged s) | |
| Monad (Tagged s) | |
| Bits a => Bits (Tagged s a) | |
Defined in Data.Tagged Methods (.&.) :: Tagged s a -> Tagged s a -> Tagged s a # (.|.) :: Tagged s a -> Tagged s a -> Tagged s a # xor :: Tagged s a -> Tagged s a -> Tagged s a # complement :: Tagged s a -> Tagged s a # shift :: Tagged s a -> Int -> Tagged s a # rotate :: Tagged s a -> Int -> Tagged s a # setBit :: Tagged s a -> Int -> Tagged s a # clearBit :: Tagged s a -> Int -> Tagged s a # complementBit :: Tagged s a -> Int -> Tagged s a # testBit :: Tagged s a -> Int -> Bool # bitSizeMaybe :: Tagged s a -> Maybe Int # bitSize :: Tagged s a -> Int # isSigned :: Tagged s a -> Bool # shiftL :: Tagged s a -> Int -> Tagged s a # unsafeShiftL :: Tagged s a -> Int -> Tagged s a # shiftR :: Tagged s a -> Int -> Tagged s a # unsafeShiftR :: Tagged s a -> Int -> Tagged s a # rotateL :: Tagged s a -> Int -> Tagged s a # | |
| FiniteBits a => FiniteBits (Tagged s a) | |
Defined in Data.Tagged Methods finiteBitSize :: Tagged s a -> Int # countLeadingZeros :: Tagged s a -> Int # countTrailingZeros :: Tagged s a -> Int # | |
| (Data s, Data b) => Data (Tagged s b) | |
Defined in Data.Tagged Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Tagged s b -> c (Tagged s b) # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Tagged s b) # toConstr :: Tagged s b -> Constr # dataTypeOf :: Tagged s b -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Tagged s b)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Tagged s b)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Tagged s b -> Tagged s b # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tagged s b -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tagged s b -> r # gmapQ :: (forall d. Data d => d -> u) -> Tagged s b -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Tagged s b -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tagged s b -> m (Tagged s b) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tagged s b -> m (Tagged s b) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tagged s b -> m (Tagged s b) # | |
| IsString a => IsString (Tagged s a) | |
Defined in Data.Tagged Methods fromString :: String -> Tagged s a # | |
| Storable a => Storable (Tagged s a) | |
Defined in Data.Tagged Methods alignment :: Tagged s a -> Int # peekElemOff :: Ptr (Tagged s a) -> Int -> IO (Tagged s a) # pokeElemOff :: Ptr (Tagged s a) -> Int -> Tagged s a -> IO () # peekByteOff :: Ptr b -> Int -> IO (Tagged s a) # pokeByteOff :: Ptr b -> Int -> Tagged s a -> IO () # | |
| (Semigroup a, Monoid a) => Monoid (Tagged s a) | |
| Semigroup a => Semigroup (Tagged s a) | |
| Bounded b => Bounded (Tagged s b) | |
| Enum a => Enum (Tagged s a) | |
Defined in Data.Tagged Methods succ :: Tagged s a -> Tagged s a # pred :: Tagged s a -> Tagged s a # fromEnum :: Tagged s a -> Int # enumFrom :: Tagged s a -> [Tagged s a] # enumFromThen :: Tagged s a -> Tagged s a -> [Tagged s a] # enumFromTo :: Tagged s a -> Tagged s a -> [Tagged s a] # enumFromThenTo :: Tagged s a -> Tagged s a -> Tagged s a -> [Tagged s a] # | |
| Floating a => Floating (Tagged s a) | |
Defined in Data.Tagged Methods exp :: Tagged s a -> Tagged s a # log :: Tagged s a -> Tagged s a # sqrt :: Tagged s a -> Tagged s a # (**) :: Tagged s a -> Tagged s a -> Tagged s a # logBase :: Tagged s a -> Tagged s a -> Tagged s a # sin :: Tagged s a -> Tagged s a # cos :: Tagged s a -> Tagged s a # tan :: Tagged s a -> Tagged s a # asin :: Tagged s a -> Tagged s a # acos :: Tagged s a -> Tagged s a # atan :: Tagged s a -> Tagged s a # sinh :: Tagged s a -> Tagged s a # cosh :: Tagged s a -> Tagged s a # tanh :: Tagged s a -> Tagged s a # asinh :: Tagged s a -> Tagged s a # acosh :: Tagged s a -> Tagged s a # atanh :: Tagged s a -> Tagged s a # log1p :: Tagged s a -> Tagged s a # expm1 :: Tagged s a -> Tagged s a # | |
| RealFloat a => RealFloat (Tagged s a) | |
Defined in Data.Tagged Methods floatRadix :: Tagged s a -> Integer # floatDigits :: Tagged s a -> Int # floatRange :: Tagged s a -> (Int, Int) # decodeFloat :: Tagged s a -> (Integer, Int) # encodeFloat :: Integer -> Int -> Tagged s a # exponent :: Tagged s a -> Int # significand :: Tagged s a -> Tagged s a # scaleFloat :: Int -> Tagged s a -> Tagged s a # isInfinite :: Tagged s a -> Bool # isDenormalized :: Tagged s a -> Bool # isNegativeZero :: Tagged s a -> Bool # | |
| Generic (Tagged s b) | |
| Ix b => Ix (Tagged s b) | |
Defined in Data.Tagged Methods range :: (Tagged s b, Tagged s b) -> [Tagged s b] # index :: (Tagged s b, Tagged s b) -> Tagged s b -> Int # unsafeIndex :: (Tagged s b, Tagged s b) -> Tagged s b -> Int # inRange :: (Tagged s b, Tagged s b) -> Tagged s b -> Bool # rangeSize :: (Tagged s b, Tagged s b) -> Int # unsafeRangeSize :: (Tagged s b, Tagged s b) -> Int # | |
| Num a => Num (Tagged s a) | |
Defined in Data.Tagged | |
| Read b => Read (Tagged s b) | |
| Fractional a => Fractional (Tagged s a) | |
| Integral a => Integral (Tagged s a) | |
Defined in Data.Tagged Methods quot :: Tagged s a -> Tagged s a -> Tagged s a # rem :: Tagged s a -> Tagged s a -> Tagged s a # div :: Tagged s a -> Tagged s a -> Tagged s a # mod :: Tagged s a -> Tagged s a -> Tagged s a # quotRem :: Tagged s a -> Tagged s a -> (Tagged s a, Tagged s a) # divMod :: Tagged s a -> Tagged s a -> (Tagged s a, Tagged s a) # | |
| Real a => Real (Tagged s a) | |
Defined in Data.Tagged Methods toRational :: Tagged s a -> Rational # | |
| RealFrac a => RealFrac (Tagged s a) | |
| Show b => Show (Tagged s b) | |
| NFData b => NFData (Tagged s b) | |
Defined in Data.Tagged | |
| Eq b => Eq (Tagged s b) | |
| Ord b => Ord (Tagged s b) | |
| type Rep1 (Tagged s :: Type -> Type) | |
Defined in Data.Tagged type Rep1 (Tagged s :: Type -> Type) = D1 ('MetaData "Tagged" "Data.Tagged" "tagged-0.8.6.1-205f57bb59d87b0c6838527bf8fdac7352125287a857d12b22a146ff74b1f9cb" 'True) (C1 ('MetaCons "Tagged" 'PrefixI 'True) (S1 ('MetaSel ('Just "unTagged") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |
| type Rep (Tagged s b) | |
Defined in Data.Tagged | |