gpu-vulkan-0.1.0.137: Vulkan library
Safe HaskellNone
LanguageHaskell2010

Gpu.Vulkan.Pipeline.Graphics

Synopsis

CREATE AND RECREATE

createGs :: forall (cias :: [(Maybe Type, [(Maybe Type, Maybe Type, ShaderKind, Maybe (Type, Type), [Type])], (Maybe Type, [(Type, Rate)], [(Nat, Type)]), Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, (Type, [(Type, [BindingType])], [Type]), Type, (Type, [(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type])))]) (mac :: Maybe (Type, Type)) sd sc a. (CreateInfoListToMiddle cias, ToMiddle mac) => D sd -> Maybe (P sc) -> PL (U14 CreateInfo) cias -> M (U2 A) mac -> (forall sg. PL (U3 (G sg)) (CreateInfoListArgsToGArgs cias) -> IO a) -> IO a Source #

unsafeRecreateGs :: forall (cias :: [(Maybe Type, [(Maybe Type, Maybe Type, ShaderKind, Maybe (Type, Type), [Type])], (Maybe Type, [(Type, Rate)], [(Nat, Type)]), Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, (Type, [(Type, [BindingType])], [Type]), Type, (Type, [(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type])))]) (mac :: Maybe (Type, Type)) sd s sg. (CreateInfoListToMiddle cias, ToMiddle mac) => D sd -> Maybe (P s) -> PL (U14 CreateInfo) cias -> M (U2 A) mac -> PL (U3 (G sg)) (CreateInfoListArgsToGArgs cias) -> IO () Source #

data G s (vibs :: [(Type, Rate)]) (vias :: [(Nat, Type)]) (lyta :: (Type, [(Type, [BindingType])], [Type])) Source #

type family CreateInfoListArgsToGArgs (cias :: [(k3, k4, (k5, k, k1), k6, k7, k8, k9, k10, k11, k12, k13, k2, k14, k15)]) :: [(k, k1, k2)] where ... Source #

Equations

CreateInfoListArgsToGArgs ('[] :: [(k4, k5, (k6, k1, k2), k7, k8, k9, k10, k11, k12, k13, k14, k3, k15, k16)]) = '[] :: [(k1, k2, k3)] 
CreateInfoListArgsToGArgs (cia ': cias :: [(k1, k2, (k3, k4, k5), k6, k7, k8, k9, k10, k11, k12, k13, k14, k15, k16)]) = CreateInfoArgsToGArgs cia ': CreateInfoListArgsToGArgs cias 

class (GListFromMiddle (CreateInfoListArgsToGArgs cias), DestroyShaderStages (MiddleArgs cias) (TAllocationCallbacksListList cias), AllocationCallbacksListListFromCreateInfoList cias, CreateInfoListToCore (MiddleArgs cias)) => CreateInfoListToMiddle (cias :: [(Maybe Type, [(Maybe Type, Maybe Type, ShaderKind, Maybe (Type, Type), [Type])], (Maybe Type, [(Type, Rate)], [(Nat, Type)]), Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, (Type, [(Type, [BindingType])], [Type]), Type, (Type, [(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type])))]) Source #

Minimal complete definition

createInfoListToMiddle

Instances

Instances details
CreateInfoListToMiddle ('[] :: [(Maybe Type, [(Maybe Type, Maybe Type, ShaderKind, Maybe (Type, Type), [Type])], (Maybe Type, [(Type, Rate)], [(Nat, Type)]), Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, (Type, [(Type, [BindingType])], [Type]), Type, (Type, [(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type])))]) Source # 
Instance details

Defined in Gpu.Vulkan.Pipeline.Graphics

(Map3_5 ssas, CreateInfoListToMiddle ssas, CreateInfoListToCore (MiddleArgs ssas), BindingStrideList vibs Rate, AttributeDescriptions vibs vias, WithPoked (M mn), WithPoked (M nvis), WithPoked (M iasa), WithPoked (M tsssa), WithPoked (M vpsa), WithPoked (M rstsa), WithPoked (M mssa), WithPoked (M dssa), WithPoked (M cbsa), WithPoked (M dsa), CreateInfoListToMiddle ss) => CreateInfoListToMiddle ('(mn, ssas, '(nvis, vibs, vias), iasa, tsssa, vpsa, rstsa, mssa, dssa, cbsa, dsa, '(sl, sbtss, pcl), rpa, '(sb, vibs', vias', slbtss')) ': ss) Source # 
Instance details

Defined in Gpu.Vulkan.Pipeline.Graphics

Methods

createInfoListToMiddle :: D sd -> PL (U14 CreateInfo) ('(mn, ssas, '(nvis, vibs, vias), iasa, tsssa, vpsa, rstsa, mssa, dssa, cbsa, dsa, '(sl, sbtss, pcl), rpa, '(sb, vibs', vias', slbtss')) ': ss) -> IO (PL (U11 CreateInfo) (MiddleArgs ('(mn, ssas, '(nvis, vibs, vias), iasa, tsssa, vpsa, rstsa, mssa, dssa, cbsa, dsa, '(sl, sbtss, pcl), rpa, '(sb, vibs', vias', slbtss')) ': ss)))

Group

group :: forall (ma :: Maybe (Type, Type)) sd k (gas :: [([(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type]))]) a. ToMiddle ma => D sd -> M (U2 A) ma -> (forall sg. Group sd ma sg k gas -> IO a) -> IO a Source #

data Group sd (ma :: Maybe (Type, Type)) sg k (gas :: [([(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type]))]) Source #

createGs' :: forall k (cias :: [(Maybe Type, [(Maybe Type, Maybe Type, ShaderKind, Maybe (Type, Type), [Type])], (Maybe Type, [(Type, Rate)], [(Nat, Type)]), Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, Maybe Type, (Type, [(Type, [BindingType])], [Type]), Type, (Type, [(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type])))]) (mac :: Maybe (Type, Type)) sd sg sc. (Ord k, CreateInfoListToMiddle cias, ToMiddle mac) => Group sd mac sg k (CreateInfoListArgsToGArgs cias) -> k -> Maybe (P sc) -> PL (U14 CreateInfo) cias -> IO (Either String (PL (U3 (G sg)) (CreateInfoListArgsToGArgs cias))) Source #

unsafeDestroyGs :: forall k (ma :: Maybe (Type, Type)) sd sg (gas :: [([(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type]))]). (Ord k, ToMiddle ma) => Group sd ma sg k gas -> k -> IO (Either String ()) Source #

lookup :: forall k sd (ma :: Maybe (Type, Type)) sg (gas :: [([(Type, Rate)], [(Nat, Type)], (Type, [(Type, [BindingType])], [Type]))]). Ord k => Group sd ma sg k gas -> k -> IO (Maybe (PL (U3 (G sg)) gas)) Source #