glConvolutionParameter
GLCONVOLUTIONPARAMETER(3G) GLCONVOLUTIONPARAMETER(3G)
NAME
glConvolutionParameterf, glConvolutionParameteri, glConvolutionParame-
terfv, glConvolutionParameteriv - set convolution parameters
C SPECIFICATION
void glConvolutionParameterf( GLenum target,
GLenum pname,
GLfloat params )
void glConvolutionParameteri( GLenum target,
GLenum pname,
GLint params )
PARAMETERS
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.
C SPECIFICATION
void glConvolutionParameterfv( GLenum target,
GLenum pname,
const GLfloat *params )
void glConvolutionParameteriv( GLenum target,
GLenum pname,
const GLint *params )
PARAMETERS
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 val-
ues (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 convolu-
tion filter kernel or setting the constant border color (when
pname is GL_CONVOLUTION_BORDER_COLOR.
DESCRIPTION
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 convo-
lution 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 sur-
rounded 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.
NOTES
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.
ERRORS
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 val-
ues.
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 exe-
cuted between the execution of glBegin and the corresponding execution
of glEnd.
ASSOCIATED GETS
glGetConvolutionParameter
SEE ALSO
glConvolutionFilter1D(3G), glConvolutionFilter2D(3G),
glSeparableFilter2D(3G), glGetConvolutionParameter(3G)
GLCONVOLUTIONPARAMETER(3G)