ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



GLCONVOLUTIONFILTER2D(3G)                                                          GLCONVOLUTIONFILTER2D(3G)



NAME
       glConvolutionFilter2D - define a two-dimensional convolution filter


C SPECIFICATION
       void glConvolutionFilter2D( GLenum target,
                                   GLenum internalformat,
                                   GLsizei width,
                                   GLsizei height,
                                   GLenum format,
                                   GLenum type,
                                   const GLvoid *image )


PARAMETERS
       target          Must be GL_CONVOLUTION_2D.

       internalformat  The  internal   of the convolution filter kernel.  The allowable values are 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_INTENSITY,
                       GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12,  GL_INTENSITY16,  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.

       width           The width of the pixel array referenced by image.

       height          The height of the pixel array referenced by image.

       format          The  of the pixel data in image.  The allowable values are GL_RED, GL_GREEN, GL_BLUE,
                       GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.

       type            The  type  of the pixel data in image.  Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE,
                       GL_BITMAP,   GL_UNSIGNED_SHORT,   GL_SHORT,   GL_UNSIGNED_INT,   GL_INT,    GL_FLOAT,
                       GL_UNSIGNED_BYTE_3_3_2,      GL_UNSIGNED_BYTE_2_3_3_REV,     GL_UNSIGNED_SHORT_5_6_5,
                       GL_UNSIGNED_SHORT_5_6_5_REV,                               GL_UNSIGNED_SHORT_4_4_4_4,
                       GL_UNSIGNED_SHORT_4_4_4_4_REV,                             GL_UNSIGNED_SHORT_5_5_5_1,
                       GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8,  GL_UNSIGNED_INT_8_8_8_8_REV,
                       GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

       image           Pointer  to a two-dimensional array of pixel data that is processed to build the con-volution convolution
                       volution filter kernel.

DESCRIPTION
       glConvolutionFilter2D builds a two-dimensional convolution filter kernel from an array of pixels.

       The pixel array specified by width, height, format, type, and image is extracted from memory and pro-cessed processed
       cessed just as if glDrawPixels were called, but processing stops after the final expansion to RGBA is
       completed.

       The  R,  G,  B,  and  A   components   of   each   pixel   are   next   scaled   by   the   four   2D
       GL_CONVOLUTION_FILTER_SCALE  parameters  and biased by the four 2D GL_CONVOLUTION_FILTER_BIAS parame-ters. parameters.
       ters.  (The scale and bias parameters are set by glConvolutionParameter using  the  GL_CONVOLUTION_2D
       target  and  the  names  GL_CONVOLUTION_FILTER_SCALE  and GL_CONVOLUTION_FILTER_BIAS.  The parameters
       themselves are vectors of four values that are applied to  red,  green,  blue,  and  alpha,  in  that
       order.)  The R, G, B, and A values are not clamped to [0,1] at any time during this process.

       Each  pixel  is  then converted to the internal  specified by internalformat.  This conversion simply
       maps the component values of the pixel (R, G, B, and A) to the values included in the internal  (red,
       green, blue, alpha, luminance, and intensity).  The mapping is as follows:


        Internal Format     Channel mapping
        GL_ALPHA            A=Alpha
        GL_LUMINANCE        R=Luminance
        GL_LUMINANCE_ALPHA  A=Alpha, R=Luminance
        GL_INTENSITY        R=Intensity
        GL_RGB              R=Red, G=Green, B=Blue
        GL_RGBA             R=Red, G=Green, B=Blue, A=Alpha


       The  red,  green,  blue,  alpha,  luminance,  and/or intensity components of the resulting pixels are
       stored in floating-point rather than integer They form a two-dimensional filter kernel image  indexed
       with coordinates i and j such that i starts at zero and increases from left to right, and j starts at
       zero and increases from bottom to top.  Kernel location i,j is derived from the Nth pixel, where N is
       i+j*width.

       Note  that  after a convolution is performed, the resulting color components are also scaled by their
       corresponding   GL_POST_CONVOLUTION_c_SCALE   parameters   and   biased   by   their    corresponding
       GL_POST_CONVOLUTION_c_BIAS  parameters  (where  c  takes  on the values RED, GREEN, BLUE, and ALPHA).
       These parameters are set by glPixelTransfer.

NOTES
       glConvolutionFilter2D 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 GL_CONVOLUTION_2D.

       GL_INVALID_ENUM is generated if internalformat is not one of the allowable values.

       GL_INVALID_VALUE is generated if width is less than zero or greater than the maximum supported value.
       This value may be queried with glGetConvolutionParameter  using  target  GL_CONVOLUTION_2D  and  name
       GL_MAX_CONVOLUTION_WIDTH.

       GL_INVALID_VALUE  is  generated  if  height  is  less than zero or greater than the maximum supported
       value.  This value may be queried with glGetConvolutionParameter using target  GL_CONVOLUTION_2D  and
       name GL_MAX_CONVOLUTION_HEIGHT.

       GL_INVALID_ENUM is generated if format is not one of the allowable values.

       GL_INVALID_ENUM is generated if type is not one of the allowable values.

       GL_INVALID_OPERATION  is  generated  if  glConvolutionFilter2D  is  executed between the execution of
       glBegin and the corresponding execution of glEnd.

       GL_INVALID_OPERATION    is    generated    if    height    is    one    of    GL_UNSIGNED_BYTE_3_3_2,
       GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not
       GL_RGB.

       GL_INVALID_OPERATION   is   generated   if    height    is    one    of    GL_UNSIGNED_SHORT_4_4_4_4,
       GL_UNSIGNED_SHORT_4_4_4_4_REV,        GL_UNSIGNED_SHORT_5_5_5_1,       GL_UNSIGNED_SHORT_1_5_5_5_REV,
       GL_UNSIGNED_INT_8_8_8_8,      GL_UNSIGNED_INT_8_8_8_8_REV,       GL_UNSIGNED_INT_10_10_10_2,       or
       GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

ASSOCIATED GETS
       glGetConvolutionParameter, glGetConvolutionFilter

SEE ALSO
       glConvolutionFilter1D(3G), glSeparableFilter2D(3G), glConvolutionParameter(3G), glPixelTransfer(3G)




                                                                                   GLCONVOLUTIONFILTER2D(3G)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.