glCopyConvolutionFilter2D

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
GLCOPYCONVOLUTIONFILTER2D(3G)			GLCOPYCONVOLUTIONFILTER2D(3G)



NAME
       glCopyConvolutionFilter2D  - copy pixels into a two-dimensional convo-
       lution 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 coordi-
		       nate 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	 fil-
       ter.  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	    Red	  Green	  Blue	 Alpha	 Luminance   Intensity
       ------------------------------------------------------------------------
       GL_ALPHA					   A
       GL_LUMINANCE				   R
       GL_LUMINANCE_ALPHA		   A	   R
       GL_INTENSITY							 R
       GL_RGB		     R	    G	   B
       GL_RGBA		     R	    G	   B	   A
       ------------------------------------------------------------------------

       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 coordinates, and lower y screen coordinates cor-
       respond to lower j filter image coordinates.

       Note that after a convolution is performed, the resulting color compo-
       nents	  are	   also	    scaled     by     their	corresponding
       GL_POST_CONVOLUTION_c_SCALE parameters and biased by their correspond-
       ing 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 exe-
       cuted 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)