GLHISTOGRAM(3G) GLHISTOGRAM(3G)
NAME
glHistogram - define histogram table
C SPECIFICATION
void glHistogram( GLenum target,
GLsizei width,
GLenum internalformat,
GLboolean sink )
PARAMETERS
target The histogram whose parameters are to be set. Must be one of GL_HISTOGRAM or
GL_PROXY_HISTOGRAM.
width The number of entries in the histogram table. Must be a power of 2.
internalformat The 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.
DESCRIPTION
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 of the histogram table includes luminance, then the index derived from the R color compo-nent component
nent determines the luminance table entry to be incremented.) If a histogram table entry is incre-mented incremented
mented 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 specified by internalformat. The entries are indexed 0 through width - 1, and all entries
are initialized to zero. The values in the previous histogram table, if any, are lost. If 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 ta-ble table
ble were to be redefined, but does not actually define the new table. If the requested histogram ta-ble table
ble 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.
NOTES
glHistogram is present only if GL_ARB_imaging is returned when glGetString is called with an argument
of GL_EXTENSIONS.
ERRORS
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.
ASSOCIATED GETS
glGetHistogramParameter
SEE ALSO
glGetHistogram(3G), glResetHistogram(3G)
GLHISTOGRAM(3G)
|