From 90f042ae8dbc00ecedab5cc68dbc6abae4228af5 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 10 Dec 2000 19:23:19 +0000 Subject: generate GL_INVALID_OPERATION error for bad image format/type combinations --- src/mesa/main/convolve.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) (limited to 'src/mesa/main/convolve.c') diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c index 5bb4e82a84..c496e6c8f5 100644 --- a/src/mesa/main/convolve.c +++ b/src/mesa/main/convolve.c @@ -1,4 +1,4 @@ -/* $Id: convolve.c,v 1.15 2000/11/23 02:50:56 jtaylor Exp $ */ +/* $Id: convolve.c,v 1.16 2000/12/10 19:23:19 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -130,8 +130,12 @@ _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, G return; } - if (!_mesa_is_legal_format_and_type(format, type) || - format == GL_COLOR_INDEX || + if (!_mesa_is_legal_format_and_type(format, type)) { + gl_error(ctx, GL_INVALID_OPERATION, "glConvolutionFilter1D(format or type)"); + return; + } + + if (format == GL_COLOR_INDEX || format == GL_STENCIL_INDEX || format == GL_DEPTH_COMPONENT || format == GL_INTENSITY || @@ -204,8 +208,11 @@ _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, G return; } - if (!_mesa_is_legal_format_and_type(format, type) || - format == GL_COLOR_INDEX || + if (!_mesa_is_legal_format_and_type(format, type)) { + gl_error(ctx, GL_INVALID_OPERATION, "glConvolutionFilter2D(format or type)"); + return; + } + if (format == GL_COLOR_INDEX || format == GL_STENCIL_INDEX || format == GL_DEPTH_COMPONENT || format == GL_INTENSITY || @@ -569,8 +576,12 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *im gl_update_state(ctx); } - if (!_mesa_is_legal_format_and_type(format, type) || - format == GL_COLOR_INDEX || + if (!_mesa_is_legal_format_and_type(format, type)) { + gl_error(ctx, GL_INVALID_OPERATION, "glGetConvolutionFilter(format or type)"); + return; + } + + if (format == GL_COLOR_INDEX || format == GL_STENCIL_INDEX || format == GL_DEPTH_COMPONENT || format == GL_INTENSITY || @@ -753,8 +764,12 @@ _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, return; } - if (!_mesa_is_legal_format_and_type(format, type) || - format == GL_COLOR_INDEX || + if (!_mesa_is_legal_format_and_type(format, type)) { + gl_error(ctx, GL_INVALID_OPERATION, "glGetConvolutionFilter(format or type)"); + return; + } + + if (format == GL_COLOR_INDEX || format == GL_STENCIL_INDEX || format == GL_DEPTH_COMPONENT || format == GL_INTENSITY || @@ -818,8 +833,12 @@ _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLs return; } - if (!_mesa_is_legal_format_and_type(format, type) || - format == GL_COLOR_INDEX || + if (!_mesa_is_legal_format_and_type(format, type)) { + gl_error(ctx, GL_INVALID_OPERATION, "glSeparableFilter2D(format or type)"); + return; + } + + if (format == GL_COLOR_INDEX || format == GL_STENCIL_INDEX || format == GL_DEPTH_COMPONENT || format == GL_INTENSITY || -- cgit v1.2.3