| |||||||||||||||

| |||||||||||||||

| |||||||||||||||

Description | |||||||||||||||

This module corresponds to section 2.11 (Coordinate Transformations) of the OpenGL 1.5 specs. | |||||||||||||||

Synopsis | |||||||||||||||

Controlling the Viewport | |||||||||||||||

depthRange :: StateVar (GLclampd, GLclampd) | |||||||||||||||

After clipping and division by The initial setting of (0, 1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized. It is not necessary that the near value be less than the far value. Reverse mappings such as (1, 0) are acceptable. | |||||||||||||||

data Position | |||||||||||||||

| |||||||||||||||

data Size | |||||||||||||||

| |||||||||||||||

viewport :: StateVar (Position, Size) | |||||||||||||||

Controls the affine transformation from normalized device coordinates to
window coordinates. The viewport state variable consists of the coordinates
( Let (
Viewport width and height are silently clamped to a range that depends on the
implementation, see | |||||||||||||||

maxViewportDims :: GettableStateVar Size | |||||||||||||||

The implementation-dependent maximum viewport width and height. | |||||||||||||||

Matrices | |||||||||||||||

data MatrixMode | |||||||||||||||

| |||||||||||||||

matrixMode :: StateVar MatrixMode | |||||||||||||||

Controls which matrix stack is the target for subsequent matrix operations.
The initial value is (Modelview 0).
| |||||||||||||||

data Vector2 a | |||||||||||||||

| |||||||||||||||

data Vector3 a | |||||||||||||||

| |||||||||||||||

data MatrixOrder | |||||||||||||||

| |||||||||||||||

class Storable c => MatrixComponent c where | |||||||||||||||

| |||||||||||||||

class Matrix m where | |||||||||||||||

| |||||||||||||||

currentMatrix :: (Matrix m, MatrixComponent c) => StateVar (m c) | |||||||||||||||

matrix :: (Matrix m, MatrixComponent c) => Maybe MatrixMode -> StateVar (m c) | |||||||||||||||

multMatrix :: (Matrix m, MatrixComponent c) => m c -> IO () | |||||||||||||||

data GLmatrix a | |||||||||||||||

| |||||||||||||||

loadIdentity :: IO () | |||||||||||||||

ortho :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () | |||||||||||||||

frustum :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () | |||||||||||||||

depthClamp :: StateVar Capability | |||||||||||||||

activeTexture :: StateVar TextureUnit | |||||||||||||||

preservingMatrix :: IO a -> IO a | |||||||||||||||

Push the current matrix stack down by one, duplicating the current matrix,
excute the given action, and pop the current matrix stack, replacing the
current matrix with the one below it on the stack (i.e. restoring it to its
previous state). The returned value is that of the given action. Note that
a round-trip to the server is probably required. For a more efficient
version, see unsafePreservingMatrix.
| |||||||||||||||

unsafePreservingMatrix :: IO a -> IO a | |||||||||||||||

A more efficient, but potentially dangerous version of preservingMatrix:
The given action is not allowed to throw an exception or change the
current matrix mode permanently.
| |||||||||||||||

stackDepth :: Maybe MatrixMode -> GettableStateVar GLsizei | |||||||||||||||

maxStackDepth :: MatrixMode -> GettableStateVar GLsizei | |||||||||||||||

Normal Transformation | |||||||||||||||

rescaleNormal :: StateVar Capability | |||||||||||||||

If rescaleNormal contains Enabled, normal vectors specified with
normal are scaled by a scaling
factor derived from the modelview matrix. rescaleNormal requires that the
originally specified normals were of unit length, and that the modelview
matrix contains only uniform scales for proper results. The initial value of
rescaleNormal is Disabled.
| |||||||||||||||

normalize :: StateVar Capability | |||||||||||||||

If normalize contains Enabled, normal vectors specified with
normal are scaled to unit length
after transformation. The initial value of normalize is Disabled.
| |||||||||||||||

Generating Texture Coordinates | |||||||||||||||

data Plane a | |||||||||||||||

| |||||||||||||||

data TextureCoordName | |||||||||||||||

| |||||||||||||||

data TextureGenMode | |||||||||||||||

| |||||||||||||||

textureGenMode :: TextureCoordName -> StateVar (Maybe TextureGenMode) | |||||||||||||||

Produced by Haddock version 0.7 |