|
glHistogram — define histogram table
void glHistogram( | GLenum | target, |
| GLsizei | width, | |
| GLenum | internalformat, | |
| GLboolean | sink); |
target
The histogram whose parameters are to be set.
Must be one of
GL_HISTOGRAM or
GL_PROXY_HISTOGRAM.
widthThe number of entries in the histogram table. Must be a power of 2.
internalformat
The format of entries in the histogram table.
Must be one of
GL_ALPHA,
GL_ALPHA4,
GL_ALPHA8,
GL_ALPHA12,
GL_ALPHA16,
GL_LUMINANCE,
GL_LUMINANCE4,
GL_LUMINANCE8,
GL_LUMINANCE12,
GL_LUMINANCE16,
GL_LUMINANCE_ALPHA,
GL_LUMINANCE4_ALPHA4,
GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8,
GL_LUMINANCE12_ALPHA4,
GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16,
GL_R3_G3_B2,
GL_RGB,
GL_RGB4,
GL_RGB5,
GL_RGB8,
GL_RGB10,
GL_RGB12,
GL_RGB16,
GL_RGBA,
GL_RGBA2,
GL_RGBA4,
GL_RGB5_A1,
GL_RGBA8,
GL_RGB10_A2,
GL_RGBA12, or
GL_RGBA16.
sink
If GL_TRUE, pixels will be consumed by the histogramming
process and no drawing or texture loading will take place.
If GL_FALSE, pixels will proceed to the minmax process after
histogramming.
When GL_HISTOGRAM is enabled, RGBA color components are converted to
histogram table indices by clamping to the range [0,1], multiplying by
the width of the histogram table, and rounding to the nearest integer.
The table entries selected by the RGBA indices are then incremented.
(If the internal format of the histogram table includes luminance, then
the index derived from the R color component determines the luminance
table entry to be incremented.) If a histogram table entry is incremented
beyond its maximum value, then its value becomes undefined. (This is
not an error.)
Histogramming is performed only for RGBA pixels (though these may be specified originally as color indices and converted to RGBA by index table lookup). Histogramming is enabled with glEnable and disabled with glDisable.
When target is GL_HISTOGRAM, glHistogram redefines the current
histogram table to have width entries of the format specified by
internalformat.
The entries are indexed 0 through
sink is GL_TRUE, then pixels are discarded after histogramming;
no further processing of the pixels takes place, and no drawing,
texture loading, or pixel readback will result.
When target is GL_PROXY_HISTOGRAM, glHistogram computes all
state information as if the histogram table were to be redefined,
but does not actually define the new table.
If the requested histogram table is too large to be supported, then the
state information will be set to zero.
This provides a way to determine if a histogram table with the given
parameters can be supported.
glHistogram is present only if ARB_imaging is returned when glGetString
is called with an argument of GL_EXTENSIONS.
GL_INVALID_ENUM is generated if target is not one of the allowable
values.
GL_INVALID_VALUE is generated if width is less than zero or is
not a power of 2.
GL_INVALID_ENUM is generated if internalformat is not one of the
allowable values.
GL_TABLE_TOO_LARGE is generated if target is GL_HISTOGRAM
and the histogram table specified is too large for the implementation.
GL_INVALID_OPERATION is generated if glHistogram is executed
between the execution of glBegin and the corresponding
execution of glEnd.
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.