diff options
author | Brian Paul <brianp@vmware.com> | 2010-01-06 18:12:42 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2010-01-06 18:20:17 -0700 |
commit | 06970b2ccb6add0696710f01a07ebf9ec3922c80 (patch) | |
tree | 806390d4aa50e3e3f5a04f63f2aaa7c4e01c5505 | |
parent | 49653c01e8288018d8a1d8e935ef64645f088402 (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 <pierre@pirsoft.de>
-rw-r--r-- | src/mesa/drivers/common/meta.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index cd9075b393..adc986402c 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); } |