mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
added code to detect GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT error
This commit is contained in:
parent
1b93953fbc
commit
c7264415b6
1 changed files with 18 additions and 3 deletions
|
|
@ -339,9 +339,6 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format,
|
|||
* Status field with the results.
|
||||
* Also update the framebuffer's Width and Height fields if the
|
||||
* framebuffer is complete.
|
||||
*
|
||||
* XXX Need to check for FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT!
|
||||
*
|
||||
*/
|
||||
void
|
||||
_mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb)
|
||||
|
|
@ -351,6 +348,8 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb)
|
|||
GLuint w = 0, h = 0;
|
||||
GLint i;
|
||||
|
||||
assert(fb->Name != 0);
|
||||
|
||||
numImages = 0;
|
||||
fb->Width = 0;
|
||||
fb->Height = 0;
|
||||
|
|
@ -446,6 +445,22 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb)
|
|||
}
|
||||
}
|
||||
|
||||
/* Check if any renderbuffer is attached more than once */
|
||||
for (i = 0; i < BUFFER_COUNT - 1; i++) {
|
||||
struct gl_renderbuffer *rb_i = fb->Attachment[i].Renderbuffer;
|
||||
if (rb_i) {
|
||||
GLint j;
|
||||
for (j = i + 1; j < BUFFER_COUNT; j++) {
|
||||
struct gl_renderbuffer *rb_j = fb->Attachment[j].Renderbuffer;
|
||||
if (rb_i == rb_j) {
|
||||
fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (numImages == 0) {
|
||||
fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT;
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue