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



GLCOPYCONVOLUTIONFILTER2D(3G)                                                  GLCOPYCONVOLUTIONFILTER2D(3G)



NAME
       glCopyConvolutionFilter2D - copy pixels into a two-dimensional convolution filter


C SPECIFICATION
       void glCopyConvolutionFilter2D( GLenum target,
                                       GLenum internalformat,
                                       GLint x,
                                       GLint y,
                                       GLsizei width,
                                       GLsizei height )


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.

       x, y            The window space coordinates of the lower-left coordinate of the pixel array to copy.

       width           The width of the pixel array to copy.

       height          The height of the pixel array to copy.

DESCRIPTION
       glCopyConvolutionFilter2D  defines  a  two-dimensional convolution filter kernel with pixels from the
       current GL_READ_BUFFER (rather than from main memory, as is the case for glConvolutionFilter2D).

       The screen-aligned pixel rectangle with lower-left corner at (x, y), width width and height height is
       used  to  define the convolution filter. If any pixels within this region are outside the window that
       is associated with the GL context, the values obtained for those pixels are undefined.

       The pixels in the rectangle are processed exactly as if glReadPixels had been called with format  set
       to  RGBA,  but the process stops just before final conversion.  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    parameters.     (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

       Pixel ordering is such that lower x screen coordinates correspond to lower  i  filter  image  coordi-nates, coordinates,
       nates, and lower y screen coordinates correspond to lower j filter image coordinates.

       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
       glCopyConvolutionFilter2D 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_OPERATION  is  generated if glCopyConvolutionFilter2D is executed between the execution of
       glBegin and the corresponding execution of glEnd.

ASSOCIATED GETS
       glGetConvolutionParameter, glGetConvolutionFilter

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




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