mesa: return INVALID_VALUE from VertexAttribDivisor if index out of range
[mesa.git] / src / mesa / main / convolve.c
index 0231bcf6d3ff34fa5135e65250df0d22cc18afd7..dfc1b9465bd1cc9346d22450c66861c96b2d1576 100644 (file)
 #include "colormac.h"
 #include "convolve.h"
 #include "macros.h"
+#include "mfeatures.h"
 #include "mtypes.h"
 #include "main/dispatch.h"
 
 
-#if FEATURE_convolve
-
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -50,7 +49,7 @@ _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, G
    _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionFilter1D");
 }
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -59,7 +58,7 @@ _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, G
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat param)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -68,7 +67,7 @@ _mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat param)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_ConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -77,7 +76,7 @@ _mesa_ConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint param)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -86,7 +85,7 @@ _mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint param)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -95,7 +94,7 @@ _mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -104,7 +103,7 @@ _mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalFormat, GLint x, GLi
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -113,9 +112,9 @@ _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, GLi
 }
 
 
-static void GLAPIENTRY
-_mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
-                           GLvoid *image)
+void GLAPIENTRY
+_mesa_GetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type,
+                               GLsizei bufSize, GLvoid *image)
 {
    GET_CURRENT_CONTEXT(ctx);
 
@@ -123,7 +122,15 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
+_mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
+                           GLvoid *image)
+{
+   _mesa_GetnConvolutionFilterARB(target, format, type, INT_MAX, image);
+}
+
+
+void GLAPIENTRY
 _mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -132,7 +139,7 @@ _mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -141,9 +148,11 @@ _mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
 }
 
 
-static void GLAPIENTRY
-_mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
-                         GLvoid *row, GLvoid *column, GLvoid *span)
+void GLAPIENTRY
+_mesa_GetnSeparableFilterARB(GLenum target, GLenum format, GLenum type,
+                             GLsizei rowBufSize, GLvoid *row,
+                             GLsizei columnBufSize,  GLvoid *column,
+                             GLvoid *span)
 {
    GET_CURRENT_CONTEXT(ctx);
 
@@ -151,31 +160,19 @@ _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
+_mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
+                         GLvoid *row, GLvoid *column, GLvoid *span)
+{
+   _mesa_GetnSeparableFilterARB(target, format, type, INT_MAX, row,
+                                INT_MAX, column, span);
+}
+
+
+void GLAPIENTRY
 _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
 {
    GET_CURRENT_CONTEXT(ctx);
 
    _mesa_error(ctx, GL_INVALID_ENUM, "glSeparableFilter2D");
 }
-
-void
-_mesa_init_convolve_dispatch(struct _glapi_table *disp)
-{
-   SET_ConvolutionFilter1D(disp, _mesa_ConvolutionFilter1D);
-   SET_ConvolutionFilter2D(disp, _mesa_ConvolutionFilter2D);
-   SET_ConvolutionParameterf(disp, _mesa_ConvolutionParameterf);
-   SET_ConvolutionParameterfv(disp, _mesa_ConvolutionParameterfv);
-   SET_ConvolutionParameteri(disp, _mesa_ConvolutionParameteri);
-   SET_ConvolutionParameteriv(disp, _mesa_ConvolutionParameteriv);
-   SET_CopyConvolutionFilter1D(disp, _mesa_CopyConvolutionFilter1D);
-   SET_CopyConvolutionFilter2D(disp, _mesa_CopyConvolutionFilter2D);
-   SET_GetConvolutionFilter(disp, _mesa_GetConvolutionFilter);
-   SET_GetConvolutionParameterfv(disp, _mesa_GetConvolutionParameterfv);
-   SET_GetConvolutionParameteriv(disp, _mesa_GetConvolutionParameteriv);
-   SET_SeparableFilter2D(disp, _mesa_SeparableFilter2D);
-   SET_GetSeparableFilter(disp, _mesa_GetSeparableFilter);
-}
-
-
-#endif /* FEATURE_convolve */