MirOS Manual: glAccum(3)


GLACCUM(3G)         UNIX Programmer's Manual          GLACCUM(3G)

NAME

     glAccum - operate on the accumulation buffer

C SPECIFICATION

     void glAccum( GLenum op,
                   GLfloat value )

PARAMETERS

     op     Specifies the accumulation buffer operation. Symbolic
            constants GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT, and
            GL_RETURN are accepted.

     value  Specifies a floating-point value used in the accumu-
            lation buffer operation. op determines how value is
            used.

DESCRIPTION

     The accumulation buffer is an extended-range color buffer.
     Images are not rendered into it. Rather, images rendered
     into one of the color buffers are added to the contents of
     the accumulation buffer after rendering. Effects such as
     antialiasing (of points, lines, and polygons), motion blur,
     and depth of field can be created by accumulating images
     generated with different transformation matrices.

     Each pixel in the accumulation buffer consists of red,
     green, blue, and alpha values. The number of bits per com-
     ponent in the accumulation buffer depends on the implementa-
     tion. You can examine this number by calling glGetIntegerv
     four times, with arguments GL_ACCUM_RED_BITS,
     GL_ACCUM_GREEN_BITS, GL_ACCUM_BLUE_BITS, and
     GL_ACCUM_ALPHA_BITS. Regardless of the number of bits per
     component, the range of values stored by each component is
     [-1, 1]. The accumulation buffer pixels are mapped one-to-
     one with frame buffer pixels.

     glAccum operates on the accumulation buffer. The first argu-
     ment, op, is a symbolic constant that selects an accumula-
     tion buffer operation. The second argument, value, is a
     floating-point value to be used in that operation. Five
     operations are specified: GL_ACCUM, GL_LOAD, GL_ADD,
     GL_MULT, and GL_RETURN.

     All accumulation buffer operations are limited to the area
     of the current scissor box and applied identically to the
     red, green, blue, and alpha components of each pixel. If a
     glAccum operation results in a value outside the range
     [-1, 1], the contents of an accumulation buffer pixel com-
     ponent are undefined.

MirOS BSD #10-current   Printed 20.2.2012                       1

GLACCUM(3G)         UNIX Programmer's Manual          GLACCUM(3G)

     The operations are as follows:

     GL_ACCUM      Obtains R, G, B, and A values from the buffer
                   currently selected for reading (see
                   glReadBuffer). Each component value is divided
                   by 2n-1, where n is the number of bits allo-
                   cated to each color component in the currently
                   selected buffer. The result is a floating-
                   point value in the range [0, 1], which is mul-
                   tiplied by value and added to the correspond-
                   ing pixel component in the accumulation
                   buffer, thereby updating the accumulation
                   buffer.

     GL_LOAD       Similar to GL_ACCUM, except that the current
                   value in the accumulation buffer is not used
                   in the calculation of the new value. That is,
                   the R, G, B, and A values from the currently
                   selected buffer are divided by 2n-1, multi-
                   plied by value, and then stored in the
                   corresponding accumulation buffer cell,
                   overwriting the current value.

     GL_ADD        Adds value to each R, G, B, and A in the accu-
                   mulation buffer.

     GL_MULT       Multiplies each R, G, B, and A in the accumu-
                   lation buffer by value and returns the scaled
                   component to its corresponding accumulation
                   buffer location.

     GL_RETURN     Transfers accumulation buffer values to the
                   color buffer or buffers currently selected for
                   writing. Each R, G, B, and A component is mul-
                   tiplied by value, then multiplied by 2n-1,
                   clamped to the range [0, 2n-1], and stored in
                   the corresponding display buffer cell. The
                   only fragment operations that are applied to
                   this transfer are pixel ownership, scissor,
                   dithering, and color writemasks.

     To clear the accumulation buffer, call glClearAccum with R,
     G, B, and A values to set it to, then call glClear with the
     accumulation buffer enabled.

NOTES

     Only pixels within the current scissor box are updated by a
     glAccum operation.

ERRORS

     GL_INVALID_ENUM is generated if op is not an accepted value.

MirOS BSD #10-current   Printed 20.2.2012                       2

GLACCUM(3G)         UNIX Programmer's Manual          GLACCUM(3G)

     GL_INVALID_OPERATION is generated if there is no accumula-
     tion buffer.

     GL_INVALID_OPERATION is generated if glAccum is executed
     between the execution of glBegin and the corresponding exe-
     cution of glEnd.

ASSOCIATED GETS

     glGet with argument GL_ACCUM_RED_BITS
     glGet with argument GL_ACCUM_GREEN_BITS
     glGet with argument GL_ACCUM_BLUE_BITS
     glGet with argument GL_ACCUM_ALPHA_BITS

SEE ALSO

     glClear(3G), glClearAccum(3G), glCopyPixels(3G),
     glDrawBuffer(3G), glGet(3G), glReadBuffer(3G),
     glReadPixels(3G), glScissor(3G), glStencilOp(3G)

MirOS BSD #10-current   Printed 20.2.2012                       3

Generated on 2012-02-20 02:47:02 by $MirOS: src/scripts/roff2htm,v 1.70 2011/12/03 18:21:12 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2011 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.