| HOpenGL Libraries (OpenGL package) | Contents | Index

Graphics.Rendering.OpenGL.GL.VertexArrays

Portability | portable
Stability | provisional
Maintainer | sven.panne@aedion.de

Contents

Describing Data for the Arrays
Specifying Data for the Arrays
Enabling Arrays
Dereferencing and Rendering

Description
This module corresponds to section 2.8 (Vertex Arrays) of the OpenGL 1.5 specs.
Synopsis

type NumComponents = GLint

data DataType

= Byte
| UnsignedByte
| Short
| UnsignedShort
| Int
| UnsignedInt
| Float
| TwoBytes
| ThreeBytes
| FourBytes
| Double
| Bitmap
| UnsignedByte332
| UnsignedShort4444
| UnsignedShort5551
| UnsignedInt8888
| UnsignedInt1010102
| UnsignedByte233Rev
| UnsignedShort565
| UnsignedShort565Rev
| UnsignedShort4444Rev
| UnsignedShort1555Rev
| UnsignedInt8888Rev
| UnsignedInt2101010Rev
| UnsignedShort88
| UnsignedShort88Rev
| UnsignedInt248

type Stride = GLsizei
data VertexArrayDescriptor a = VertexArrayDescriptor !NumComponents !DataType !Stride !(Ptr a)

data ClientArrayType

= VertexArray
| NormalArray
| ColorArray
| IndexArray
| TextureCoordArray
| EdgeFlagArray
| FogCoordArray
| SecondaryColorArray
| MatrixIndexArray

arrayPointer :: ClientArrayType -> StateVar (VertexArrayDescriptor a)

data InterleavedArrays

= V2f
| V3f
| C4ubV2f
| C4ubV3f
| C3fV3f
| N3fV3f
| C4fN3fV3f
| T2fV3f
| T4fV4f
| T2fC4ubV3f
| T2fC3fV3f
| T2fN3fV3f
| T2fC4fN3fV3f
| T4fC4fN3fV4f

interleavedArrays :: InterleavedArrays -> Stride -> Ptr a -> IO ()
clientState :: ClientArrayType -> StateVar Capability
clientActiveTexture :: StateVar TextureUnit
type ArrayIndex = GLint
type NumArrayIndices = GLsizei
type NumIndexBlocks = GLsizei
arrayElement :: ArrayIndex -> IO ()
drawArrays :: PrimitiveMode -> ArrayIndex -> NumArrayIndices -> IO ()
multiDrawArrays :: PrimitiveMode -> Ptr ArrayIndex -> Ptr NumArrayIndices -> NumIndexBlocks -> IO ()
drawElements :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> IO ()
multiDrawElements :: PrimitiveMode -> Ptr NumArrayIndices -> DataType -> Ptr (Ptr a) -> NumIndexBlocks -> IO ()
drawRangeElements :: PrimitiveMode -> (ArrayIndex, ArrayIndex) -> NumArrayIndices -> DataType -> Ptr a -> IO ()
maxElementsVertices :: GettableStateVar NumArrayIndices
maxElementsIndices :: GettableStateVar NumArrayIndices
lockArrays :: StateVar (Maybe (ArrayIndex, NumArrayIndices))
primitiveRestartIndex :: StateVar (Maybe ArrayIndex)

Describing Data for the Arrays
type NumComponents = GLint
data DataType

Constructors

Byte |
UnsignedByte |
Short |
UnsignedShort |
Int |
UnsignedInt |
Float |
TwoBytes |
ThreeBytes |
FourBytes |
Double |
Bitmap |
UnsignedByte332 |
UnsignedShort4444 |
UnsignedShort5551 |
UnsignedInt8888 |
UnsignedInt1010102 |
UnsignedByte233Rev |
UnsignedShort565 |
UnsignedShort565Rev |
UnsignedShort4444Rev |
UnsignedShort1555Rev |
UnsignedInt8888Rev |
UnsignedInt2101010Rev |
UnsignedShort88 |
UnsignedShort88Rev |
UnsignedInt248 |

Instances

Eq DataType
Ord DataType
Show DataType

type Stride = GLsizei
data VertexArrayDescriptor a

Constructors

VertexArrayDescriptor !NumComponents !DataType !Stride !(Ptr a) |

Instances

Eq (VertexArrayDescriptor a)
Ord (VertexArrayDescriptor a)
Show (VertexArrayDescriptor a)

Specifying Data for the Arrays
data ClientArrayType

Constructors

VertexArray |
NormalArray |
ColorArray |
IndexArray |
TextureCoordArray |
EdgeFlagArray |
FogCoordArray |
SecondaryColorArray |
MatrixIndexArray |

Instances

Eq ClientArrayType
Ord ClientArrayType
Show ClientArrayType

arrayPointer :: ClientArrayType -> StateVar (VertexArrayDescriptor a)
data InterleavedArrays

Constructors

V2f |
V3f |
C4ubV2f |
C4ubV3f |
C3fV3f |
N3fV3f |
C4fN3fV3f |
T2fV3f |
T4fV4f |
T2fC4ubV3f |
T2fC3fV3f |
T2fN3fV3f |
T2fC4fN3fV3f |
T4fC4fN3fV4f |

Instances

Eq InterleavedArrays
Ord InterleavedArrays
Show InterleavedArrays

interleavedArrays :: InterleavedArrays -> Stride -> Ptr a -> IO ()
Enabling Arrays
clientState :: ClientArrayType -> StateVar Capability
clientActiveTexture :: StateVar TextureUnit
Dereferencing and Rendering
type ArrayIndex = GLint
type NumArrayIndices = GLsizei
type NumIndexBlocks = GLsizei
arrayElement :: ArrayIndex -> IO ()
drawArrays :: PrimitiveMode -> ArrayIndex -> NumArrayIndices -> IO ()
multiDrawArrays :: PrimitiveMode -> Ptr ArrayIndex -> Ptr NumArrayIndices -> NumIndexBlocks -> IO ()
drawElements :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> IO ()
multiDrawElements :: PrimitiveMode -> Ptr NumArrayIndices -> DataType -> Ptr (Ptr a) -> NumIndexBlocks -> IO ()
drawRangeElements :: PrimitiveMode -> (ArrayIndex, ArrayIndex) -> NumArrayIndices -> DataType -> Ptr a -> IO ()
maxElementsVertices :: GettableStateVar NumArrayIndices
maxElementsIndices :: GettableStateVar NumArrayIndices
lockArrays :: StateVar (Maybe (ArrayIndex, NumArrayIndices))
primitiveRestartIndex :: StateVar (Maybe ArrayIndex)
Produced by Haddock version 0.7