mesa: restructure error checking in _mesa_FramebufferTexture1D/2DEXT()
In anticipation of adding more texture targets. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -1984,10 +1984,23 @@ _mesa_FramebufferTexture1DEXT(GLenum target, GLenum attachment,
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
if ((texture != 0) && (textarget != GL_TEXTURE_1D)) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glFramebufferTexture1DEXT(textarget)");
|
||||
return;
|
||||
if (texture != 0) {
|
||||
GLboolean error;
|
||||
|
||||
switch (textarget) {
|
||||
case GL_TEXTURE_1D:
|
||||
error = GL_FALSE;
|
||||
break;
|
||||
default:
|
||||
error = GL_TRUE;
|
||||
}
|
||||
|
||||
if (error) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glFramebufferTexture1DEXT(textarget=%s)",
|
||||
_mesa_lookup_enum_by_nr(textarget));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
framebuffer_texture(ctx, "1D", target, attachment, textarget, texture,
|
||||
@@ -2001,13 +2014,34 @@ _mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment,
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
if ((texture != 0) &&
|
||||
(textarget != GL_TEXTURE_2D) &&
|
||||
(textarget != GL_TEXTURE_RECTANGLE_ARB) &&
|
||||
(!is_cube_face(textarget))) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glFramebufferTexture2DEXT(textarget=0x%x)", textarget);
|
||||
return;
|
||||
if (texture != 0) {
|
||||
GLboolean error;
|
||||
|
||||
switch (textarget) {
|
||||
case GL_TEXTURE_2D:
|
||||
error = GL_FALSE;
|
||||
break;
|
||||
case GL_TEXTURE_RECTANGLE:
|
||||
error = !ctx->Extensions.NV_texture_rectangle;
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
|
||||
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
|
||||
error = !ctx->Extensions.ARB_texture_cube_map;
|
||||
break;
|
||||
default:
|
||||
error = GL_FALSE;
|
||||
}
|
||||
|
||||
if (error) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glFramebufferTexture2DEXT(textarget=%s)",
|
||||
_mesa_lookup_enum_by_nr(textarget));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
framebuffer_texture(ctx, "2D", target, attachment, textarget, texture,
|
||||
|
Reference in New Issue
Block a user