glHistogramEXT(3G) OpenGL Reference glHistogramEXT(3G)
NAME
glHistogramEXT - define histogram table
C SPECIFICATION
void glHistogramEXT( GLenum target,
GLsizei width,
GLenum internalformat,
GLboolean sink )
PARAMETERS
target The histogram whose parameters are to be set. Must be
one of GLHISTOGRAMEXT or GLPROXYHISTOGRAMEXT.
width The 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 GLALPHA, GLALPHA4EXT, GLALPHA8EXT,
GLALPHA12EXT, GLALPHA16EXT, GLLUMINANCE,
GLLUMINANCE4EXT, GLLUMINANCE8EXT, GLLUMINANCE12EXT,
GLLUMINANCE16EXT, GLLUMINANCEALPHA,
GLLUMINANCE4ALPHA4EXT, GLLUMINANCE6ALPHA2EXT,
GLLUMINANCE8ALPHA8EXT, GLLUMINANCE12ALPHA4EXT,
GLLUMINANCE12ALPHA12EXT, GLLUMINANCE16ALPHA16EXT,
GLRGB, GLRGB2EXT, GLRGB4EXT, GLRGB5EXT,
GLRGB8EXT, GLRGB10EXT, GLRGB12EXT, GLRGB16EXT,
GLRGBA, GLRGBA2EXT, GLRGBA4EXT, GLRGB5A1EXT,
GLRGBA8EXT, GLRGB10A2EXT, GLRGBA12EXT, or
GLRGBA16EXT.
sink If GLTRUE, pixels will be consumed by the histogramming
process and no drawing or texture loading will take
place. If GLFALSE, pixels will proceed to the minmax
process after histogramming.
DESCRIPTION
Histogramming is part of the OpenGL pixel transfer process. It takes
place immediately after index lookup. 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 GLHISTOGRAMEXT 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
Page 1
glHistogramEXT(3G) OpenGL Reference glHistogramEXT(3G)
an error.)
When target is GLHISTOGRAMEXT, glHistogramEXT redefines the current
histogram table to have width entries of the format 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 GLTRUE, 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 GLPROXYHISTOGRAMEXT, glHistogramEXT computes all state
information as if the histogram table was 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.
The histogram state information may be queried by calling
glGetHistogramParameterEXT with a target of GLHISTOGRAMEXT (to obtain
information for the current histogram table) or GLPROXYHISTOGRAMEXT
(to obtain information from the most recent proxy request) and one of the
following values for the pname argument:
Parameter Description
___________________________________________________________________________
GLHISTOGRAMWIDTHEXT Histogram table width
GLHISTOGRAMFORMATEXT Internal format
GLHISTOGRAMREDSIZEEXT Red component counter size, in bits
GLHISTOGRAMGREENSIZEEXT Green component counter size, in bits
GLHISTOGRAMBLUESIZEEXT Blue component counter size, in bits
GLHISTOGRAMALPHASIZEEXT Alpha component counter size, in bits
GLHISTOGRAMLUMINANCESIZEEXT Luminance component counter size, in bits
GLHISTOGRAMSINKEXT Value of the sink parameter
ERRORS
GLINVALIDENUM is generated if target is not one of the allowable
values.
GLINVALIDVALUE is generated if width is less than zero or is not a
power of 2.
GLINVALIDENUM is generated if internalformat is not one of the
allowable values.
GLTABLETOOLARGEEXT is generated if target is GLHISTOGRAMEXT and the
histogram table specified is too large for the implementation.
GLINVALIDOPERATION is generated if glHistogramEXT is executed between
the execution of glBegin and the corresponding execution of glEnd.
Page 2
glHistogramEXT(3G) OpenGL Reference glHistogramEXT(3G)
ASSOCIATED GETS
glGetHistogramParameterEXT.
MACHINE DEPENDENCIES
On RealityEngine, RealityEngine2, and VTX systems, histogram and minmax
may not be used when rendering to pixmaps.
SEE ALSO
glGetHistogramEXT, glResetHistogramEXT.
Page 3