summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2010-01-06 18:12:42 -0700
committerBrian Paul <[email protected]>2010-01-06 18:20:17 -0700
commit06970b2ccb6add0696710f01a07ebf9ec3922c80 (patch)
tree806390d4aa50e3e3f5a04f63f2aaa7c4e01c5505 /src
parent49653c01e8288018d8a1d8e935ef64645f088402 (diff)
meta: set viewport and projection matrix in _mesa_meta_GenerateMipmap
This fixes mipmap levels being clipped to the last viewport. Based on a patch submitted by Pierre Willenbrock <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/common/meta.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index cd9075b3936..adc986402c1 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -2408,6 +2408,15 @@ _mesa_meta_GenerateMipmap(GLcontext *ctx, GLenum target,
break;
}
+ assert(dstWidth == ctx->DrawBuffer->Width);
+ assert(dstHeight == ctx->DrawBuffer->Height);
+
+ /* setup viewport and matching projection matrix */
+ _mesa_set_viewport(ctx, 0, 0, dstWidth, dstHeight);
+ _mesa_MatrixMode(GL_PROJECTION);
+ _mesa_LoadIdentity();
+ _mesa_Ortho(0.0F, dstWidth, 0.0F, dstHeight, -1.0F, 1.0F);
+
_mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
}