| OpenGL-2.2.1.1: A binding for the OpenGL graphics system | 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 | Source

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 Bool | Source

Instances

ObjectName BufferObject
ObjectName DisplayList
ObjectName FragmentShader
ObjectName Program
ObjectName QueryObject
ObjectName TextureObject
ObjectName VertexShader

Buffer Objects

newtype BufferObject | Source

Constructors

BufferObject GLuint |

Instances

Eq BufferObject
ObjectName BufferObject
Ord BufferObject
Show BufferObject

Binding Buffer Objects

data BufferTarget | Source

Constructors

ArrayBuffer |
ElementArrayBuffer |
PixelPackBuffer |
PixelUnpackBuffer |

Instances

Eq BufferTarget
Ord BufferTarget
Show BufferTarget

bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject) | Source

arrayBufferBinding :: ClientArrayType -> GettableStateVar (Maybe BufferObject) | Source

Handling Buffer Data

data BufferUsage | Source

Constructors

StreamDraw |
StreamRead |
StreamCopy |
StaticDraw |
StaticRead |
StaticCopy |
DynamicDraw |
DynamicRead |
DynamicCopy |

Instances

Eq BufferUsage
Ord BufferUsage
Show BufferUsage

bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage) | Source

data TransferDirection | Source

Constructors

ReadFromBuffer |
WriteToBuffer |

Instances

Eq TransferDirection
Ord TransferDirection
Show TransferDirection

bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO () | Source

Mapping Buffer Objects

data BufferAccess | Source

Constructors

ReadOnly |
WriteOnly |
ReadWrite |

Instances

Eq BufferAccess
Ord BufferAccess
Show BufferAccess

data MappingFailure | Source

Constructors

MappingFailed |
UnmappingFailed |

Instances

Eq MappingFailure
Ord MappingFailure
Show MappingFailure

withMappedBuffer :: BufferTarget -> BufferAccess -> (Ptr a -> IO b) -> (MappingFailure -> IO b) -> IO b | Source

bufferAccess :: BufferTarget -> GettableStateVar BufferAccess | Source

bufferMapped :: BufferTarget -> GettableStateVar Bool | Source

Produced by Haddock version 0.9