OSDN Git Service

mesa/main: Make FEATURE_convolve follow feature conventions.
[android-x86/external-mesa.git] / src / mesa / main / convolve.h
1
2 /*
3  * Mesa 3-D graphics library
4  * Version:  3.5
5  *
6  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included
16  * in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
22  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24  */
25
26
27 #ifndef CONVOLVE_H
28 #define CONVOLVE_H
29
30
31 #include "main/mtypes.h"
32
33
34 #if FEATURE_convolve
35
36 #define _MESA_INIT_CONVOLVE_FUNCTIONS(driver, impl)                        \
37    do {                                                                    \
38       (driver)->CopyConvolutionFilter1D = impl ## CopyConvolutionFilter1D; \
39       (driver)->CopyConvolutionFilter2D = impl ## CopyConvolutionFilter2D; \
40    } while (0)
41
42 extern void GLAPIENTRY
43 _mesa_ConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width,
44                           GLenum format, GLenum type, const GLvoid *image);
45
46 extern void GLAPIENTRY
47 _mesa_ConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width,
48                           GLsizei height, GLenum format, GLenum type,
49                           const GLvoid *image);
50
51 extern void GLAPIENTRY
52 _mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat params);
53
54 extern void GLAPIENTRY
55 _mesa_ConvolutionParameterfv(GLenum target, GLenum pname,
56                              const GLfloat *params);
57
58 extern void GLAPIENTRY
59 _mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint params);
60
61 extern void GLAPIENTRY
62 _mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params);
63
64 extern void GLAPIENTRY
65 _mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalformat,
66                               GLint x, GLint y, GLsizei width);
67
68 extern void GLAPIENTRY
69 _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalformat,
70                               GLint x, GLint y, GLsizei width, GLsizei height);
71
72 extern void GLAPIENTRY
73 _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
74                            GLvoid *image);
75
76 extern void GLAPIENTRY
77 _mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params);
78
79 extern void GLAPIENTRY
80 _mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params);
81
82 extern void GLAPIENTRY
83 _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
84                          GLvoid *row, GLvoid *column, GLvoid *span);
85
86 extern void GLAPIENTRY
87 _mesa_SeparableFilter2D(GLenum target, GLenum internalformat,
88                         GLsizei width, GLsizei height,
89                         GLenum format, GLenum type,
90                         const GLvoid *row, const GLvoid *column);
91
92
93 extern void
94 _mesa_convolve_1d_image(const GLcontext *ctx, GLsizei *width,
95                         const GLfloat *srcImage, GLfloat *dstImage);
96
97 extern void
98 _mesa_convolve_2d_image(const GLcontext *ctx, GLsizei *width, GLsizei *height,
99                         const GLfloat *srcImage, GLfloat *dstImage);
100
101 extern void
102 _mesa_convolve_sep_image(const GLcontext *ctx,
103                          GLsizei *width, GLsizei *height,
104                          const GLfloat *srcImage, GLfloat *dstImage);
105
106 extern void
107 _mesa_adjust_image_for_convolution(const GLcontext *ctx, GLuint dimensions,
108                                    GLsizei *width, GLsizei *height);
109
110 extern void
111 _mesa_init_convolve_dispatch(struct _glapi_table *disp);
112
113 #else /* FEATURE_convolve */
114
115 #define _MESA_INIT_CONVOLVE_FUNCTIONS(driver, impl) do { } while (0)
116
117 static INLINE void
118 _mesa_convolve_1d_image(const GLcontext *ctx, GLsizei *width,
119                         const GLfloat *srcImage, GLfloat *dstImage)
120 {
121    *width = 0;
122 }
123
124 static INLINE void
125 _mesa_convolve_2d_image(const GLcontext *ctx, GLsizei *width, GLsizei *height,
126                         const GLfloat *srcImage, GLfloat *dstImage)
127 {
128    *width = 0;
129    *height = 0;
130 }
131
132
133 static INLINE void
134 _mesa_convolve_sep_image(const GLcontext *ctx,
135                          GLsizei *width, GLsizei *height,
136                          const GLfloat *srcImage, GLfloat *dstImage)
137 {
138    *width = 0;
139    *height = 0;
140 }
141
142 static INLINE void
143 _mesa_adjust_image_for_convolution(const GLcontext *ctx, GLuint dimensions,
144                                    GLsizei *width, GLsizei *height)
145 {
146 }
147
148 static INLINE void 
149 _mesa_init_convolve_dispatch(struct _glapi_table *disp)
150 {
151 }
152
153 #endif /* FEATURE_convolve */
154
155 #endif /* CONVOLVE_H */