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



GLSEPARABLEFILTER2D(3G)                                                              GLSEPARABLEFILTER2D(3G)



NAME
       glSeparableFilter2D - define a separable two-dimensional convolution filter


C SPECIFICATION
       void glSeparableFilter2D( GLenum target,
                                 GLenum internalformat,
                                 GLsizei width,
                                 GLsizei height,
                                 GLenum format,
                                 GLenum type,
                                 const GLvoid *row,
                                 const GLvoid *column )


PARAMETERS
       target          Must be GL_SEPARABLE_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 number of elements in the pixel array referenced by row.  (This is the  width  of
                       the separable filter kernel.)

       height          The  number of elements in the pixel array referenced by column.  (This is the height
                       of the separable filter kernel.)

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

       type            The type of the pixel data in row and column.  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.

       row             Pointer to a one-dimensional array of pixel data that is processed to build  the  row
                       filter kernel.

       column          Pointer  to a one-dimensional array of pixel data that is processed to build the col-umn column
                       umn filter kernel.

DESCRIPTION
       glSeparableFilter2D builds a two-dimensional separable convolution filter kernel from two  arrays  of
       pixels.

       The  pixel arrays specified by (width, format, type, row) and (height, format, type, column) are pro-cessed processed
       cessed just as if they had been passed to glDrawPixels, but processing stops after the  final  expan-sion expansion
       sion to RGBA is completed.

       Next,  the R, G, B, and A components of all pixels in both arrays are scaled by the four separable 2D
       GL_CONVOLUTION_FILTER_SCALE parameters and biased by the four separable 2D GL_CONVOLUTION_FILTER_BIAS
       parameters.    (The   scale   and  bias  parameters  are  set  by  glConvolutionParameter  using  the
       GL_SEPARABLE_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 -----------------------------------------------------------------------Internal
                      Internal Format      Red   Green   Blue   Alpha   Luminance   Intensity
                      ------------------------------------------------------------------------GL_LUMINANCE -----------------------------------------------------------------------GL_LUMINANCE
                      GL_LUMINANCE                                          R
                      GL_LUMINANCE_ALPHA                          A         R

                      GL_INTENSITY                                                      R
                      GL_RGB                R      G      B
                      GL_RGBA               R      G      B       A
                      ------------------------------------------------------------------------The -----------------------------------------------------------------------The


       The red, green, blue, alpha, luminance, and/or intensity  components  of  the  resulting  pixels  are
       stored in floating-point rather than integer They form two one-dimensional filter kernel images.  The
       row image is indexed by coordinate i starting at zero and increasing from left to right.  Each  loca-tion location
       tion  in the row image is derived from element i of row.  The column image is indexed by coordinate j
       starting at zero and increasing from bottom to top.  Each location in the  column  image  is  derived
       from element j of column.

       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
       glSeparableFilter2D 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_SEPARABLE_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_SEPARABLE_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_SEPARABLE_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 glSeparableFilter2D 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, glGetSeparableFilter

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




                                                                                     GLSEPARABLEFILTER2D(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.