OpenGL-2.2.3.0: A binding for the OpenGL graphics systemSource codeContentsIndex
Graphics.Rendering.OpenGL.GL.BufferObjects
Portabilityportable
Stabilitystable
Maintainersven.panne@aedion.de
Contents
Object Names
Buffer Objects
Binding Buffer Objects
Handling Buffer Data
Mapping Buffer Objects
Description
This module corresponds to section 2.9 (Buffer Objects) of the OpenGL 2.1 specs.
Synopsis
class ObjectName a where
genObjectNames :: Int -> IO [a]
deleteObjectNames :: [a] -> IO ()
isObjectName :: a -> IO Bool
newtype BufferObject = BufferObject GLuint
data BufferTarget
= ArrayBuffer
| CopyReadBuffer
| CopyWriteBuffer
| ElementArrayBuffer
| PixelPackBuffer
| PixelUnpackBuffer
bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject)
arrayBufferBinding :: ClientArrayType -> GettableStateVar (Maybe BufferObject)
vertexAttribArrayBufferBinding :: AttribLocation -> GettableStateVar (Maybe BufferObject)
data BufferUsage
= StreamDraw
| StreamRead
| StreamCopy
| StaticDraw
| StaticRead
| StaticCopy
| DynamicDraw
| DynamicRead
| DynamicCopy
bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage)
data TransferDirection
= ReadFromBuffer
| WriteToBuffer
bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()
data BufferAccess
= ReadOnly
| WriteOnly
| ReadWrite
data MappingFailure
= MappingFailed
| UnmappingFailed
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
Object Names
class ObjectName a whereSource
An ObjectName corresponds to the general OpenGL notion of an explicitly handled object name, e.g. a display list name, a texture object name, a buffer object name, etc.
Methods
genObjectNames :: Int -> IO [a]Source
deleteObjectNames :: [a] -> IO ()Source
isObjectName :: a -> IO BoolSource
Buffer Objects
newtype BufferObject Source
Constructors
BufferObject GLuint
Binding Buffer Objects
data BufferTarget Source
Constructors
ArrayBuffer
CopyReadBuffer
CopyWriteBuffer
ElementArrayBuffer
PixelPackBuffer
PixelUnpackBuffer
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
bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage)Source
data TransferDirection Source
Constructors
ReadFromBuffer
WriteToBuffer
bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()Source
Mapping Buffer Objects
data BufferAccess Source
Constructors
ReadOnly
WriteOnly
ReadWrite
data MappingFailure Source
Constructors
MappingFailed
UnmappingFailed
withMappedBuffer :: BufferTarget -> BufferAccess -> (Ptr a -> IO b) -> (MappingFailure -> IO b) -> IO bSource
Convenience function for an exception-safe combination of mapBuffer and unmapBuffer.
mapBuffer :: BufferTarget -> BufferAccess -> IO (Maybe (Ptr a))Source
unmapBuffer :: BufferTarget -> IO BoolSource
bufferAccess :: BufferTarget -> GettableStateVar BufferAccessSource
bufferMapped :: BufferTarget -> GettableStateVar BoolSource
Produced by Haddock version 2.6.0