summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/fbobject.c
diff options
context:
space:
mode:
authorLaura Ekstrand <laura@jlekstrand.net>2015-02-04 14:21:17 -0800
committerFredrik Höglund <fredrik@kde.org>2015-05-14 15:48:14 +0200
commitb4368ac09db75cea412121ada6c12af1414feb50 (patch)
treeb670ff2dc3a8fb3f7ceb44f377b1301a2c5dc0ac /src/mesa/main/fbobject.c
parent6b284f08ab399154ad10e2166440b44cbbdcb2c5 (diff)
downloadexternal_mesa3d-b4368ac09db75cea412121ada6c12af1414feb50.zip
external_mesa3d-b4368ac09db75cea412121ada6c12af1414feb50.tar.gz
external_mesa3d-b4368ac09db75cea412121ada6c12af1414feb50.tar.bz2
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>
Diffstat (limited to 'src/mesa/main/fbobject.c')
-rw-r--r--src/mesa/main/fbobject.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 15878d3..7ba7255 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -3650,12 +3650,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
@@ -3748,7 +3765,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;
}