gpu-vulkan-0.1.0.137: Vulkan library
Safe HaskellNone
LanguageHaskell2010

Gpu.Vulkan.Buffer

Synopsis

CREATE

create :: forall (mn :: Maybe Type) (objs :: [O]) (ma :: Maybe (Type, Type)) sd (nm :: Symbol) a. (WithPoked (M mn), SizeAlignmentList objs, ToMiddle ma) => D sd -> CreateInfo mn objs -> M (U2 A) ma -> (forall sb. B sb nm objs -> IO a) -> IO a Source #

data B s (nm :: Symbol) (objs :: [O]) Source #

Instances

Instances details
Show (PL Length objs) => Show (B s nm objs) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Type

Methods

showsPrec :: Int -> B s nm objs -> ShowS #

show :: B s nm objs -> String #

showList :: [B s nm objs] -> ShowS #

Eq (PL Length objs) => Eq (B s nm objs) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Type

Methods

(==) :: B s nm objs -> B s nm objs -> Bool #

(/=) :: B s nm objs -> B s nm objs -> Bool #

data CreateInfo (mn :: Maybe Type) (objs :: [O]) Source #

Instances

Instances details
(Show (M n), Show (PL Length objs)) => Show (CreateInfo n objs) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

Methods

showsPrec :: Int -> CreateInfo n objs -> ShowS #

show :: CreateInfo n objs -> String #

showList :: [CreateInfo n objs] -> ShowS #

Buffer Group

data Group sd (ma :: Maybe (Type, Type)) s k (nm :: Symbol) (objs :: [O]) Source #

group :: forall (md :: Maybe (Type, Type)) sd k (nm :: Symbol) (objs :: [O]) a. ToMiddle md => D sd -> M (U2 A) md -> (forall s. Group sd md s k nm objs -> IO a) -> IO a Source #

create' :: forall k (mn :: Maybe Type) (objs :: [O]) (ma :: Maybe (Type, Type)) sd sg (nm :: Symbol). (Ord k, WithPoked (M mn), SizeAlignmentList objs, ToMiddle ma) => Group sd ma sg k nm objs -> k -> CreateInfo mn objs -> IO (Either String (B sg nm objs)) Source #

unsafeDestroy :: forall k (ma :: Maybe (Type, Type)) sd sg (nm :: Symbol) (objs :: [O]). (Ord k, ToMiddle ma) => Group sd ma sg k nm objs -> k -> IO (Either String ()) Source #

lookup :: forall k sd (md :: Maybe (Type, Type)) sg (nm :: Symbol) (objs :: [O]). Ord k => Group sd md sg k nm objs -> k -> IO (Maybe (B sg nm objs)) Source #

BINDED

getMemoryRequirements :: forall sd sb (nm :: Symbol) (objs :: [O]). D sd -> B sb nm objs -> IO Requirements Source #

data Binded sm sb (nm :: Symbol) (objs :: [O]) Source #

Instances

Instances details
Show (PL Length objs) => Show (Binded sm sb nm objs) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Type

Methods

showsPrec :: Int -> Binded sm sb nm objs -> ShowS #

show :: Binded sm sb nm objs -> String #

showList :: [Binded sm sb nm objs] -> ShowS #

Eq (PL Length objs) => Eq (Binded sm sb nm objs) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Type

Methods

(==) :: Binded sm sb nm objs -> Binded sm sb nm objs -> Bool #

(/=) :: Binded sm sb nm objs -> Binded sm sb nm objs -> Bool #

lengthBinded :: forall sm sb (nm :: Symbol) (objs :: [O]). Binded sm sb nm objs -> PL Length objs Source #

data IndexedForList sm sb (nm :: Symbol) (t :: k) (onm :: Symbol) Source #

Constructors

OffsetOfList t onm objs => IndexedForList (Binded sm sb nm objs) 

COPY

class MakeCopies (cpss :: [([O], Nat, Nat)]) (ss :: [O]) (ds :: [O]) Source #

Minimal complete definition

makeCopies

Instances

Instances details
MakeCopies ('[] :: [([O], Nat, Nat)]) ss ds Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

Methods

makeCopies :: PL Length ss -> PL Length ds -> [Copy]

(CopyInfo as is id ss ds, MakeCopies ass ss ds) => MakeCopies ('(as, is, id) ': ass) ss ds Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

Methods

makeCopies :: PL Length ss -> PL Length ds -> [Copy]

data ImageCopy (img :: k) (inm :: k1) Source #

Instances

Instances details
Show (ImageCopy img inm) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

Methods

showsPrec :: Int -> ImageCopy img inm -> ShowS #

show :: ImageCopy img inm -> String #

showList :: [ImageCopy img inm] -> ShowS #

class ImageCopyListToMiddle (algn :: k) (objs :: [O]) img (inms :: [Symbol]) Source #

Minimal complete definition

imageCopyListToMiddle

Instances

Instances details
ImageCopyListToMiddle (algn :: k) objs img ('[] :: [Symbol]) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

Methods

imageCopyListToMiddle :: forall sm sb (nm :: Symbol). Binded sm sb nm objs -> PL (ImageCopy img :: Symbol -> Type) ('[] :: [Symbol]) -> [ImageCopy]

MEMORY BARRIER

class MemoryBarrierListToMiddle (nsmsbnmobjs :: [(Maybe Type, Type, Type, Symbol, O)]) Source #

Minimal complete definition

memoryBarrierListToMiddle

Instances

Instances details
MemoryBarrierListToMiddle ('[] :: [(Maybe Type, Type, Type, Symbol, O)]) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

MemoryBarrierListToMiddle nsmsbnmobjs => MemoryBarrierListToMiddle ('(mn, sm, sb, nm, obj) ': nsmsbnmobjs) Source # 
Instance details

Defined in Gpu.Vulkan.Buffer.Internal

Methods

memoryBarrierListToMiddle :: PL (U5 MemoryBarrier) ('(mn, sm, sb, nm, obj) ': nsmsbnmobjs) -> PL MemoryBarrier (M0_5 ('(mn, sm, sb, nm, obj) ': nsmsbnmobjs))

ENUM

newtype CreateFlagBits #

Constructors

CreateFlagBits Word32 

Instances

Instances details
Storable CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Bits CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Show CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Default CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Methods

def :: CreateFlagBits #

Eq CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

newtype UsageFlagBits #

Constructors

UsageFlagBits Word32 

Instances

Instances details
Storable UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Bits UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Show UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Default UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Methods

def :: UsageFlagBits #

Eq UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum