main/buffers: take into account FRONT_AND_BACK on ReadBuffer
authorAlejandro Piñeiro <apinheiro@igalia.com>
Wed, 11 Jan 2017 20:11:55 +0000 (18:11 -0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Thu, 12 Jan 2017 10:21:03 +0000 (08:21 -0200)
From OpenGL 3.1 spec, section 4.3.1 "Reading Pixels", page 190 (203 PDF)

  "When READ FRAMEBUFFER BINDING is zero, i.e. the default
   framebuffer, src must be one of the values listed in table 4.4,
   including NONE . FRONT_AND_BACK , FRONT , and LEFT refer to the
   front left buffer."

There is an equivalent text on OpenGL 4.5 spec, section 18.2.1
"Selecting Buffers for Reading", page 502 (524 PDF), so the behaviour
is still the same.

Part of the fix for:
GL45-CTS.direct_state_access.framebuffers_draw_read_buffers_errors

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/main/buffers.c

index bba5e7e701cf2d4ee1ec1b888da928b4fbd8c1d6..7d17ae92de23d8c3541e88e4a2131f435c62e271 100644 (file)
@@ -204,6 +204,8 @@ read_buffer_enum_to_index(const struct gl_context *ctx, GLenum buffer)
          return BUFFER_FRONT_LEFT;
       case GL_AUX0:
          return BUFFER_AUX0;
+      case GL_FRONT_AND_BACK:
+         return BUFFER_FRONT_LEFT;
       case GL_AUX1:
       case GL_AUX2:
       case GL_AUX3: