| HOpenGL Libraries (OpenGL package) | Source code | Contents | Index
Graphics.Rendering.OpenGL.GL.BufferObjects |
Portability | portable
Stability | stable
Maintainer | sven.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
| ElementArrayBuffer
| PixelPackBuffer
| PixelUnpackBuffer
bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject)
arrayBufferBinding :: ClientArrayType -> 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
bufferAccess :: BufferTarget -> GettableStateVar BufferAccess
bufferMapped :: BufferTarget -> GettableStateVar Bool
Object Names
class ObjectName a where
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]
deleteObjectNames :: [a] -> IO ()
isObjectName :: a -> IO Bool
Instances
ObjectName BufferObject
ObjectName DisplayList
ObjectName FragmentShader
ObjectName Program
ObjectName QueryObject
ObjectName TextureObject
ObjectName VertexShader
Buffer Objects
newtype BufferObject
Constructors
BufferObject GLuint |
Instances
Eq BufferObject
ObjectName BufferObject
Ord BufferObject
Show BufferObject
Binding Buffer Objects
data BufferTarget
Constructors
ArrayBuffer |
ElementArrayBuffer |
PixelPackBuffer |
PixelUnpackBuffer |
Instances
Eq BufferTarget
Ord BufferTarget
Show BufferTarget
bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject)
arrayBufferBinding :: ClientArrayType -> GettableStateVar (Maybe BufferObject)
Handling Buffer Data
data BufferUsage
Constructors
StreamDraw |
StreamRead |
StreamCopy |
StaticDraw |
StaticRead |
StaticCopy |
DynamicDraw |
DynamicRead |
DynamicCopy |
Instances
Eq BufferUsage
Ord BufferUsage
Show BufferUsage
bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage)
data TransferDirection
Constructors
ReadFromBuffer |
WriteToBuffer |
Instances
Eq TransferDirection
Ord TransferDirection
Show TransferDirection
bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()
Mapping Buffer Objects
data BufferAccess
Constructors
ReadOnly |
WriteOnly |
ReadWrite |
Instances
Eq BufferAccess
Ord BufferAccess
Show BufferAccess
data MappingFailure
Constructors
MappingFailed |
UnmappingFailed |
Instances
Eq MappingFailure
Ord MappingFailure
Show MappingFailure
withMappedBuffer :: BufferTarget -> BufferAccess -> (Ptr a -> IO b) -> (MappingFailure -> IO b) -> IO b
bufferAccess :: BufferTarget -> GettableStateVar BufferAccess
bufferMapped :: BufferTarget -> GettableStateVar Bool
Produced by Haddock version 0.8