fglHistogramEXT(3G)

fglHistogramEXT - define histogram table

As shipped in IRIX 6.5.15. Unchanged since IRIX 6.5.

NAME
     fglHistogramEXT - define histogram table


FORTRAN SPECIFICATION
     SUBROUTINE fglHistogramEXT( INTEGER*4 target,
                                 INTEGER*4 width,
                                 INTEGER*4 internalformat,
                                 LOGICAL*1 sink )


PARAMETERS
     target          The histogram whose parameters are to be set.  Must be
                     one of GL_HISTOGRAM_EXT or GL_PROXY_HISTOGRAM_EXT.

     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 GL_ALPHA, GL_ALPHA4_EXT, GL_ALPHA8_EXT,
                     GL_ALPHA12_EXT, GL_ALPHA16_EXT, GL_LUMINANCE,
                     GL_LUMINANCE4_EXT, GL_LUMINANCE8_EXT, GL_LUMINANCE12_EXT,
                     GL_LUMINANCE16_EXT, GL_LUMINANCE_ALPHA,
                     GL_LUMINANCE4_ALPHA4_EXT, GL_LUMINANCE6_ALPHA2_EXT,
                     GL_LUMINANCE8_ALPHA8_EXT, GL_LUMINANCE12_ALPHA4_EXT,
                     GL_LUMINANCE12_ALPHA12_EXT, GL_LUMINANCE16_ALPHA16_EXT,
                     GL_RGB, GL_RGB2_EXT, GL_RGB4_EXT, GL_RGB5_EXT,
                     GL_RGB8_EXT, GL_RGB10_EXT, GL_RGB12_EXT, GL_RGB16_EXT,
                     GL_RGBA, GL_RGBA2_EXT, GL_RGBA4_EXT, GL_RGB5_A1_EXT,
                     GL_RGBA8_EXT, GL_RGB10_A2_EXT, GL_RGBA12_EXT, or
                     GL_RGBA16_EXT.

     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
     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 fglEnable and disabled with fglDisable.

     When GL_HISTOGRAM_EXT 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.)

     When target is GL_HISTOGRAM_EXT, fglHistogramEXT 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 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_EXT, fglHistogramEXT 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
     fglGetHistogramParameterEXT with a target of GL_HISTOGRAM_EXT (to obtain
     information for the current histogram table) or GL_PROXY_HISTOGRAM_EXT
     (to obtain information from the most recent proxy request) and one of the
     following values for the pname argument:

    Parameter                         Description
    ___________________________________________________________________________
    GL_HISTOGRAM_WIDTH_EXT            Histogram table width
    GL_HISTOGRAM_FORMAT_EXT           Internal format
    GL_HISTOGRAM_RED_SIZE_EXT         Red component counter size, in bits
    GL_HISTOGRAM_GREEN_SIZE_EXT       Green component counter size, in bits
    GL_HISTOGRAM_BLUE_SIZE_EXT        Blue component counter size, in bits
    GL_HISTOGRAM_ALPHA_SIZE_EXT       Alpha component counter size, in bits
    GL_HISTOGRAM_LUMINANCE_SIZE_EXT   Luminance component counter size, in bits
    GL_HISTOGRAM_SINK_EXT             Value of the sink parameter

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_EXT is generated if target is GL_HISTOGRAM_EXT and the
     histogram table specified is too large for the implementation.

     GL_INVALID_OPERATION is generated if fglHistogramEXT is executed between
     the execution of fglBegin and the corresponding execution of fglEnd.

ASSOCIATED GETS
     fglGetHistogramParameterEXT.


MACHINE DEPENDENCIES
     On RealityEngine, RealityEngine2, and VTX systems, histogram and minmax
     may not be used when rendering to pixmaps.


SEE ALSO
     fglGetHistogramEXT, fglResetHistogramEXT.