gpu-vulkan-0.1.0.157: 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))

UNSAFE

unsafeToBinded :: forall sb (nm :: Symbol) (objs :: [O]) sm. B sb nm objs -> Binded sm sb nm objs Source #

ENUM

newtype CreateFlagBits #

Constructors

CreateFlagBits Word32 

Instances

Instances details
Default CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Methods

def :: CreateFlagBits #

Bits CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Storable CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Show CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Eq CreateFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

newtype UsageFlagBits #

Constructors

UsageFlagBits Word32 

Instances

Instances details
Default UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Methods

def :: UsageFlagBits #

Bits UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Storable UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Show UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum

Eq UsageFlagBits 
Instance details

Defined in Gpu.Vulkan.Buffer.Enum