Mesa (9.1): meta: Set correct viewport and projection in decompress_texture_image.

Carl Worth cworth at kemper.freedesktop.org
Sat Oct 5 03:54:02 UTC 2013


Module: Mesa
Branch: 9.1
Commit: d227751144548e9e32c6d20dfb69287696e8f655
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d227751144548e9e32c6d20dfb69287696e8f655

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Aug 22 01:29:11 2013 -0700

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 at whitecape.org>
Cc: Mak Nazecic-Andrlon <owlberteinstein at gmail.com>
(cherry picked from commit 62411681da4d1b7f9417f34dbf92a3e79e24dc09)

---

 src/mesa/drivers/common/meta.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 151da84..526c88f 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -3956,6 +3956,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);
 




More information about the mesa-commit mailing list