1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Mesa 3-D graphics library
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Version:  6.5.2
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the "Software"),
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * to deal in the Software without restriction, including without limitation
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * and/or sell copies of the Software, and to permit persons to whom the
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Software is furnished to do so, subject to the following conditions:
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice shall be included
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * in all copies or substantial portions of the Software.
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Image convolution functions.
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Notes: filter kernel elements are indexed by <n> and <m> as in
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the GL spec.
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "glheader.h"
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "bufferobj.h"
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "colormac.h"
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "convolve.h"
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "macros.h"
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "mfeatures.h"
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "mtypes.h"
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "main/dispatch.h"
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#if FEATURE_convolve
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionFilter1D");
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionFilter2D");
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat param)
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionParameterf");
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_ConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params)
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionParameterfv");
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint param)
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionParameteri");
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params)
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionParameteriv");
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glCopyConvolutionFilter1D");
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glCopyConvolutionFilter2D");
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_GetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type,
119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                               GLsizei bufSize, GLvoid *image)
120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_OPERATION, "glGetConvolutionFilter");
124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                           GLvoid *image)
130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_GetnConvolutionFilterARB(target, format, type, INT_MAX, image);
132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glGetConvolutionParameterfv");
141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glGetConvolutionParameteriv");
150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_GetnSeparableFilterARB(GLenum target, GLenum format, GLenum type,
155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                             GLsizei rowBufSize, GLvoid *row,
156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                             GLsizei columnBufSize,  GLvoid *column,
157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                             GLvoid *span)
158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glGetSeparableFilter");
162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLvoid *row, GLvoid *column, GLvoid *span)
168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_GetnSeparableFilterARB(target, format, type, INT_MAX, row,
170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                INT_MAX, column, span);
171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void GLAPIENTRY
175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GET_CURRENT_CONTEXT(ctx);
178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _mesa_error(ctx, GL_INVALID_ENUM, "glSeparableFilter2D");
180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_init_convolve_dispatch(struct _glapi_table *disp)
184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_ConvolutionFilter1D(disp, _mesa_ConvolutionFilter1D);
186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_ConvolutionFilter2D(disp, _mesa_ConvolutionFilter2D);
187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_ConvolutionParameterf(disp, _mesa_ConvolutionParameterf);
188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_ConvolutionParameterfv(disp, _mesa_ConvolutionParameterfv);
189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_ConvolutionParameteri(disp, _mesa_ConvolutionParameteri);
190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_ConvolutionParameteriv(disp, _mesa_ConvolutionParameteriv);
191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_CopyConvolutionFilter1D(disp, _mesa_CopyConvolutionFilter1D);
192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_CopyConvolutionFilter2D(disp, _mesa_CopyConvolutionFilter2D);
193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_GetConvolutionFilter(disp, _mesa_GetConvolutionFilter);
194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_GetConvolutionParameterfv(disp, _mesa_GetConvolutionParameterfv);
195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_GetConvolutionParameteriv(disp, _mesa_GetConvolutionParameteriv);
196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_SeparableFilter2D(disp, _mesa_SeparableFilter2D);
197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_GetSeparableFilter(disp, _mesa_GetSeparableFilter);
198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /* GL_ARB_robustness */
200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_GetnConvolutionFilterARB(disp, _mesa_GetnConvolutionFilterARB);
201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   SET_GetnSeparableFilterARB(disp, _mesa_GetnSeparableFilterARB);
202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif /* FEATURE_convolve */
206