summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2013-08-22 01:29:11 -0700
committerKenneth Graunke <kenneth@whitecape.org>2013-08-22 20:28:53 -0700
commit62411681da4d1b7f9417f34dbf92a3e79e24dc09 (patch)
tree09456746d856df4ac3b351e6b75ccb854f962507
parentce8639a766d0c36e676eea6f55135d9dccf1cb90 (diff)
downloadexternal_mesa3d-62411681da4d1b7f9417f34dbf92a3e79e24dc09.zip
external_mesa3d-62411681da4d1b7f9417f34dbf92a3e79e24dc09.tar.gz
external_mesa3d-62411681da4d1b7f9417f34dbf92a3e79e24dc09.tar.bz2
meta: Set correct viewport and projection in decompress_texture_image.
_mesa_meta_begin() sets up an orthographic project and initializes the viewport based on the current drawbuffer's width and height. This is likely the window size, since it occurs before the meta operation binds any temporary buffers. decompress_texture_image needs the viewport to be the size of the image it's trying to draw. Otherwise, it may only draw part of the image. v2: Actually set the projection properly too. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68250 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Cc: Mak Nazecic-Andrlon <owlberteinstein@gmail.com>
-rw-r--r--src/mesa/drivers/common/meta.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 1a42b05..798efa6 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -4022,6 +4022,11 @@ decompress_texture_image(struct gl_context *ctx,
verts[3].x = 0.0F;
verts[3].y = height;
+ _mesa_MatrixMode(GL_PROJECTION);
+ _mesa_LoadIdentity();
+ _mesa_Ortho(0.0, width, 0.0, height, -1.0, 1.0);
+ _mesa_set_viewport(ctx, 0, 0, width, height);
+
/* upload new vertex data */
_mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);