Table of Contents
glConvolutionParameterf, glConvolutionParameteri, glConvolutionParameterfv,
glConvolutionParameteriv - set convolution parameters
void
glConvolutionParameterf( GLenum target,
GLenum pname,
GLfloat params )
void glConvolutionParameteri( GLenum target,
GLenum pname,
GLint params )
eqn not supported
- target
- The target for the convolution parameter.
Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
- pname
- The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
- params
- The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
void glConvolutionParameterfv( GLenum target,
GLenum pname,
const GLfloat *params )
void glConvolutionParameteriv( GLenum target,
GLenum pname,
const GLint *params )
- target
- The target for the convolution parameter. Must be one
of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
- pname
- The parameter
to be set. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR,
GL_CONVOLUTION_FILTER_SCALE, or GL_CONVOLUTION_FILTER_BIAS.
- params
- The parameter
value. If pname is GL_CONVOLUTION_BORDER_MODE, params must be one of GL_REDUCE,
GL_CONSTANT_BORDER, or GL_REPLICATE_BORDER. Otherwise, must be a vector
of four values (for red, green, blue, and alpha, respectively) to be used
for scaling (when pname is GL_CONVOLUTION_FILTER_SCALE), or biasing (when
pname is GL_CONVOLUTION_FILTER_BIAS) a convolution filter kernel or setting
the constant border color (when pname is GL_CONVOLUTION_BORDER_COLOR.
glConvolutionParameter
sets the value of a convolution parameter.
target selects the convolution
filter to be affected: GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D
for the 1D, 2D, or separable 2D filter, respectively.
pname selects the
parameter to be changed. GL_CONVOLUTION_FILTER_SCALE and GL_CONVOLUTION_FILTER_BIAS
affect the definition of the convolution filter kernel; see glConvolutionFilter1D,
glConvolutionFilter2D, and glSeparableFilter2D for details. In these cases,
params is an array of four values to be applied to red, green, blue, and
alpha values, respectively. The initial value for GL_CONVOLUTION_FILTER_SCALE
is (1, 1, 1, 1), and the initial value for GL_CONVOLUTION_FILTER_BIAS is
(0, 0, 0, 0).
A pname value of GL_CONVOLUTION_BORDER_MODE controls the
convolution border mode. The accepted modes are:
- GL_REDUCE
- The image resulting
from convolution is smaller than the source image. If the filter width is
$Wf$ and height is $Hf$, and the source image width is $Ws$ and height
is $Hs$, then the convolved image width will be $Ws ~-~ Wf ~+~ 1$ and height
will be $Hs ~-~ Hf ~+~ 1$. (If this reduction would generate an image with
zero or negative width and/or height, the output is simply null, with no
error generated.) The coordinates of the image resulting from convolution
are zero through $Ws ~-~ Wf$ in width and zero through $Hs ~-~ Hf$ in height.
- GL_CONSTANT_BORDER
- The image resulting from convolution is the same size
as the source image, and processed as if the source image were surrounded
by pixels with their color specified by the GL_CONVOLUTION_BORDER_COLOR.
- GL_REPLICATE_BORDER
- The image resulting from convolution is the same size
as the source image, and processed as if the outermost pixel on the border
of the source image were replicated.
glConvolutionParameter is present
only if GL_ARB_imaging is returned when glGetString is called with an argument
of GL_EXTENSIONS.
In cases where errors can result from the specification
of invalid image dimensions, it is the dimensions after convolution that
are tested, not the dimensions of the source image. For example, glTexImage1D
requires power-of-two image size. When GL_REDUCE border mode is in effect,
the source image must be larger than the final power-of-two size by one less
than the size of the 1D filter kernel.
GL_INVALID_ENUM is generated
if target is not one of the allowable values.
GL_INVALID_ENUM is generated
if pname is not one of the allowable values.
GL_INVALID_ENUM is generated
if pname is GL_CONVOLUTION_BORDER_MODE and params is not one of GL_REDUCE,
GL_CONSTANT_BORDER, or GL_REPLICATE_BORDER.
GL_INVALID_OPERATION is generated
if glConvolutionParameter is executed between the execution of glBegin
and the corresponding execution of glEnd.
glGetConvolutionParameter
glConvolutionFilter1D(3G)
, glConvolutionFilter2D(3G)
, glSeparableFilter2D(3G)
,
glGetConvolutionParameter(3G)
Table of Contents