diff options
author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2013-11-13 14:02:12 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2014-01-20 11:29:42 -0800 |
commit | a9c73fb778a41b422a811c67b4aba806d4dfb7c8 (patch) | |
tree | 1ee48d66f17021d2c33030a0e1d93caa10b89e87 /src/mesa/drivers/dri/i915/i830_state.c | |
parent | 1f59e963b40a260d3087f83799de0a6fb0941d07 (diff) |
mesa: Update gl_scissor_attrib to support ARB_viewport_array
Update Mesa and drivers to access updated gl_scissor_attrib.
Now have an enable bitfield and array of gl_scissor_rects.
Drivers have been updated to the new scissor enable state
attribute (gl_context.scissor.EnableFlags) but still treat it
as a single boolean which is okay as mesa will only use
bit 0 when communicating with a driver that does not support
ARB_viewport_array.
v2 (idr): Rebase fixes.
v3 (idr): Small code formatting fix suggsted by Ken.
Signed-off-by: Courtney Goeltzenleuchter <courtney@LunarG.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i915/i830_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i915/i830_state.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/mesa/drivers/dri/i915/i830_state.c b/src/mesa/drivers/dri/i915/i830_state.c index 7fe20bf70bd..bae9204834a 100644 --- a/src/mesa/drivers/dri/i915/i830_state.c +++ b/src/mesa/drivers/dri/i915/i830_state.c @@ -536,23 +536,27 @@ i830Scissor(struct gl_context * ctx) return; DBG("%s %d,%d %dx%d\n", __FUNCTION__, - ctx->Scissor.X, ctx->Scissor.Y, - ctx->Scissor.Width, ctx->Scissor.Height); + ctx->Scissor.ScissorArray[0].X, ctx->Scissor.ScissorArray[0].Y, + ctx->Scissor.ScissorArray[0].Width, ctx->Scissor.ScissorArray[0].Height); if (_mesa_is_winsys_fbo(ctx->DrawBuffer)) { - x1 = ctx->Scissor.X; - y1 = ctx->DrawBuffer->Height - (ctx->Scissor.Y + ctx->Scissor.Height); - x2 = ctx->Scissor.X + ctx->Scissor.Width - 1; - y2 = y1 + ctx->Scissor.Height - 1; + x1 = ctx->Scissor.ScissorArray[0].X; + y1 = ctx->DrawBuffer->Height - (ctx->Scissor.ScissorArray[0].Y + + ctx->Scissor.ScissorArray[0].Height); + x2 = ctx->Scissor.ScissorArray[0].X + + ctx->Scissor.ScissorArray[0].Width - 1; + y2 = y1 + ctx->Scissor.ScissorArray[0].Height - 1; DBG("%s %d..%d,%d..%d (inverted)\n", __FUNCTION__, x1, x2, y1, y2); } else { /* FBO - not inverted */ - x1 = ctx->Scissor.X; - y1 = ctx->Scissor.Y; - x2 = ctx->Scissor.X + ctx->Scissor.Width - 1; - y2 = ctx->Scissor.Y + ctx->Scissor.Height - 1; + x1 = ctx->Scissor.ScissorArray[0].X; + y1 = ctx->Scissor.ScissorArray[0].Y; + x2 = ctx->Scissor.ScissorArray[0].X + + ctx->Scissor.ScissorArray[0].Width - 1; + y2 = ctx->Scissor.ScissorArray[0].Y + + ctx->Scissor.ScissorArray[0].Height - 1; DBG("%s %d..%d,%d..%d (not inverted)\n", __FUNCTION__, x1, x2, y1, y2); } |