main: Complete error conditions for glInvalidate*Framebuffer.

Signed-off-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Fredrik Höglund <fredrik@kde.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit b4368ac09d)
This commit is contained in:
Laura Ekstrand 2015-02-04 14:21:17 -08:00 committed by Emil Velikov
parent 0475deac26
commit 104dc7447d

View file

@ -3083,12 +3083,29 @@ invalidate_framebuffer_storage(GLenum target, GLsizei numAttachments,
return;
}
/* Section 17.4 Whole Framebuffer Operations of the OpenGL 4.5 Core
* Spec (2.2.2015, PDF page 522) says:
* "An INVALID_VALUE error is generated if numAttachments, width, or
* height is negative."
*/
if (numAttachments < 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
"%s(numAttachments < 0)", name);
return;
}
if (width < 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
"%s(width < 0)", name);
return;
}
if (height < 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
"%s(height < 0)", name);
return;
}
/* The GL_ARB_invalidate_subdata spec says:
*
* "If an attachment is specified that does not exist in the
@ -3181,7 +3198,8 @@ invalidate_framebuffer_storage(GLenum target, GLsizei numAttachments,
return;
invalid_enum:
_mesa_error(ctx, GL_INVALID_ENUM, "%s(attachment)", name);
_mesa_error(ctx, GL_INVALID_ENUM, "%s(invalid attachment %s)", name,
_mesa_lookup_enum_by_nr(attachments[i]));
return;
}