| Copyright | (C) 2015, 2016 Dimitri Sabadie |
|---|---|
| License | BSD3 |
| Maintainer | Dimitri Sabadie <dimitri.sabadie@gmail.com> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Graphics.Luminance.Buffer
Description
- createBuffer :: forall a m rw. (BufferRW rw, MonadIO m, MonadResource m) => BuildBuffer rw a -> m a
- class BufferRW rw
- data Buffer rw a
- data BuildBuffer rw a
- newRegion :: forall rw a. Storable a => Word32 -> BuildBuffer rw (Buffer rw a)
- readWhole :: (MonadIO m, Readable r, Storable a) => Buffer r a -> m [a]
- writeWhole :: (Foldable f, MonadIO m, Storable a, Writable w) => Buffer w a -> f a -> m ()
- fill :: (MonadIO m, Storable a, Writable w) => Buffer w a -> a -> m ()
- (@?) :: (MonadIO m, Storable a, Readable r) => Buffer r a -> Word32 -> m (Maybe a)
- (@!) :: (MonadIO m, Storable a, Readable r) => Buffer r a -> Word32 -> m a
- writeAt :: (MonadIO m, Storable a, Writable w) => Buffer w a -> Word32 -> a -> m ()
- writeAt' :: (MonadIO m, Storable a, Writable w) => Buffer w a -> Word32 -> a -> m ()
Buffer creation
createBuffer :: forall a m rw. (BufferRW rw, MonadIO m, MonadResource m) => BuildBuffer rw a -> m a Source
Create a new Buffer. Through the 'BuildBuild type, you can yield new regions and embed them
in the type of your choice. The function returns that type.
Buffer access
Buffers can have reads and writes. That typeclass makes implements all possible
cases.
Minimal complete definition
bufferFlagsFromRW
Buffer regions
A Buffer is a GPU typed memory area. It can be pictured as a GPU array.
data BuildBuffer rw a Source
Convenient type to build Buffers.
Instances
| Monad (BuildBuffer rw) Source | |
| Functor (BuildBuffer rw) Source | |
| Applicative (BuildBuffer rw) Source |
newRegion :: forall rw a. Storable a => Word32 -> BuildBuffer rw (Buffer rw a) Source
Create a new Buffer by providing the number of wished elements.
Operations on buffer regions
fill :: (MonadIO m, Storable a, Writable w) => Buffer w a -> a -> m () Source
Fill a Buffer with a value.
(@?) :: (MonadIO m, Storable a, Readable r) => Buffer r a -> Word32 -> m (Maybe a) Source
Index getter. Bounds checking is performed and returns Nothing if out of bounds.
(@!) :: (MonadIO m, Storable a, Readable r) => Buffer r a -> Word32 -> m a Source
Index getter. Unsafe version of '(@?)'.