1GLCONVOLUTIONFILTER2(3G)         OpenGL Manual        GLCONVOLUTIONFILTER2(3G)
2
3
4

NAME

6       glConvolutionFilter2D - define a two-dimensional convolution filter
7

C SPECIFICATION

9       void glConvolutionFilter2D(GLenum target, GLenum internalformat,
10                                  GLsizei width, GLsizei height,
11                                  GLenum format, GLenum type,
12                                  const GLvoid * data);
13

PARAMETERS

15       target
16           Must be GL_CONVOLUTION_2D.
17
18       internalformat
19           The internal format of the convolution filter kernel. The allowable
20           values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16,
21           GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12,
22           GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4,
23           GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4,
24           GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY,
25           GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16,
26           GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12,
27           GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8,
28           GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
29
30       width
31           The width of the pixel array referenced by data.
32
33       height
34           The height of the pixel array referenced by data.
35
36       format
37           The format of the pixel data in data. The allowable values are
38           GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA,
39           GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
40
41       type
42           The type of the pixel data in data. Symbolic constants
43           GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT,
44           GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2,
45           GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5,
46           GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4,
47           GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1,
48           GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8,
49           GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and
50           GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
51
52       data
53           Pointer to a two-dimensional array of pixel data that is processed
54           to build the convolution filter kernel.
55

DESCRIPTION

57       glConvolutionFilter2D builds a two-dimensional convolution filter
58       kernel from an array of pixels.
59
60       The pixel array specified by width, height, format, type, and data is
61       extracted from memory and processed just as if glDrawPixels() were
62       called, but processing stops after the final expansion to RGBA is
63       completed.
64
65       If a non-zero named buffer object is bound to the
66       GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer()) while a convolution
67       filter is specified, data is treated as a byte offset into the buffer
68       object's data store.
69
70       The R, G, B, and A components of each pixel are next scaled by the four
71       2D GL_CONVOLUTION_FILTER_SCALE parameters and biased by the four 2D
72       GL_CONVOLUTION_FILTER_BIAS parameters. (The scale and bias parameters
73       are set by glConvolutionParameter() using the GL_CONVOLUTION_2D target
74       and the names GL_CONVOLUTION_FILTER_SCALE and
75       GL_CONVOLUTION_FILTER_BIAS. The parameters themselves are vectors of
76       four values that are applied to red, green, blue, and alpha, in that
77       order.) The R, G, B, and A values are not clamped to [0,1] at any time
78       during this process.
79
80       Each pixel is then converted to the internal format specified by
81       internalformat. This conversion simply maps the component values of the
82       pixel (R, G, B, and A) to the values included in the internal format
83       (red, green, blue, alpha, luminance, and intensity). The mapping is as
84       follows:
85
86       ┌─────────────────────────────────┬─────────────────────────────┬───────────────────────────────┬──────────────────────────────┬───────────────────────────────┬───────────────────────────────────┬───────────────────────────────────┐
87       │                                 │                             │                               │                              │                               │                                   │                                   │
88Internal Red Green Blue Alpha Luminance Intensity 
89Format                           │                             │                               │                              │                               │                                   │                                   │
90       │                                 │                             │                               │                              │                               │                                   │                                   │
91       ├─────────────────────────────────┼─────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┤
92GL_ALPHA                         │                             │                               │                              │               A               │                                   │                                   │
93       ├─────────────────────────────────┼─────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┤
94GL_LUMINANCE                     │                             │                               │                              │                               │                 R                 │                                   │
95       ├─────────────────────────────────┼─────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┤
96GL_LUMINANCE_ALPHA               │                             │                               │                              │               A               │                 R                 │                                   │
97       ├─────────────────────────────────┼─────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┤
98GL_INTENSITY                     │                             │                               │                              │                               │                                   │                 R                 │
99       ├─────────────────────────────────┼─────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┤
100GL_RGB                           │              R              │               G               │              B               │                               │                                   │                                   │
101       ├─────────────────────────────────┼─────────────────────────────┼───────────────────────────────┼──────────────────────────────┼───────────────────────────────┼───────────────────────────────────┼───────────────────────────────────┤
102GL_RGBA                          │              R              │               G               │              B               │               A               │                                   │                                   │
103       └─────────────────────────────────┴─────────────────────────────┴───────────────────────────────┴──────────────────────────────┴───────────────────────────────┴───────────────────────────────────┴───────────────────────────────────┘
104
105       The red, green, blue, alpha, luminance, and/or intensity components of
106       the resulting pixels are stored in floating-point rather than integer
107       format. They form a two-dimensional filter kernel image indexed with
108       coordinates i and j such that i starts at zero and increases from left
109       to right, and j starts at zero and increases from bottom to top. Kernel
110       location i,j is derived from the Nth pixel, where N is i+j*width.
111
112       Note that after a convolution is performed, the resulting color
113       components are also scaled by their corresponding
114       GL_POST_CONVOLUTION_c_SCALE parameters and biased by their
115       corresponding GL_POST_CONVOLUTION_c_BIAS parameters (where c takes on
116       the values RED, GREEN, BLUE, and ALPHA). These parameters are set by
117       glPixelTransfer().
118

NOTES

120       glConvolutionFilter2D is present only if ARB_imaging is returned when
121       glGetString() is called with an argument of GL_EXTENSIONS.
122

ERRORS

124       GL_INVALID_ENUM is generated if target is not GL_CONVOLUTION_2D.
125
126       GL_INVALID_ENUM is generated if internalformat is not one of the
127       allowable values.
128
129       GL_INVALID_ENUM is generated if format is not one of the allowable
130       values.
131
132       GL_INVALID_ENUM is generated if type is not one of the allowable
133       values.
134
135       GL_INVALID_VALUE is generated if width is less than zero or greater
136       than the maximum supported value. This value may be queried with
137       glGetConvolutionParameter() using target GL_CONVOLUTION_2D and name
138       GL_MAX_CONVOLUTION_WIDTH.
139
140       GL_INVALID_VALUE is generated if height is less than zero or greater
141       than the maximum supported value. This value may be queried with
142       glGetConvolutionParameter() using target GL_CONVOLUTION_2D and name
143       GL_MAX_CONVOLUTION_HEIGHT.
144
145       GL_INVALID_OPERATION is generated if height is one of
146       GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV,
147       GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is
148       not GL_RGB.
149
150       GL_INVALID_OPERATION is generated if height is one of
151       GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV,
152       GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV,
153       GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV,
154       GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and
155       format is neither GL_RGBA nor GL_BGRA.
156
157       GL_INVALID_OPERATION is generated if a non-zero buffer object name is
158       bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object's data
159       store is currently mapped.
160
161       GL_INVALID_OPERATION is generated if a non-zero buffer object name is
162       bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be
163       unpacked from the buffer object such that the memory reads required
164       would exceed the data store size.
165
166       GL_INVALID_OPERATION is generated if a non-zero buffer object name is
167       bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly
168       divisible into the number of bytes needed to store in memory a datum
169       indicated by type.
170
171       GL_INVALID_OPERATION is generated if glConvolutionFilter2D is executed
172       between the execution of glBegin() and the corresponding execution of
173       glEnd().
174

ASSOCIATED GETS

176       glGetConvolutionParameter(), glGetConvolutionFilter()
177

SEE ALSO

179       glConvolutionFilter1D(), glSeparableFilter2D(),
180       glConvolutionParameter(), glPixelTransfer()
181
183       Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed
184       under the SGI Free Software B License. For details, see
185       http://oss.sgi.com/projects/FreeB/.
186

AUTHORS

188       opengl.org
189
190
191
192opengl.org                        06/10/2014          GLCONVOLUTIONFILTER2(3G)
Impressum