Copyright | (c) Sven Panne 2002-2013 |
---|---|
License | BSD3 |
Maintainer | Sven Panne <svenpanne@gmail.com> |
Stability | stable |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
OpenGL supports both RGBA and color index rendering. The RGBA mode is generally preferable to color index because more OpenGL rendering capabilities are available and color index mode requires the loading of colormap entries.
The GLUT color index state variables are used to read and write entries in a
window's color index colormap. Every GLUT color index window has its own
logical color index colormap. The size of a window's colormap can be
determined by reading numColorMapEntries
.
GLUT color index windows within a program can attempt to share colormap
resources by copying a single color index colormap to multiple windows using
copyColormap
. If possible GLUT will attempt to share the actual colormap.
While copying colormaps using copyColormap
can potentially allow sharing of
physical colormap resources, logically each window has its own colormap. So
changing a copied colormap of a window will force the duplication of the
colormap. For this reason, color index programs should generally load a
single color index colormap, copy it to all color index windows within the
program, and then not modify any colormap cells.
Use of multiple colormaps is likely to result in colormap installation problems where some windows are displayed with an incorrect colormap due to limitations on colormap resources.
- colorMapEntry :: Index1 GLint -> StateVar (Color3 GLfloat)
- copyColormap :: MonadIO m => Window -> m ()
- numColorMapEntries :: GettableStateVar GLint
- transparentIndex :: GettableStateVar (Index1 GLint)
Documentation
colorMapEntry :: Index1 GLint -> StateVar (Color3 GLfloat) Source
Controls the color index colormap entry of the current window's logical
colormap for the layer in use. The layer in use of the current window
should be a color index window. The color index should be zero or greater and
less than the total number of colormap entries for the window (see
numColorMapEntries
) and different from an overlay's transparent index (see
transparentIndex
).
If the layer in use's colormap was copied by reference, setting a colormap entry will force the duplication of the colormap.
copyColormap :: MonadIO m => Window -> m () Source
Copy (lazily if possible to promote sharing) the logical colormap from a
specified window to the current window's layer in use. The copy will be
from the normal plane to the normal plane; or from the overlay to the overlay
(never across different layers). Once a colormap has been copied, avoid
setting cells in the colormap via colorMapEntry
since that will force an
actual copy of the colormap if it was previously copied by reference.
copyColormap
should only be called when both the current window and the
specified window are color index windows.
numColorMapEntries :: GettableStateVar GLint Source
Contains the number of entries in the colormap of the current window's current layer (0 in RGBA mode).
transparentIndex :: GettableStateVar (Index1 GLint) Source
Contains the transparent color index of the overlay of the current window or -1 if no overlay is in use.