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