mesa: Restore all the scissor rectangles in _mesa_PopAttrib

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Ian Romanick
2014-01-07 19:06:59 -08:00
parent 9de863603d
commit c65db3ebed

View File

@@ -1269,15 +1269,19 @@ _mesa_PopAttrib(void)
break; break;
case GL_SCISSOR_BIT: case GL_SCISSOR_BIT:
{ {
unsigned i;
const struct gl_scissor_attrib *scissor; const struct gl_scissor_attrib *scissor;
scissor = (const struct gl_scissor_attrib *) attr->data; scissor = (const struct gl_scissor_attrib *) attr->data;
_mesa_set_scissor(ctx, 0,
scissor->ScissorArray[0].X,
scissor->ScissorArray[0].Y,
scissor->ScissorArray[0].Width,
scissor->ScissorArray[0].Height);
_mesa_set_enable(ctx, GL_SCISSOR_TEST, scissor->EnableFlags & 1);
for (i = 0; i < ctx->Const.MaxViewports; i++) {
_mesa_set_scissor(ctx, i,
scissor->ScissorArray[i].X,
scissor->ScissorArray[i].Y,
scissor->ScissorArray[i].Width,
scissor->ScissorArray[i].Height);
_mesa_set_enablei(ctx, GL_SCISSOR_TEST, i,
(scissor->EnableFlags >> i) & 1);
}
} }
break; break;
case GL_STENCIL_BUFFER_BIT: case GL_STENCIL_BUFFER_BIT: