| Copyright | (c) Sven Panne 2002-2018 |
|---|---|
| License | BSD3 |
| Maintainer | Sven Panne <[email protected]> |
| Stability | stable |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Graphics.Rendering.OpenGL.GL.BufferObjects
Contents
Description
This module corresponds to section 2.9 (Buffer Objects) of the OpenGL 2.1 specs.
Synopsis
- data BufferObject
- data BufferTarget
- bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject)
- arrayBufferBinding :: ClientArrayType -> GettableStateVar (Maybe BufferObject)
- vertexAttribArrayBufferBinding :: AttribLocation -> GettableStateVar (Maybe BufferObject)
- data BufferUsage
- bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage)
- data TransferDirection
- bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()
- data BufferAccess
- data MappingFailure
- withMappedBuffer :: BufferTarget -> BufferAccess -> (Ptr a -> IO b) -> (MappingFailure -> IO b) -> IO b
- mapBuffer :: BufferTarget -> BufferAccess -> IO (Maybe (Ptr a))
- unmapBuffer :: BufferTarget -> IO Bool
- bufferAccess :: BufferTarget -> GettableStateVar BufferAccess
- bufferMapped :: BufferTarget -> GettableStateVar Bool
- data MapBufferUsage
- type Offset = GLintptr
- type Length = GLsizeiptr
- mapBufferRange :: BufferTarget -> Offset -> Length -> [MapBufferUsage] -> IO (Maybe (Ptr a))
- flushMappedBufferRange :: BufferTarget -> Offset -> Length -> IO ()
- type BufferIndex = GLuint
- type RangeStartIndex = GLintptr
- type RangeSize = GLsizeiptr
- type BufferRange = (BufferObject, RangeStartIndex, RangeSize)
- data IndexedBufferTarget
- bindBufferBase :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferObject)
- bindBufferRange :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferRange)
- indexedBufferStart :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeStartIndex
- indexedBufferSize :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeSize
Buffer Objects
data BufferObject Source #
Instances
Binding Buffer Objects
data BufferTarget Source #
Constructors
Instances
| Eq BufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects | |
| Ord BufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: BufferTarget -> BufferTarget -> Ordering # (<) :: BufferTarget -> BufferTarget -> Bool # (<=) :: BufferTarget -> BufferTarget -> Bool # (>) :: BufferTarget -> BufferTarget -> Bool # (>=) :: BufferTarget -> BufferTarget -> Bool # max :: BufferTarget -> BufferTarget -> BufferTarget # min :: BufferTarget -> BufferTarget -> BufferTarget # | |
| Show BufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> BufferTarget -> ShowS # show :: BufferTarget -> String # showList :: [BufferTarget] -> ShowS # | |
bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject) Source #
Handling Buffer Data
data BufferUsage Source #
Constructors
| StreamDraw | |
| StreamRead | |
| StreamCopy | |
| StaticDraw | |
| StaticRead | |
| StaticCopy | |
| DynamicDraw | |
| DynamicRead | |
| DynamicCopy |
Instances
| Eq BufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects | |
| Ord BufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: BufferUsage -> BufferUsage -> Ordering # (<) :: BufferUsage -> BufferUsage -> Bool # (<=) :: BufferUsage -> BufferUsage -> Bool # (>) :: BufferUsage -> BufferUsage -> Bool # (>=) :: BufferUsage -> BufferUsage -> Bool # max :: BufferUsage -> BufferUsage -> BufferUsage # min :: BufferUsage -> BufferUsage -> BufferUsage # | |
| Show BufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> BufferUsage -> ShowS # show :: BufferUsage -> String # showList :: [BufferUsage] -> ShowS # | |
bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage) Source #
data TransferDirection Source #
Constructors
| ReadFromBuffer | |
| WriteToBuffer |
Instances
| Eq TransferDirection Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods (==) :: TransferDirection -> TransferDirection -> Bool # (/=) :: TransferDirection -> TransferDirection -> Bool # | |
| Ord TransferDirection Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: TransferDirection -> TransferDirection -> Ordering # (<) :: TransferDirection -> TransferDirection -> Bool # (<=) :: TransferDirection -> TransferDirection -> Bool # (>) :: TransferDirection -> TransferDirection -> Bool # (>=) :: TransferDirection -> TransferDirection -> Bool # max :: TransferDirection -> TransferDirection -> TransferDirection # min :: TransferDirection -> TransferDirection -> TransferDirection # | |
| Show TransferDirection Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> TransferDirection -> ShowS # show :: TransferDirection -> String # showList :: [TransferDirection] -> ShowS # | |
bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO () Source #
Mapping Buffer Objects
data BufferAccess Source #
Instances
| Eq BufferAccess Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects | |
| Ord BufferAccess Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: BufferAccess -> BufferAccess -> Ordering # (<) :: BufferAccess -> BufferAccess -> Bool # (<=) :: BufferAccess -> BufferAccess -> Bool # (>) :: BufferAccess -> BufferAccess -> Bool # (>=) :: BufferAccess -> BufferAccess -> Bool # max :: BufferAccess -> BufferAccess -> BufferAccess # min :: BufferAccess -> BufferAccess -> BufferAccess # | |
| Show BufferAccess Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> BufferAccess -> ShowS # show :: BufferAccess -> String # showList :: [BufferAccess] -> ShowS # | |
data MappingFailure Source #
Constructors
| MappingFailed | |
| UnmappingFailed |
Instances
| Eq MappingFailure Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods (==) :: MappingFailure -> MappingFailure -> Bool # (/=) :: MappingFailure -> MappingFailure -> Bool # | |
| Ord MappingFailure Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: MappingFailure -> MappingFailure -> Ordering # (<) :: MappingFailure -> MappingFailure -> Bool # (<=) :: MappingFailure -> MappingFailure -> Bool # (>) :: MappingFailure -> MappingFailure -> Bool # (>=) :: MappingFailure -> MappingFailure -> Bool # max :: MappingFailure -> MappingFailure -> MappingFailure # min :: MappingFailure -> MappingFailure -> MappingFailure # | |
| Show MappingFailure Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> MappingFailure -> ShowS # show :: MappingFailure -> String # showList :: [MappingFailure] -> ShowS # | |
withMappedBuffer :: BufferTarget -> BufferAccess -> (Ptr a -> IO b) -> (MappingFailure -> IO b) -> IO b Source #
Convenience function for an exception-safe combination of mapBuffer and
unmapBuffer.
mapBuffer :: BufferTarget -> BufferAccess -> IO (Maybe (Ptr a)) Source #
unmapBuffer :: BufferTarget -> IO Bool Source #
data MapBufferUsage Source #
Constructors
| Read | |
| Write | |
| InvalidateRange | |
| InvalidateBuffer | |
| FlushExplicit | |
| Unsychronized |
Instances
| Eq MapBufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods (==) :: MapBufferUsage -> MapBufferUsage -> Bool # (/=) :: MapBufferUsage -> MapBufferUsage -> Bool # | |
| Ord MapBufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: MapBufferUsage -> MapBufferUsage -> Ordering # (<) :: MapBufferUsage -> MapBufferUsage -> Bool # (<=) :: MapBufferUsage -> MapBufferUsage -> Bool # (>) :: MapBufferUsage -> MapBufferUsage -> Bool # (>=) :: MapBufferUsage -> MapBufferUsage -> Bool # max :: MapBufferUsage -> MapBufferUsage -> MapBufferUsage # min :: MapBufferUsage -> MapBufferUsage -> MapBufferUsage # | |
| Show MapBufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> MapBufferUsage -> ShowS # show :: MapBufferUsage -> String # showList :: [MapBufferUsage] -> ShowS # | |
type Length = GLsizeiptr Source #
mapBufferRange :: BufferTarget -> Offset -> Length -> [MapBufferUsage] -> IO (Maybe (Ptr a)) Source #
flushMappedBufferRange :: BufferTarget -> Offset -> Length -> IO () Source #
Indexed Buffer manipulation
type BufferIndex = GLuint Source #
type RangeStartIndex = GLintptr Source #
type RangeSize = GLsizeiptr Source #
type BufferRange = (BufferObject, RangeStartIndex, RangeSize) Source #
data IndexedBufferTarget Source #
Constructors
| IndexedAtomicCounterBuffer | |
| IndexedShaderStorageBuffer | |
| IndexedTransformFeedbackBuffer | |
| IndexedUniformBuffer |
Instances
| Eq IndexedBufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods (==) :: IndexedBufferTarget -> IndexedBufferTarget -> Bool # (/=) :: IndexedBufferTarget -> IndexedBufferTarget -> Bool # | |
| Ord IndexedBufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods compare :: IndexedBufferTarget -> IndexedBufferTarget -> Ordering # (<) :: IndexedBufferTarget -> IndexedBufferTarget -> Bool # (<=) :: IndexedBufferTarget -> IndexedBufferTarget -> Bool # (>) :: IndexedBufferTarget -> IndexedBufferTarget -> Bool # (>=) :: IndexedBufferTarget -> IndexedBufferTarget -> Bool # max :: IndexedBufferTarget -> IndexedBufferTarget -> IndexedBufferTarget # min :: IndexedBufferTarget -> IndexedBufferTarget -> IndexedBufferTarget # | |
| Show IndexedBufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> IndexedBufferTarget -> ShowS # show :: IndexedBufferTarget -> String # showList :: [IndexedBufferTarget] -> ShowS # | |