keid-core-0.1.9.0: Core parts of Keid engine.
Safe HaskellSafe-Inferred
LanguageGHC2021

Resource.Buffer

Documentation

data Store Source #

Constructors

Staged 
Coherent 

data Allocated (s :: Store) a Source #

Instances

Instances details
Show ExampleBuffers Source # 
Instance details

Defined in Resource.Model.Observer.Example

VertexBuffers ExampleBuffers Source # 
Instance details

Defined in Resource.Model.Observer.Example

Methods

createInitial :: forall env (m :: Type -> Type). MonadVulkan env m => Int -> Text -> ResourceT m ExampleBuffers Source #

destroyCurrent :: HasVulkan env => env -> ExampleBuffers -> IO () Source #

UpdateCoherent ExampleBuffers ExampleStores Source # 
Instance details

Defined in Resource.Model.Observer.Example

Show (Allocated s a) Source # 
Instance details

Defined in Resource.Buffer

Methods

showsPrec :: Int -> Allocated s a -> ShowS #

show :: Allocated s a -> String #

showList :: [Allocated s a] -> ShowS #

HasVertexBuffers (Allocated store a) Source # 
Instance details

Defined in Resource.Model

Associated Types

type VertexBuffersOf (Allocated store a) Source #

Storable a => VertexBuffers (Allocated 'Coherent a) Source # 
Instance details

Defined in Resource.Model.Observer

Methods

createInitial :: forall env (m :: Type -> Type). MonadVulkan env m => Int -> Text -> ResourceT m (Allocated 'Coherent a) Source #

destroyCurrent :: HasVulkan env => env -> Allocated 'Coherent a -> IO () Source #

HasObjectType (Allocated s a) Source # 
Instance details

Defined in Resource.Buffer

Storable a => UpdateCoherent (Allocated 'Coherent a) (Vector a) Source # 
Instance details

Defined in Resource.Model.Observer

type VertexBuffersOf (Allocated store a) Source # 
Instance details

Defined in Resource.Model

type VertexBuffersOf (Allocated store a) = a

createCoherent :: forall a env m. (MonadVulkan env m, Storable a) => Maybe Text -> BufferUsageFlagBits -> ("initial size" ::: Int) -> Vector a -> m (Allocated 'Coherent a) Source #

destroy :: (MonadUnliftIO io, HasVulkan context) => context -> Allocated s a -> io () Source #

pokeCoherent :: (MonadVulkan env m, Storable a) => Allocated 'Coherent a -> Word32 -> a -> m () Source #

copyBuffer_ :: (MonadUnliftIO io, HasVulkan context) => context -> Queues CommandPool -> ("dstBuffer" ::: Buffer) -> ("srcBuffer" ::: Buffer) -> DeviceSize -> io () Source #

observeCoherentResize_ :: (MonadVulkan env m, HasOutput source, GetOutput source ~ Vector output, Storable output) => source -> ObserverCoherent output -> m () Source #

observeCoherentSingle :: (MonadVulkan env m, HasOutput source, GetOutput source ~ output, Storable output) => source -> ObserverCoherent output -> m () Source #