Copyright | (c) Sven Panne 2002-2019 |
---|---|
License | BSD3 |
Maintainer | Sven Panne <svenpanne@gmail.com> |
Stability | stable |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Graphics.Rendering.OpenGL.GL.BufferObjects
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
Show BufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> BufferTarget -> ShowS show :: BufferTarget -> String showList :: [BufferTarget] -> ShowS | |
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 |
bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject) Source #
arrayBufferBinding :: ClientArrayType -> GettableStateVar (Maybe BufferObject) Source #
vertexAttribArrayBufferBinding :: AttribLocation -> GettableStateVar (Maybe BufferObject) Source #
Handling Buffer Data
data BufferUsage Source #
Constructors
StreamDraw | |
StreamRead | |
StreamCopy | |
StaticDraw | |
StaticRead | |
StaticCopy | |
DynamicDraw | |
DynamicRead | |
DynamicCopy |
Instances
Show BufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> BufferUsage -> ShowS show :: BufferUsage -> String showList :: [BufferUsage] -> ShowS | |
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 |
bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage) Source #
data TransferDirection Source #
Constructors
ReadFromBuffer | |
WriteToBuffer |
Instances
Show TransferDirection Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> TransferDirection -> ShowS show :: TransferDirection -> String showList :: [TransferDirection] -> ShowS | |
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 |
bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO () Source #
Mapping Buffer Objects
data BufferAccess Source #
Instances
Show BufferAccess Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> BufferAccess -> ShowS show :: BufferAccess -> String showList :: [BufferAccess] -> ShowS | |
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 |
data MappingFailure Source #
Constructors
MappingFailed | |
UnmappingFailed |
Instances
Show MappingFailure Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> MappingFailure -> ShowS show :: MappingFailure -> String showList :: [MappingFailure] -> ShowS | |
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 |
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 #
bufferAccess :: BufferTarget -> GettableStateVar BufferAccess Source #
bufferMapped :: BufferTarget -> GettableStateVar Bool Source #
data MapBufferUsage Source #
Constructors
Read | |
Write | |
InvalidateRange | |
InvalidateBuffer | |
FlushExplicit | |
Unsychronized |
Instances
Show MapBufferUsage Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> MapBufferUsage -> ShowS show :: MapBufferUsage -> String showList :: [MapBufferUsage] -> ShowS | |
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 |
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 BufferRange = (BufferObject, RangeStartIndex, RangeSize) Source #
data IndexedBufferTarget Source #
Constructors
IndexedAtomicCounterBuffer | |
IndexedShaderStorageBuffer | |
IndexedTransformFeedbackBuffer | |
IndexedUniformBuffer |
Instances
Show IndexedBufferTarget Source # | |
Defined in Graphics.Rendering.OpenGL.GL.BufferObjects Methods showsPrec :: Int -> IndexedBufferTarget -> ShowS show :: IndexedBufferTarget -> String showList :: [IndexedBufferTarget] -> ShowS | |
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 |
bindBufferBase :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferObject) Source #
bindBufferRange :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferRange) Source #
indexedBufferStart :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeStartIndex Source #
indexedBufferSize :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeSize Source #